本课题完成基于OpenGVS的虚拟漫游系统,完成场景建立、交互漫游、碰撞检测等关键技术。了解OpenGVS、虚拟视景仿真中的虚拟漫游等相关基础知识,在此基础之上,设计并实现本漫游系统。
2 开发平台介绍
2.1 OpenGVS介绍
Quantum3D公司开发的OpenGVS软件,能对场景进行实时可视化仿真开发,重用性和易用性效果好,模块化好,有强大的可移植特性和编程灵活性。OpenGVS提供了多种软件资源,利用资源本身提供的API,让用户可以很亲近自然和面向对象,来组织视景的诸多元素和进行编程,来可视化仿真模拟要素。OpenGVS现如今是功能最强大的3D开发应用软件之一。
GVS SDK的第一个版本于1988年由Gemini Technology Corporation发行,用于研发仿真效果和军事训练。其次是1,2,3,4后续版本。OpenGVS 4.1用一个抽象层使运用Glide更加便易。版本4.4支持Vood005(VSA-100)芯片。DireetX8、支持异步加载大型数据库,也能支持昆腾公司的AAlchemyPC-IG技术。目前,最新版本的OpenGVS版本号为4.5,支持Linux和Windows等操作系统。OpenGVS包含了面向对象的、高层次的c++程序接口(API),它们架构于世界上领先的三维图形引擎(包括OpenGL、Glide和Direct3D)之上。换句话说,OpenGVS既保持了优异的性能,又封装了繁琐底层图形的驱动函数,它的一个功能函数调入使用,相当于数百或数千行代码中常见的图形化编程。只要由少量代码,开发者就可以快速生成高品质的3D应用软件。OpenGVS的APl分为camera、channels、scens、object instances、1ight source、frame buffer等各组资源,开发人员可以由应用的需要调用各种资源来驱动硬件实时实时产生预期的效果。OpenGVS为IntelPⅢ、P4处理器做了高度的优化工作,可以充分让您的应用程序达到最佳的性能。源[自[优尔^`论`文]网·www.youerw.com/
上世纪末中期,OpenGL已成为一个主要的行业标准,GVS版本4系列更名为OpenGVS,4.0采用OpenGL1.0API。因为在Pc机上DirectX有更大的优势(有针对Pc系统方面的优化)因此,OpenGVS也支持DirectX。OpenGVS软件为实现可移植性,在低层的软件支持上有如下策略:
当硬件的生产商提供一个稳定的OpenGL驱动程序时,使用OpenGL。
当没有上面条件时,在低层API(如Glide或者DirectX)上创建图SIMGL,来实现OpenGL功能调用的模拟。SIMGL处于硬件抽象层.它通过在DirectX上建立OpenGL函数的子集的方法来实现实时的Open6L模拟。以对最终用户提供高性能并且具有良好可移植性的视景仿真程序[6]。
2.2 OpenGVS中的资源
OpenGVS程序设计应用面向对象的编程思想,主要目标是资源,这些资源包含了自身的行为和属性。在OpenGVS中的资源主要包括:镜头(cameras)、管道(channels)、场景(scens)、实体(object instances)、光源(1ight source)、帧缓冲(frame buffer)等组成。在初始化函数GV_user_init中,这些资源被建立之后被赋予初始值,各种资源有机联系在一起。之后随着GV_user_proc被调用,这些资源各属性值被修改更新,使得GVS程序能够“运动起来”。文献综述
Frame Buffer--6VS每个成像系统为帧缓冲设备提供一个接口,一个帧缓基于0pellGVs的校园漫游系统的设计与实施缓冲区往往直接经理和操作系统(如Xll,Win32)的2-D窗口相互联系。
Channels-术语“通道”是一个历史的名词,来自于计算机图形阶段工业时期繁荣发展的60年代和70年代。基本上,你能简单的认为通道是一个三维的绘制表面。过去,通道在微码和硬件中经常使用。
Camera--OpenGVS镜头,类似于通道,也是机械化软件之一。当一个镜头和一个通道连接起来时,所有与通道相关的复杂的数学转换就会自动执行。