基于VRML的虚拟房子的场景设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

天津农学院计算机与信息工程学院《仿真与虚拟农业》课程设计报告题目:基于VRML的虚拟房子场景的设计专业班级:2013级物联网工程2班学号:1308114203姓名:赵慧彤指导教师:李乃祥成绩:2016年6月1摘要:虚拟现实场景能产一种生动逼真的效果,能让人产生身临其境的感觉。本文主要介绍了VRML基本工作原理,交互技术,并设计了基于VRML的虚拟房子的场景,旨在通过网络展示室内概括,用户可以走入虚拟房子中,观赏室内布置。浏览者可以利用输入设备控制自己的视点和视角,对这个虚拟场景进行全方位的浏览和交互。关键字:VRML虚拟场景视点交互Abstract:Virtualrealityscenecanproduceavivideffect,canletapersonproduceimmersivefeel.ThispapermainlyintroducesthebasicworkingprincipleofVRML,interactivetechnology,anddesignedavirtualhousescenebasedonVRML,designedtoshowindoorsummarizedthroughthenetwork,theusercanintovirtualhouse,watchtheindoorlayout.Visitorscanuseinputdeviceincontroloftheirviewpointsandperspectives,tocarryontheomni-directionalbrowsethevirtualsceneandinteraction.Keywords:VRMLVirtualSceneViewpointInteraction2目录摘要:...................................................1Abstract:...............................................11.设计背景...............................................32.选题分析...............................................43.可行性分析.............................................43.1用户分析..........................................43.2技术分析..........................................44.系统开发设计与实施.....................................54.1界面设计原则及VRML特性............................54.2设计模型..........................................64.3系统描述..........................................64.4界面实现..........................................74.5交互功能的实现....................................94.6主要代码设计......................................115.总结与心得体会........................................12参考文献................................................143基于VRML的虚拟房子场景的设计1.设计背景VRML是一种建模语言,也是一种描述Internet上交互式3D多媒体和共享虚拟世界的开放标准。VRML定义了一组用以描述三维图形的对象,这些对象称为节点,节点被组织成一种分层的结构,称为场景。使用场景图数据结构来建立3D场境。场景图是一种代表所有3D世界静态特征的节点等级:几何关系、质材、纹理、几何转换、光线、视点以及嵌套结构。境界中的对象及其属性用节点描述,节点按照一定规则构成场景图,也就是说,场景图是境界的内部表示。场景图中的第一类节点用于从视觉和听觉角度表现对象,它们按照层次体系组织起来,反映了境界的空间结构。另一类节点参与事件产生和路由机制,形成路由图,确定境界随时间的推移如何动态变化[1]。VRML用文本信息来描述三维场景,在Internet上传输,然后在本地机上由VRML浏览器解释生成三维场景。这种工作机制,避免了在网络上直接传输图形文件,把复杂任务交给本地机器,从而减轻了网络的负担,使得在Internet上的三维交互成为可能。VRML的访问方式是基于客户/服务器模式,其中服务器提供VRML文件及支持资源,客户通过网络下载希望访问的文件,并通过本地平台上的VRML浏览器交互式访问该文件描述的虚拟境界,因为浏览器4是本地平台提供的,从而实现了与硬件平台的无关性[2]。现今,基于VRML的虚拟现实系统已经有很多成功案例,如虚拟学校漫游系统、虚拟宿舍系统、虚拟博物馆系统等等。2.选题分析本选题是基于VRML的虚拟房子场景的系统,通过VRML制作的虚拟房子是个规模较小的三维场景,旨在通过网络展示室内概括,用户可以打开虚拟房子的门,走入房中,浏览室内布置。浏览者可以利用输入设备控制自己的视点和视角,对这个虚拟场景进行全方位的浏览和交互。3.可行性分析3.1用户分析该系统的用户为偶然型用户,即没有计算机应用领域的专业知识,也缺少计算机系统基本知识的用户,遍布各种年龄层次,文化背景,职业特征和爱好等。所以本系统的人机交互主要体现在通过鼠标和键盘控制来观看整个房子。3.2技术分析用VrmlPad软件来对VRML程序进行编辑和调试,用BScontact播放器来浏览虚拟场景。5BSContact播放器是由德国BitmanagementSoftwareGmbH公司开发的,其实现了web3d联盟规定的x3d标准的大部分节点,同时也扩展了一些应用节点,良好的图形渲染效果为x3d虚拟现实系统的开发提供了编程的接口,大大提高了构建x3d虚拟现实系统的效率。VrmlPad是由的基于文本格式、支持即时预览的VRML专用开发工具,具有VRML代码下载、编辑、预览、调试功能,是当今VRML源代码编辑的最强工具之一。4.系统开发设计与实施4.1界面设计原则及VRML特性界面要求具有一致性,常用操作要有快捷方式,便于操作。还必须提供必要的错误处理功能,提供信息反馈,并且允许操作可逆,设计有良好的联机帮助,还要能合理划分并高效地使用显示屏幕。VRML是以节点(Node)作为基本单位,将不同的节点以层次关系组织在一起,构成VRML中的场景图(SceneGraph),实现立体空间中各种造型及相关操作。总的说来,VRML具有以下特性:(1)分布式:VRML可以通过其它的VRML或Web主页使分布在各处的资源链接起来;(2)交互性:VRML提供了丰富的接口用于接收输入和与浏览器通信;(3)超媒体集成:VRML可以支持包括3D声音以及各种音频、视6频和动画等多媒体格式,还可以内嵌使用Java和ECMScript等语言编写的程序代码,VRML同其他标准格式文件也有很好的兼容性[3]。例如把WAV和MIDI文件用于虚拟世界中播放声音等;(4)平台无关性:VRML编写的文件可在任何平台上运行,它仅与VRML浏览器的解释程度有关;(5)可重组性:VRML中通过定义相关的机制(如原型机制等)使得用VRML生成的模型可被重复使用;(6)易扩展性:VRML不仅可以让开发者定义自己的节点类型,还提供了多种调用接口。4.2设计模型4.3系统描述通过VRML制作的虚拟房子是个规模较小的三维场景,旨在通过7网络展示室内概括,用户可以走入虚拟房子中,观赏室内布置。浏览者可以利用输入设备控制自己的视点和视角,对这个虚拟场景进行全方位的浏览和交互。4.4界面实现1、用户可用键盘上的前后左右键漫游系统,在系统中行进;2、用户可通过点击鼠标控制门的开关状态;3、用户可用鼠标在系统中行进漫游;4、用户漫游时无法用+、—控制速度;5、用户可用BScontact播放器自带的功能键实现俯视或仰视建筑,还能变换视点观察房间内部结构。如下,图1--4分别是四个视点的房间外部浏览,图5、6是房间内部场景展示。图1正面视点8图2左侧后方视点图3右侧后方视点图4侧方视点9图5房间内部柜子等视点图6房间内部沙发等视点4.5交互功能的实现VRML中实现交互的一个基本方法就是使用各种传感器,传感器主要用来检测用户在虚拟场景中的动作。通过事件的传递实现用户和虚拟场景的交互。传感器分为两大类:一是触摸型的传感器,另一类是感知型的传感器。主要由用户在虚拟场景中的动作来决定。所谓动作分为两类:一类是用户的输入设备对于对象的操作。用户在浏览场景的时候,主要的输入设备是鼠标,传感器实际上是检测用户对于鼠10标的各种操作动作,如鼠标的单击、指向和拖动等,从而场景作出相应的反应。这属于触摸型传感器。描述这类传感器的节点有TouchSensor(使用TouchSensor可以实现交互区域划分,只有用户单击点在指定区域时才会产生交互效果);PlaneSensor(将鼠标运动转化为z=0平面上的相对运动,即对象可在X-Y平面移动,其方位不发生变化);CylinderSensor(将鼠标的单击和移动转化为空间的一个虚构圆柱体的旋转);SphereSensor(将鼠标的单击和移动转化为绕原点的旋转)。另一类是用户和场景中的某对象接近的程度作出响应,从而产生交互,这类是感知传感器[4]。本场景设计使用的是TouchSensor,触摸型传感器,接触传感器(TouchSensor)是最常用的传感器,先了解一下开关节点lightSwitch(组节点),并定义一个接触传感器作为它的子节点:DEFlightSwitchGroup{children[各几何造型节点DEFtouchSensorTouchSensor{}]}本场景实现交互的代码如下:DEFTouchSensor01-SENSORTouchSensor{enabledTRUE}设置的交互区域是蓝色的门,用户用鼠标单击门时,门会自动向右推拉开启。如下图:114.6主要代码设计#VRMLV2.0utf8#Producedby3DStudioMAXVRML97exporter,Version3,Revision1.31#MAXFile:SunnyHouse5.max,Date:FriJul2010:48:082001DEFCamera01Viewpoint{position-2.8511.3418.06orientation-0.1690.9847-0.04252-0.5002fieldOfView0.6024descriptionCamera01}DEFNavInfo01NavigationInfo{avatarSize[0.2165,0.6417,0.6102]headlightTRUEspeed0.9667typeWALKvisibilityLimit0}DEFBackground01Background{skyColor[00.18040.5725,0.50590.59220.7882,0.80780.83920.9176,]skyAngle[1.047,1.571,]groundColor[111,]}DEFTouchSensor01-SENSORTouchSensor{enabledTRUE}#触摸型传感器]ROUTEBox10-TIMER.fraction_changedTOBox10-POS-INTERP.set_fractionROUTEBox10-POS-INTERP.value_changedTOBox10.set_translation}DEFB

1 / 33
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功