小议基于VRML 的3D 虚拟校园设计(2)
2014-03-28 01:21
导读:三维建模和渲染完成之后,就可以将场景导出为wrl文件。由于wrl文件中含有大量冗余数据,有必要对其进行优化。优化包括对模型的优化和对VRML文件本身
三维建模和渲染完成之后,就可以将场景导出为wrl文件。由于wrl文件中含有大量冗余数据,有必要对其进行优化。优化包括对模型的优化和对VRML文件本身的优化。
在3DS Max中,对于复杂材质的目标采用二次建模,先精细建模,赋以纹理与材质,然后对所需的纹理进行渲染输出。首先,对精细建模的目标结构进行分解,采用拉伸或放样等功能生成简单几何体的组合,最后,将上述输出的包含细节信息的纹理对几何体进行贴图,完成模型的构建可以减少三角面片的数量。
对VRML文件自身的优化可以使用VRML中的LOD节点。LOD节点根据人眼对同一个物体在远近不同的位置所能看到的细节详细程度不同这一视觉特性,对建筑物模型进行优化处理,为建筑物建立一组详细程度有别的几何模型,建筑物离视点越远,建立的模型包含的多边形就越少,从而加速模型绘制速度提高浏览虚拟场景的流畅性。另外,对于相同造型的物体先用DEF语句对节点命名,再通过USE引用就可获得物体的完整复制;而对相近造型的物体可以使用原型节点PROTO 来复制使用,这样可大大简化代码。
4.2 场景的动态和交互实现
本文的虚拟校园实现动态和交互采用了两种方法,SAI和EAI,SAl(Script AuthoringInterface)是节点创建接口,实现的过程如图3所示VRML中定义了9种感应器,分为环境感应器和设备感应器,相应的感应器感应到的相应的事件发生,感应器节点通过路由就可以将消息送到指定的节点,如果需要支持复杂事件,则可以将事件EventIn到脚本节点进行处理,然后脚本节点再将事件EventOut接着通过路由再作用于其他节点,从而为场景增加交互性和动态性,脚本节点可以增删路由。
例如,本文的虚拟校园进入房间后实现用开关控制灯的亮灭所用的代码如下:
DEF s1 Script{ #s1为脚本节点
eventIn SFTime touch #定义EventIn变量
eventOut SFInt32 choice #定义EventOut变量
url "vrmlscript: #vrmlscript脚本实现
function calculate(input){return(input+1)%2;} #输入为1时返回0,输入为0时返回1
function touch(){ #实际是为一个求反运算,实现灯的开关
choice=calculate(choice);}"
}
ROUTE TouchSensor1.touchTime TO s1.touch #路由触发器到脚本的EventIn
ROUTE s1.choice TO light1.whichChoice #路由脚本的EventOut 到灯的开关
EAI(External Authoring Interface)是VRML与JAVA进行消息传递的接口,通过EAI可以实现Java-applet与vrml的通信,EAI提供了一系列的java包,为一个Java Applet提供以下功能:控制VRML浏览器的工作状态;发送一个事件到VRML场景中的事件入口;接受VRML场景的节点的事件发出的最新值。对于单一的VRML事件实现交互及运算功能可选择内部的中国科技论文在线Script节点即SAI接口来实现,若需集成多种媒体,并进行复杂网络控制,则更适合通过EAI接口与Java语言相结合实现更复杂功能。本文的虚拟校园中采用JDBC方式来建立VRML,Java Applet与数据库三者的连接,来完成比一般校园网中更为直观的查询功能。
本文的虚拟校园场景整体文件很大,为了实现场景的跳转或者访问场景内部结构而不增加场景体积,或者为了实现场景到相应网页的跳转,利用了VRML的Anchor节点。本文中实现的虚拟校园可以访问建筑物的内部空间,实现的方法就是在门物体上增加一个Anchor节点 Anchor { children [
DEF door Transform {…} #门物体的形状代码
] url"room.wrl"}
添加了上述代码之后,当点击门节点的时候就可以跳转到room.wrl文件,进入对应的内部场景。Anchor节点同样用于多媒体教室中,当浏览者漫游到多媒体教室中,可以点击场景中的多媒体播放按钮,跳转到相应的多媒体文件,如PPT演示或者视频文件等。
5 总结
本文提出了一种基于VRML的建立三维虚拟校园漫游系统的实现方法,并对实现过程中的相关技术问题进行了研究。三维虚拟校园比传统的2D校园网页更加直观、便利,能够使浏览者迅速对整个校园以及校园的基础设施有充分的了解,同时也为实现虚拟教室提供了一种有效的途径。随着虚拟现实技术的进一步发展,虚拟校园必然能够增加更为丰富的内容。