您现在的位置: 范文先生网 >> 理工论文 >> 计算机论文 >> 正文

虚拟城市的开发技术探讨

时间:2007-1-30栏目:计算机论文

包括几何、材质、动画制作等,嵌入程序也可制作特殊的VRML辅助工具来规定场景的交互元素。运行VRML嵌入 程序VRMLOUT.EXE即可安装VRML嵌入程序。
通过VRML嵌入程序,可设置以下辅助工具:

Anchor:可将某一实体作为热点,当被点击时,取出网上所指定的文件。若为VRML场景文件,则该场景被下载显示。若为其他类型文件,由浏览器决定如何处理;

TouchSensor:对从指定设备的输入产生相应的事件,这些事件表示用户是否指向特定几何体,同时也表示用户何时何处按下定位设备的按钮;

ProxSensor:接近感知器,指定当用户进入、离开或在立方体的区域内移动时产生的事件;

TimeSensor:在时间变化是发出事件,可用来控制动画,也可用于某一时刻进行某项活动,或于某一时间间隔中产生事件;

NavInfo:描述有关观察者和观察模式的物理特性;

Background:设定场景的背景;

Fog:设置雾化的效果;

Sound:设定声音片段的有效范围,以产生随距离改变的音响效果;

Billboard:是某一对象随用户一起旋转,以使之始终面向用户;

LOD:允许浏览器在物体表示的不

同层次细节间自动切换;

Inline:可在文件中引入外部文件的场景,避免重复制作。

通过以上辅助工具,就可制作出虚拟城市场景及其交互和查询功能。

2.3.若干开发技巧介绍

2.3.1 减少文件大小的方法

(1) 使用实例:对于在场景中多次使用的对象,可在该对象首次使用时用DEF给物体命名,以后仅需通过名字即可引用该物体。

(2) 使用原型:原型物体是指那些使用频繁且改动不大的物体。使用它可减少文件的大小。由于使用了DEF/USE方法,物体一旦定义,只要指定发生变化的公共接口即可。另外,原型显示出场景层次中哪一部分可修改,浏览器可自由地优化那些不修改的部分。

(3) 压缩文件:在发布文件前,使用gzip工具压缩VRML文件和相关的HTML文件,大约可是文件减小10~100倍。

2.3.2 提高渲染速度的技巧

(1) 简化场景:简化场景有以下方法:

·减少多边形的数目,这可极大地提高执行的性能;

·使用纹理代替多边形造型,既可美化场景又可提高性能;

·使用灰度图的纹理;

·尽量少用光源,这将有效地提高渲染的速度;

·使用布告板节点,此节点允许在场景中使用二维图象来模拟三维造型并旋转,从而始终面对观察者。此法既减小了文件又不影响真实效果,可用来制作树木、电线杆、路牌、消防栓等辅助性对象;

(2)场景分割:将大的场景分为多个相对独立的小场景,通过Anchor节点为场景中逻辑上分离的部分建立连接关系;

(3)自适应LOD节点:若在LOD的range域中未明确指定具体值,浏览器会在给定时刻决定哪一层物体需要显示。该节点允许根据硬件平台的能力调整场景的细节程度。在建立一条街道时,由于街道两边有许多精细的建筑物,要对它们进行实时渲染是不可能的,但又不能不可见,仅需让用户能以一定的速度前进即可。在此,可为每个建筑物建立两个LOD节点,一个是没有明确范围的外部LOD,另一个是具有near和far范围的内部LOD节点。内部节点能按建筑物与摄像机的距离调整层次,外部"自适应LOD"节点允许浏览器调整必要的多个建筑物以赶上场景的动态变化。

(4) 碰撞检测要花费大量的处理时间,为提高对复杂物体的碰撞检测速度,可在Collision节点的proxy(替身)域指定某一更为简单的几何体作为该形体的替身,它与被替代的原形体占用大致相同的空间。这样,可大大减少检测时间。

3. 结束语
以上介绍了虚拟城市的基本原理和制作技巧,对于进行其他领域的虚拟现实应用制作同样有效,仅为场景中实体的不同。用VRML制作虚拟现实入门容易,但要达到很高的视觉效果和运行速度并非易事,须对VRML和图形学进行深入了解才可胜任。我们用它制作了虚拟校园,其运行效果较为满意。可以相信,随着VRML的不断发展,我们将可用它制作出功能更加强大的虚拟现实应用。

参考文献:

[1] 黄铁军,柳健. VRML国际标准与应用指南. 电子工业出版社

[2] 施演,周葆芳,赵志勇. VRML2.0使用速成. 清华大学出版社


上一页  [1] [2] 

下页更精彩:1 2 3 4 下一页