APP下载

虚拟现实在室内设计中的实际应用

2017-05-23祁长兴刘峻杭

软件工程 2017年4期
关键词:碰撞检测室内设计虚拟现实

祁长兴+刘峻杭

摘 要:虚拟现实技术在各个领域中的应用十分的广泛。文中首先阐述了系统设计的流程,根据室内设计的特点,并结合虚拟现实将室内设计作品以虚拟现实的形式进行展现。室内设计人员通过软件进行具体的设计,体验者可以利用虚拟现实来进行沉浸式的体验。相比较于传统的室内设计,这样可以更直观的、更有效的对设计者的作品进行检验,同时也能大大的减少成本和不必要的风险。

关键词:室内设计;虚拟现实;沉浸;碰撞检测

中图分类号:TP391.5 文献标识码:A

Abstract:Virtual reality technology is widely used in various fields.This paper firstly describes the system design process.According to the characteristics of interior design,works are presented in the form of virtual reality.Interior designers perform specific design in software programs,and users can achieve immersive experience through virtual reality.Compared with the traditional interior design,it enables designers to conduct more intuitive and more effective inspection on their works,which greatly reduces costs and unnecessary risks.

Keywords:interior design;virtual reality;immersion;collision detection

1 引言(Introduction)

虚拟现实技术(VR)是近些年的最为热门话题,如今在各个领域都有实际的应用[1]。它是仿真技术的一个重要方向,是仿真技术与计算机图形学人机接口技术、多媒体技术、传感技术以及网络技术等多种技术的集合,是一门富有挑战性的交叉技术前沿学科和研究领域,主要包括模拟环境、感知、自然技能和传感设备等方面。

沉浸式虚拟现实(Immersion VR)利用头盔显示器把用户的视觉、听觉封闭起来,产生虚拟视觉,同时,它利用手套把用户的手部的触觉封闭起来,产生虚拟触觉。系统采用控制器让参与者对系统主机下达操作命令,与此同时,头、手均有相应的头部跟踪器、手部跟踪器的追踪,使系统达到尽可能的实时性[2]。临境系统是真实环境替代的理想模型,它具有最新交互手段的虚拟环境。常见的沉浸式系统有基于头盔式显示器的系统、投影式虚拟现实系统,本文基于头盔式显示器的系统设计。

2 系统设计流程(System design flow)

系统整体分为两个部分,用户体验与设计场景。

2.1 设计场景

设计的部分一共有四个模块,地面的大小、墙体的设计、添加材质和添加具体的家具。

地面的大小直接关系到了体验时的活动范围,而墙体的设计则是要根据具体的数据进行设计,动态地添加墙体的预制体,并以列表的形式保存在场景中,以便保存成外部文件,添加的材质也是如此,并且要进行边缘检测。添加家具的功能包括了添加灯具等细节部分,将灯的开关与灯具的光源進行关联,用户可以在体验部分进行更加真实的体验。

2.2 用户体验

可以使用两种方法进行体验,VR和非VR两种,在非VR的体验模式中如同游戏一样,通过鼠标和键盘在这个场景中进行交互,VR的体验模式则是使用设备进行移动和交互[3]。

3 虚拟现实的功能交互设计(Functional interaction

design of virtual reality)

利用官方提供的插件给软件添加VR的功能,在场景中添加一个模拟的人形对象,将VR的摄像头移动到头部,并通代码将对象的位置与VR头盔的位置将其关联,实现移动功能,如果使用者没有足够大的空间进行移动则需要利用控制器进行移动,利用手柄控制器上的触摸键来实现前后左右的移动。同时,利用手柄控制器上的按键来模拟人的手,在场景中实现抓和按等功能[4-6]。

虚拟现实设备只是工具,实际的功能需要算法来实现,虚拟现实中使用者与虚拟场景的交互主要使用碰撞检测技术来实现。

4 碰撞检测(Collision detection )

碰撞检测在一个3D的场景中使用率特别高,在许多的功能中都需要用到碰撞检测,如场景的搭建、交互。虚拟现实中的场景交互中一定要用到碰撞检测,例如移动路线中遇到障碍物与场景中的对象进行交互,这些功能都需要碰撞检测。

4.1 “材质”边缘检测

材质的边缘检测主要让同一种材质之间不会有过大的缝隙,通过遍历每一个材质对象,检测它们之间的距离关系。例如参照对象Oa和对象Ob,需要比较两者之间的坐标关系,这里我们只需要考虑x、y两个轴,比较两者间同一轴的距离并与规定的距离Lx和Ly比较。

|Oax-Obx|-Lx

|Oay-Oby|-Ly

比较两个差值的绝对值,取差值最小的一轴,再通过比较来判断两个对象的位置关系,如图1所示。

Oax-Obx>0,Ob在Oa的左侧

Oax-Obx<0,Ob在Oa的右侧

Oay-Oby>0,Ob在Oa的后侧

Oay-Oby<0,Ob在Oa的前侧

得出位置关系后通过改变坐标位置使两个对象之间达到规定的距离。

左侧,Obx=Oax-Lx

右侧,Obx=Oax+Lx

后侧,Oby=Oay-Ly

前侧,Oby=Oay+Ly

4.2 碰撞检测

因为室内设计的特点,几乎所有的物体都是静态的,所以都可以视为是场景的一部分AABB间的动态检测稍微复杂一些。考虑一个由极值点smin和smax定义的静止AAB和一个由mmin和mmax定义的运动AABB。运动AABB的运动由向量d给出,t从0变化到1。

将三维的问题转换成为独立的一维的问题,再把它们组合在一起就得到最终答案。

黑色矩形代表沿数轴滑动的运动AABB。当t=0时,运动AABB完全位于静止AABB的左侧,当t=1,是运动AABB完全无语静止AABB的右边。tenter是两个AABB开始相交的时刻,tleave是两个AABB脱离的接触时刻。对于正在讨论的维,设mmin(t)和mmax(t)代表运动AABB在时刻t的最小值和最大值。

mmin(0)和mmax(0)是运动AABB的起始位置,d是位移向量在d在這个维上的分量。类似地用smin和smax来定义静止AABB。tenter就是当mmax(t)等于smin时的t值。

求出tleave和tenter。在这段时间内两个AABB会在某一维上相交,而所有维上的时间区间的交集就是两个边界框相交的时间段。如果区间为空,那么两个AABB永远不会相交;如果区间在[0,1]之外,那么在所讨论的时间段内他们不相交。实际上这个时间区间给出的信息比我们想要的还多,因为我们只需要知道它们开始相交的时间点,而不需要知道结束相交的点。

4.3 射线碰撞检测

这是一种最为常用的碰撞检测,主要用于选择已实例化的对象。在这个系统中起到了至关重要的作用,例如对墙体、家具的选择。

主要通过鼠标点击屏幕,系统已屏幕上的点发出一条射线,选中这条射线所碰撞到的第一个物体,实现了点击屏幕选择对象的功能。

具体实现方法为,先创建射线对象,并实时监测鼠标是否发生点击动作,鼠标发生点击动作是对射线对象赋值,射线的起点为鼠标点击的位置,并以屏幕投影的角度创建射线,如图2所示,并检测射线是否被物体所遮挡(碰撞检测),如图3所示,如果发生,就返回这个遮挡的物体,也就是我们要选择的物体,并进行想要的操作。

5 结论(Conclusion)

这种设计可以直观的体验室内设计作品,让体验者可以直接在“设计并改装后”的房屋中进行实际的体验,相较于用平面展示的传统室内设计提高了用户的满意度,减少了返工的几率,并减少了不必要的资源浪费。并且在其他的领域中也可以应用,如大型商场内的设计、房地产开发、园区环境设计。

参考文献(References)

[1] R Leeb,et al.Thinking Penguin:Multimodal Brain Computer Interface Control of a VR Game[J].IEEE Transactions on Computational Intelligence & Ai in Games,2013,5(2):117-128.

[2] AV Dam,et al.Immersive VR for Scientific Visualization:A Progress Report[J].Computer Graphics & Applications IEEE,2000,20(6):26-52.

[3] AJ Yeh,RA Nason.VRMath:A 3D Microworld for Learning 3D Geometry[J].Virtual Reality,2004(1):21-26.

[4] Fletcher Dunn,Ian Parberrry.3D数学基础:图形与游戏开发[M].北京:清华大学出版社,2016.

[5] 何伟.Unity虚拟现实开发盛典[M].北京:人民邮电出版社,2016.

[6] 郭浩瑜.Unity 3D ShaderLab开发实战详解[M].北京:中国铁道出版社,2016.

作者简介:

祁长兴(1973-),男,硕士,副教授.研究领域:软件工程与应用,神经网络与智能控制.

刘峻杭(1994-),男,本科生.研究领域:软件工程与应用.

猜你喜欢

碰撞检测室内设计虚拟现实
陈奕含室内设计作品
室内设计作品
全新预测碰撞检测系统
DOE深业上城店室内设计
基于BIM的铁路信号室外设备布置与碰撞检测方法
Unity3D中碰撞检测问题的研究
低碳理念在室内设计中的应用
REALITY BITES
风口上的虚拟现实
虚拟现实技术向科幻小说借灵感