根据密云县京承高速路都市型现代农业走廊的航拍图和规划方案构建 3D地形场景。根据数码采集的相片,制作工业区、高速路等 3D 模型。根据数字化仪,先得到花卉、芦笋等植物的模型,然后通过3DMAX进行模型优化。并对某些模型加入了动作。生成模型后,运用以下的方法,生成Virtools 可载入的文件。如图2所示。
5.2 模型的布局及优化
在场景布局方面,严格按照航拍图和规划方案进行布局。和农学专业合作,确定各种农业相关物品的大小和比例。同时通过以下策略实现载入的优化:①对于重复出现相同实体使其共用纹理和材质。②纹理图片进行优化,在保持效果的前提下,缩小纹理的大小,这样可以在程序运行的时候尽可能少的占用显存。③实现动态载入技术,即当场景中需要什么实体(包括模型、图片、音乐、视频)时动态载入。④在纹理渲染方向,材质渲染选择最近的渲染方式,可以减少占用显存。⑤在实现现有功能的前提下,对消息控制和流程控制进行优化。
5.3 介绍几个重点功能模块的流程
1) 手动漫游
①Switch On Key、Translate:在Switch On Key通过设定参数W、A、S、D四个按键消息,当按W、A、S、D时,启动流程,然后Translate实现四个方向的移动,从而实现对人行走的控制
②添加 Object Keep On Floor V2、Object Slider同时对物体增加碰撞属性,和地板属性,设定Object Keep On Floor V2的参数,实现行走时保持在地板上,通过Object Slider 的设置实现碰撞处理,避免穿过碰撞物。
③添加 Mouse Camera Orbit 实现用鼠标控制镜头。流程图如图3所示。
2) 自动漫游
①Wait Message、Set As Active Camera、Delayer:首先由Wait Message接收到消息启动流程,通过Set As Active Camera设定当前活动的摄像机,然后反复运用时间函数Delayer 实现摄像机的动态交换。
②Wait Message、Look At、Set Position:也是先由消息启动流程,然后通过Look At实现参考系的跟随功能,最后通过Set Position确定参考系的位置。
③ Wait Message、Bezier Progression、Position On Curve:也是先由消息启运流程,然后通过Bezier Progression产生贝赛尔函数的渐渐变化。最后Position On Curve实现摄像机跟随事先设定好的轨迹运动。流程图如图4所示。
3) 季节控制
①Switch On Parameter、Set Current Slot、Show、Hide:缺省为春天,然后可以通过Switch On Parameter选择参数,启动其它季节的流程。
②Text、Switch On Parameter、Parameter Selector、Season Sound init、Hide、Ware player、Identity:没有设定默认值,通过Switch On Parameter、Parameter Selector参数对应的选择,启动四种季节语音介绍,然后通过自己开发的Season Sound init选择好语音,最后通过Ware player播放。流程图如图5所示。
图5 季节控制功能
4) 视景特效
①在模型中加了动作以后,车的行驶、鱼的游弋、鸟的飞翔、都可以转变为角色对象,可以通过Position On Curve实现其功能。
②麦浪、睡莲、在做模型时做成一个平面的模型,然后通过Texture Sine实现纹理的流动,通过Play Animation 3D Entity实现模型的动作。
③河水流动也可以通过纹理的动作来实现。
④用粒子系统实现喷泉、雨点等特效。
6 应用实例
利用Virtools三维开发工具,设计实现了密云县京承高速路二期都市型现代农业走廊视景仿真系统,见图6.该系统虚拟场景逼真,功能齐全。并且以网页形式发布,用户可以通过运行程序,自动通过网络安装浏览器插件浏览,同进支持,多视点、多场景的浏览,并且交互能力强,让用户有身临其境的感觉,宣传效果极佳。