基于虚拟现实的室内布局系统及碰撞检测算法研究
2016-01-01曹航程马志遂盛佳龙靳博文范少通
曹航程,马志遂 ,盛佳龙,靳博文,范少通
(河南师范大学,河南 新乡 453007)
基于虚拟现实的室内布局系统及碰撞检测算法研究
曹航程,马志遂 ,盛佳龙,靳博文,范少通
(河南师范大学,河南 新乡 453007)
摘 要:虚拟现实技术是融合了计算机图形学、多媒体技术、智能人机接口技术及传感器技术的一门交叉技术。与三维静态模型相比,它增加了交互性,给系统用户带来完全的沉浸感和想象空间。根据室内装修行业的发展需要,其建立了基于VRML语言的网页三维实时漫游系统,通过AABB碰撞检测算法对区域精确检测的改进,实现了对算法储存空间的节省和运行速度的提升。该文阐述了场景构建、模型生成及碰撞优化技术,涉及了本虚拟现实系统中技术的研究内容和方向。
关键词:虚拟现实;人机接口技术;计算机仿真;碰撞优化
所谓虚拟现实,即可以创建、体验虚拟世界的计算机仿真系统,其可生成一种多源信息融合的交互式的三维动态视景,通过对实体行为的系统仿真使用户沉浸[1]到该环境中。虚拟现实技术使用特定的软件和硬件设备使人产生身临其境的感觉,令使用者有极强的参与感。通过在三维场景中漫游,用户获得家居室内整体布局的全景并且准确发现虚拟景象反映现实中存在的问题。基于高性能计算机软硬件,借助高敏感度传感装置,搭建虚拟现实系统,形成逼真的三维视听感觉。参与者拥有完全的交互能力,得到最真实感触并及时做出反应。本文所研究的桌面虚拟现实系统是基于普通PC平台进行图像及仿真处理,计算机的屏幕作为参与者观察虚拟环境的实时窗口。
1 三维场景及模型的构造
在虚拟环境中,人的视觉感受是影响系统逼真程度的关键因素,其中虚拟模型和场景及观察坐标转换尤为重要。在虚拟现实世界中,物体可看成存在特定三维坐标系,用(X,Y,Z)分别代替长宽高。任何物质都是由无限多的粒子构成,每一粒子均可在坐标系中找到对应的位置。漫游系统中采用局部坐标系、世界坐标系、观察坐标系及屏幕坐标系[2]的分层次坐标系统。在局部坐标系中,需要对每一个引用实体定义,包括坐标原点,长度单位及各方向边缘坐标点。世界坐标系是最高层的图形结构,需包含总的虚拟环境,并与局部坐标[3]融合。局部的各个点坐标均可通过经过旋转和平移转化其中,即通过特定算法由(x1,y1,z1)到(x2,y2,,z2)的过程。观察坐标可在为存在于任一点、任意方向,用于指定裁剪空间并定义投影平面。
为了向用户提供最为真实的沉浸感,在虚拟环境中逼真地显示出客观世界是其基本条件。视觉建模技术[4]包括几何建模、运动建模、物理建模、对象行为建模及模型分割等,涉及自由度(DOF)、细节度(LOD)和纹理映射。利用几何建模,对实体做出几何描述,其中包括轮廓、形状、基元表面属性及连接性等,并将其输入到图形数据库中。
2 碰撞检测算法AABB的研究
基于AABB包围盒的碰撞检测算法:沿坐标轴平行的包围盒AABB(axis-aligned bounding boxes)在碰撞检测的发展历史中使用得最为久远,也是目前使用较为普遍的方法。一个给定的对象被替换为包含该对象且各边平行于坐标轴的最小且最为接近对象的六面体。通过遍历对象所有的节点,找出各方向极点坐标,做相交测试通过比较两个AABB包围盒在各坐标轴上的投影区间是否均重叠来判定碰撞情况。在碰撞算法的优劣判断中,引入一个耗费函数文献[5]作为分析依据:T=N1*C1+N2*C2+N3*C3。
在本文系统所设计的AABB碰撞检测算法中,以N1及C2为算法改进点。类比树的类别二叉树具有更好的稳定性及快速检测能力,把一个结点分裂成两个比分成三个或更多的子集所要做的选择要少得多。故本次采用[6]二叉树构造,并尽最大可能增大树的度,减少每个节点的工作量。
2.1 平衡AABB二叉树的构造
层次包围树[7]最多有2n-1个结点,最大高度大于logδN。将实体AABB包围盒作为根节点,递归所得的各子部分互不相交,依次以自上而下形成层次结构,并从根节点遍历至叶节点。步骤如下:(1)选取分裂平面,将整个空间划分为半闭空间,这样会出现3种情况,为几何元素属于右闭空间、左闭空间及相交于平面。(2)以包围盒跨度最大轴作为平面的法线轴,这样有|Sn|-1种划分可能,将元素在分裂轴上的投影中值作为分裂点。若以平均值作为分裂点,会损害树的平衡性。
2.2 4EAI及Script接口的使用
VRML提供与外部程序实现链接的[8]接口机制,即内部Script接口和外部EAI接口,其基于TimeSensor的静态行为和基于程序的动态行为产生事件,这种方式无法使场景与使用者产生动态的即时互动。EAI为Java语言和VRML Plug-in提供双向桥梁,Java可通过它得到物体信息并控制物体,用户通过EAI真正成为环境的参与者。一个节点产生EventOut事件,与之关联的EventIn会收到信息并进行处理,从而实现访问VRML场景的节点、发送给任一节点EventIn事件和读取节点EventOut事件。Java Applet可利用EAI访问任意物体,Script节点只能访问包含于其本身的节点,二者的配合使用可实现最佳效果。
EAI交互过程[9]如下:(1)由GetbBrower()类使用GetBrower()方法获得当前场景信息。(2)通过GetNode()方法获得Node类实例以访问节点。(3)获得实例后,利用类本身提供的GetEventIn()和GetEventOut()方法访问节点。(4)若想实现动态删除可使用方CreatVrmlFromString(),并返回一个在外部环境中生成的Node类实例数组。(5)接收事件发出口的更新值,激活Callback方法。
3 结语
本文描述了一个基于VRML虚拟建模语言及Java的网页应用程序,并详细介绍了其中涉及的碰撞检测算法、接口衔接及数据库构造等。系统中根据用户的实际需要,简化了对虚拟环境人物模型动作的动作要求,更多注重于三维模型的外观细节处理,极大缩短了算法计算所需时间,这对于装修行业及其用户有着重要的使用价值。
[参考文献]
[1]张占龙,罗辞勇,何为.虚拟现实技术概述[J].计算机仿真,2005(3):30-32.
[2]娄渊胜,朱跃龙,黄河,张党胜.基于虚拟现实技术的实时漫游系统研究及实现[J].计算机工程,2001(6):20-25.
[3]张云辉,高满屯,吴建军,等.工程图中建立各分视图坐标中心及局部坐标系的算法[J].工程图学学报,2009(4):30-36.
[4]赵沁平.虚拟现实综述[J].中国科学(F辑:信息科学),2009(1):30-34.
[5]王晓荣.基于AABB包围盒的碰撞检测算法的研究[D].武汉:华中师范大学,2007.
[6]姜光焱.基于包围盒的碰撞检测算法的研究及应用[D].成都:电子科技大学,2012.
[7]王洪.基于虚拟现实的三维漫游技术研究与实践[D].成都:电子科技大学,2004.
[8]马万全,单美贤.基于VRML/JAVA的虚拟场景交互的实现[J].苏州大学学报:工科版.2006(4):30-32.
[9]宋丽红,华斌.基于VRML和Java技术的虚拟校园三维查询系统[J].计算机工程,2005(6):30-36.
The Interior Layout System and Research of Collision Detection Algorithm Based on Virtual Reality
Cao Hangcheng,Ma Zhisui,Sheng Jialong,Jin Bowen,Fan Shaotong
(Henan Normal University,Xinxiang 453007,China)
Abstract:Virtual reality is a cross technology which is the integration of computer graphics,multimedia technology,intelligent manmachine interface technology,the sensor technology and so on. Compared with the static 3D models,it increased the interactivity,and a user of the system has completely immersed sense and imagination. According to the need of the development of interior decoration industry,we establish the system which is based on Web 3D real-time walkthrough of Virtual Reality Modeling Language (VRML).By the improvement of AABB collision detection algorithm for accurate detection of regional,this system realizes the save of storage space and enhances the operating speed up. This paper describes the scene construction,model generation and collision optimization,which connect with the research content and direction in the virtual reality system.
Key words:virtual reality;man-machine interface;computer simulation;collision optimization
基金项目:河南师范大学校级“大学生创新创业计划”;项目编号:20140143,20150013。
作者简介:曹航程(1995-),男,河南信阳。