林智奇 程功勋 刘丽兰 熊 峰 周颖圆 俞 涛
(1.上海大学机电工程与自动化学院上海市机械自动化及机器人重点实验室,上海 200072;2.上海半导体照明工程技术研究中心,上海 201203)
作为一种全新的照明技术,LED利用半导体芯片作为发光材料,直接将电能转换为光能,以其发光效能高、耗电量少、使用寿命长、安全可靠、环保卫生等优越性,被业界认为是人类继爱迪生发明白炽灯泡后最伟大的发明之一。LED室内照明主要包括商场照明、酒店照明、写字楼照明以及家居照明等。从市场规模上看,室内照明市场由于应用群体的广泛将成长为规模最大的市场,预计在2013年,室内照明将达到98.2亿元左右的规模。
基于以上分析,LED产业正处于快速发展阶段,然而目前网络上大部分对LED灯具的描述仅局限在灯具的参数上,在效果的展示方面,也仅停留在使用静态图片展示上,缺乏一定的真实感和互动性,无法让普通用户对LED的光效和普通白炽灯的照明效果有一个直观的对比。因此,有必要引入虚拟现实技术,利用虚拟现实生动直观、沉浸、交互的特点,让普通用户更好的感受LED带来的照明效果,让商家更逼真的展示其产品,同时也为室内灯光布置提供平台支持。本文利用3DSMAX和VIRTOOLS构建一个三维仿真系统,在LED协同商务平台网站上展现单体灯具的三维模型以及灯具在室内实际环境中的照明效果。该平台设计的目的不只是为了展示LED产品本身,更重要的是灯光控制等手段,展现LED灯具在室内场景中的真实照明效果,通过这一环境,有计划、有目的、合逻辑地将商品展现给消费者,力求使消费者愉快的产生购买意愿。为了要获得实用性和真实感,建立LED的光效仿真,让用户有一个良好的操作体验,同时为用户提供所需的信息是本平台搭建的关键问题。本文主要从平台的总体结构的搭建以及平台交互功能上进行介绍。
LED室内照明三维虚拟展示平台是一个基于单场景半导体照明产品场景效果协同仿真系统,应用三维场景建模技术构建多个室内协同应用场景,包括会议室、办公室、卧室、客厅、书房等常用的室内场景,主要实现基于Web平台的支持用户参与、并且用户可以根据自己的需求更换场景,随需所现照明产品的实际效果。同时结合专业照度计算软件Dialux,计算出单场景的照度值及其能耗功率,帮助普通用户快速了解产品的实际效果。Web平台使用J2EE架构进行搭建,而光效仿真平台和三维灯具展示则使用3DSMAX和VIRTOOLS进行开发。
用以搭建平台的VIRTOOLS是一套集创作应用程序、交互引擎和渲染引擎和发布模块于一身的3D虚拟现实开发系统,可以将仿真平台和三维产品展示打包发布在网页上,系统整体结构如图1所示。
图1 仿真系统结构
LED室内照明三维仿真平台一方面要较真实的表现出室内环境的照明效果,另一方面要给访问平台的用户提供一个良好的操作体验,因此系统的搭建主要有两部分的工作,即虚拟仿真场景的搭建和交互模块的构建。构建室内照明仿真平台需要完成以下几个方面的工作:
(1)前期数据采集与处理:为了展现出真实的室内场景并表现出灯光的实际照明效果,首先要获取室内场景的真实尺寸数据以及灯具的实际参数。
(2)三维模型建立:以真实数据为基础,对灯具和室内场景进行建模,并布置灯光和模型贴图等处理。
(3)交互系统构建:利用VIRTOOLS来实现三维场景的漫游和交互等功能。
系统开发工作流程如图2所示。
图2 系统开发流程图
3.1.1 室内模型建立
三维模型的建立是仿真平台搭建的关键技术之一。我们所漫游的场景是否能看起来真实,主要依靠的就是建模技术,建模在整个系统的设计过程中占有很大的比重,关乎到一个作品的成败[2]。建模前的准备工作主要包括现真实场景的数据资料的采集 (即室内场景的尺寸)、画出CAD图、三维模型构建以及后期模型的美化。
本文以某大楼会议室作为研究对象,为了尽可能准确、直观地进行室内设计,整个模型到现场进行实地考察,使用米尺对会议室进行实际尺寸的测量,模型采用1∶1进行建模,同时对灯具的放置也完全按照实际尺寸。整个会议场所长10.5M,宽6.4M,高3M。
按照实际尺寸搭建完室内空间之后,向这些区域导入会议桌椅等模型,这里采用合并的方式导入模型。建立模型之后的工作就是给模型赋予材质和贴图,尽可能真实的还原出模型的实际效果。在3DSMAX中材质与贴图的建立和编辑都是通过材质编辑器Material Editor来完成的,并且通过最后的渲染把它们表现出来,使物体表面显示出不同的质地、色彩和纹理。材质贴图在三维建模过程中是至关重要的一环,主要通过它来增加模型的细节,体现出模型的质感,材质对如何建立对象模型有着直接的影响。完成的场景建模如图3所示。
图3 室内会议室模型
3.1.2 场景导出
当场景建模完成以后,接下来就是把完场的场景导入到VIRTOOLS中了。3DSMAX模型的数据格式是.max格式,而 VIRTOOLS所支持的格式是.nmo,所以在这里就需要用到 3DSMAX导入VIRTOOLS的插件Max Exporter实现数据格式的转化。接下来打开VIRTOOLS,进行数据文件的导入。启动VIRTOOLS,在工作界面里选择左上方菜单命令的Resources(资源)/Import File(导入文件),打开之前保存的.nmo文件,就可以看到在3DSMAX做的场景已经成功导入到VIRTOOLS了。
从3DSMAX导入到VIRTOOLS过程中,可能会发生一定的材质丢失,需要在VIRTOOLS中对模型的贴图和材质进行一定的修改。
交互系统一直是虚拟现实研究中的重要内容,也是让用户能融入到虚拟环境中的基本要求。仿真平台中的实时交互性主要表现在用户对场景中的实体对象能进行某些操作,而实体对象能立即以某种形式反馈给用户,响应用户的操作。整个交互系统主要有操作界面、漫游功能、灯具更换/推荐系统、场景能耗评估、室内照度计算几部分组成。整个交互仿真流程如图4所示。
图4 仿真系统结构图
3.2.1 漫游功能的设计
人的行走是日常生活中最普遍的行为,在交互系统中它也是最主要的行为之一。控制虚拟环境中视点位置的改变就是漫游系统中的主要交互方式。通过对虚拟场景中虚拟角色的控制,可以对场景进行自由的漫游。漫游系统的功能模块主要有以下几个:
(1)基于角色的动态摄像机控制:即将摄像机与角色的行动相绑定,跟随角色运动,实现第三人称的视角模拟。同时,可以使用键盘控制摄像机视角的位置,通过旋转来观察整个室内空间场景。
(2)基于灯具的静态摄像机控制:在漫游过程中,用户点选某一灯具后,系统自动将动态摄像机切换成静态摄像机,让用户近距离观看灯具的外观,同时显示灯具的详细信息。
(3)碰撞检测:指虚拟角色在场景中与场景中的实体对象之间的碰撞。碰撞检测对增强虚拟场景漫游的真实感有着重要的作用。通过碰撞检测,可避免用户没入地下或对建筑物穿墙而过等不真实情况,也可避免移动物体之间融合现象的发生,从而实现与现实世界中相似的真实感。本平台使用VIRTOOLS自身提供的碰撞检测模块来保证系统漫游的真实感。当角色在虚拟场景中漫游时,涉及到两类碰撞检测:一个是与地形的碰撞检测,另一个则是实体与实体之间的碰撞检测。与地面的碰撞可以通过VIRTOOLS软件中提供的行为交互模块Enhanced Character Keep On Floor来实现,需要将地面对象属性设置为 Floor类型,然后添加行为模块Enhanced Character Keep On Floor并设置相应的参数即可。对于角色与建筑物之间的碰撞检测,VIRTOOLS软件提供基于包围盒技术的解决方法,将场景中除了虚拟角色之外的所有对象设置为3D Entity类型,然后为角色添加Object Slider交互模块。这种方法是按照对象默认的球体包围盒来进行检测的。整个漫游功能的脚本如图5所示。
图5 漫游系统脚本
3.2.2 交互功能的设计
在LED室内照明仿真平台中,主要实现的是普通用户与三维场景中灯具的交互,使用此三维仿真系统,使用者能在网页上看到LED室内照明灯的效果以及灯具的具体参数,并能方便的针对具体环境进行灯具模型的随意加减和位置的改变,得到理想的照明效果。交互设计框图如图6所示。
图6 交互系统设计框图
(1)界面交互:界面交互主要实现用户对单一灯具的选择、替换,灯具位置的移动以及灯的开关等的操作。实现的脚本如图7所示。
(2)信息查询:包括查询当前使用灯具的参数、灯具库中灯具的参数,当前场景中使用的灯具的总功率等,并且系统会给出满足当前场景的照度需求的灯具和灯具数量的最佳选择建议。信息查询的功能从实现角度可划分为两部分独立的功能,即基于鼠标位置的对象获取以及灯具数据信息从数据库中的读取。
基于鼠标位置的对象获取主要通过VIRTOOLS中的BB模块2D Picking来实现的。它的原理是将鼠标在屏幕二维界面上的坐标位置与场景中的三维实体在屏幕坐标系中投影的位置做比较,如果重合则认为鼠标选择了该对象。
图7 灯具交互脚本
灯具信息的存储是通过平台与网站数据库连接后将灯具数据输入到阵列 Array来实现的。VIRTOOLS与数据库的通讯主要是通过与数据库连接的插件 VIRTOOLS server,并配置相应的 ODBC(数据源)和设置服务器地址来实现的。从数据库中读取到对应的数据后,VIRTOOLS将数据库对应表中内容读取到Array中对应的数组中,阵列Array是VIRTOOLS自带的用来进行数据组织和存储的结构,与数据库类似由行和列组成,VIRTOOLS再对数组内容进行控制。数组Array中的名字必须对应数据库中的表名,数组中的列名对应数据库表中的列名,数据类型必须保持一致。VIRTOOLS提供了相关的行为模块 (Get Cell,Get Key Row等)来实现对阵列Array中数据的调用与控制。本系统阵列表中的灯具的信息按照灯具名称、使用环境、功率、颜色等来分列存储,数据库的结构如图8所示。
图8 灯具Array表结构
3.2.3 平台的应用
本仿真平台是基于LED协同商务网站的虚拟体验中心,为普通用户创造了一个体验LED室内灯具真实照明效果的平台。
当用户对在LED协同商务网站上所选择的LED灯具的具体参数不甚了解,或者需要了解LED灯具的实际环境中使用的效果,则用户可以通过LED协同商务网站的虚拟体验中心登陆本仿真平台。
首先用户可以按其所需购买的灯具的实际使用环境选择相应的室内场景 (如会议室、办公室、卧室、客厅、书房等),之后在其选择场景中添加需要购买的灯具的数量并选择安放高度,最后对灯具位置进行排列。当用户将场景和灯具配置完成以后,就可以在室内仿真环境中进行漫游操作,体验灯具在室内环境中的真实照明效果,以此判断该灯具是否符合自身的需求。
图9 LED仿真平台效果图
本文以会议室为例,整个仿真平台的应用效果如图9所示。
利用虚拟现实技术的沉浸感与现实感,可以针对用户的自身需要为其提供所需的室内环境,采用这种更具交互性的方式,使普通用户产生身临其境的感觉。同时基于用户偏好的LED协同三维展示平台扩大了虚拟现实技术的应用范围,从使用效果来看大大改进了普通用户对LED真实照明的认识,有效支撑半导体照明产品市场的推广,为普通使用者“网上体验”提供了一个良好的平台。并且,单场景LED产品场景效果仿真能够满足设计用户在设计完成后即时仿真产品的效果,使灯光结果不必借助实际的LED灯及控制部件就可以直接在计算机上显示出来,为产品的进一步优化提供依据。
[1]张淑猛,郭顺生,杨明忠等.基于3dsmax的LED灯光仿真系统设计[J].计算机仿真,2005(7):228~230.
[2]曲宝,赵娅,赵琦.基于Virtools的虚拟家居漫游系统的设计与实现 [J].计算机工程与科学,2009,31(12):
[3]冯玉芬.基于Virtools的虚拟小区漫游系统的设计与实现 [J].计算机仿真,2009,26(6):285~287,29.
[4]杨春,李昌国,张晓林 等.基于3D和VIRTOOLS技术的虚拟实验的实验据分析研究 [J].计算机工程与设计,2007,203(11):2589~2591.
[5]梁冠辉,朱元昌,邸彦强.基于HLA/Virtools的高炮火控系统仿真平台设计 [J].系统仿真学报,2009,21(21):6954~6958.
[6]孙丰鑫.基于虚拟现实的集装箱岸吊仿真培训系统的集成与研究[D].清华大学,2010.
[7]李昌国,朱福全,谭良等.基于3D和Virtools技术的虚拟实验开发方法研究 [J].计算机工程与应用,2006(31):84~86,96.
[8]谷景.基于LabVIEW的快速照明计算方法 [J].中国照明电器,2010,308(11):19~23,37.
[9]吴伟和,郝爱民,李智等.基于直接光照的全局光照模拟 [J].计算机工程,2009,35(10):257~258,26.
[10]耿晓燕.面向照明效果的 LED光源设计仿真研究[D].天津大学,2007.