| 您目前的位置:技术园地->技术难题 | |
| 虚拟自行车漫游系统的研究与实现(二) | |
| 发布日期:2006-11-29 来源:电动车中国网 | |
2.3 虚拟场景的构造及其实时显示技术 目前,从技术角度上讲,漫游的最大难点在于建模和实时绘制,需要在模型的精细程度和绘制速度方面取一个折衷,既要保证一定的绘制质量,又不能造成用户的运动不适感。在建模和实时显示方面采用了各种技术,以保证实时性。 2.3.1 虚拟场景的构建 虚拟环境中的每个物体包含形状和外观两个方面,用于存储虚拟环境中几何模型的模型文件应该能够提供这两方面的信息。同时还要满足虚拟建模技术的三个常用指标——交互显示能力、交互操纵能力、易于构造的能力对虚拟对象模型的要求。Open GL中很容易实现模型的各种变换、着色、光照、纹理、交互操作和动画,但是它只能提供基本几何元素的造型函数,使得复杂模型的建模相对困难。3DMAX等三维图形建模工具能方便建立各种复杂特体模型,但是很难进行程序控制。因此,笔者在3DMAX等工具中建立好复杂模型后,在Open GL中实现对其方便控制和变换。 本系统(VR-BWS)软件部分需要享用多种公开三维格式文件数据,同时还要与数据库相关联,VR-BWS数据流图如图2示。 2.3.2 三维模型的实时显示 在3DMAX等建模工具中建立好复杂模型后,可以用多种文件格式存储。考虑到Open GL提供了最基本的由多边形构造三维模型的方法,故以三角形网络方式存储。VR-BWS的软件部分是基于面向对象技术。三维图形类、渲染场景必不可少的属性类如:颜色类、纹理类、材质类、光源光等均采用面对象方法对Open GL函数进行封装(如图3所示),软件的各个组成模块使用OCX控件和COM作为标准接口。这样既可以大大节省开发时间,又能提高渲染速度。 虚拟现实最重要的特性是人可以在随意变化的交互控制下感受到场景的动态特性。而提高显示性能的技术包括硬件和软件两个方面。在硬件方面,采用了高速的DSP芯片进行数据的实时采集和传输;软件方面建立了多线程、非阻塞的漫游框架,并采用了以下方法来提高场景画面的刷新速度。 (1)双缓存机制。也为显示器建立两个视频缓冲区,一个用于后台刷新屏幕,一个用于前台绘制。当需要更新时,切换这两个缓冲区,将原来作刷新用的缓部区用于绘制新的帧,同时将原来作绘制用的缓冲区用于刷新显示。场景越复杂,采用双缓存机制时间优越性就越能得到体现。而且采用双缓冲机制可以解决画面演示过程中严重的“闪屏”现象。 (2)LOD(Level of Detail)细节层次技术。根据两种不同的判断来选取细节层次不同的模型:一是距离远近,离视点近的物体采用较高精度绘制,离视点远的物体则用较低精度绘制;二是通过自行车的速度设定不同的阈值,根据阈值选取不同精度的模型,然后通过平滑过渡技术来显示。 (3)实例技术。场景中经常需要多个相同的虚拟物体,如完全相同的树木等。对于这类需重复出现的特体,利用Open GL库中的显示列表功能,将其分别定义为单独的显示列表,预先生成三维实体;再通过几何变换得到其它位置的特体。在图形显示时,只需调用所需的显示列表即可显示相应的三维实体,大大节约内存从而提高图形显示速度。 |
|
|
|