OpenGL通常描述低级生成要素,如如何用用户定义的属性(如颜色、纹理图)绘制多边形,对象对模拟光源如何反应等。而OpenGVS是一个场景管理器,它的功能就是从低级生成API功能结束的地方开始的。
OpenGVS提供了各种软件资源,利用资源自身提供的API,可以很好地以接近自然和面向对象的方式组织视景诸元和进行编程,来模拟视景仿真的各个要素。OpenGVS包含了一组高层次的、面向对象的C++应用程序接口(API),它们直接架构于世界领先的三文图形引擎(包括OpenGL、Glide和 Direct3D)上。OpenGVS既封装了繁杂的底层图形驱动函数,又保持了良好的性能,它的一个功能函数调用,等同于普通的上百或上千行图形编程代码。OpenGVS不仅基于OpenGL 图形标准,而且它可以被应用于所有图形平台标准。一旦你编好你的应用程序,它可以运行在从高端图形工作站到PC的任何系统上。功能强大的3D SDK帮助你快速有效的制作3D产品。OpenGVS是一个开放的系统,它可以使开发者的应用使用任何软硬件平台上。高级面向对象的OpenGVS API满足用户的各自项目的要求,诸如模型、运动方程、灯光照明等。OpenGVS替用户完成底层的难度较大的3D图形工作,使用OpenGVS你只需用很少的几行代码就可编写一个完整的简单应用程序 。
2.2 OpenGVS体系结构
OpenGVS由一系列的工具包组成,其中主要工具有系统工具、用户工具、对象工具、纹理工具、导入工具、场景工具、相机工具和帧缓存工具。
系统工具:这是OpenGVS核心工具,它提供了对于一个基于 OpenGVS 应用的高层执行控制,用来配置、初始化和运行OpenGVS,在特定时间和地方设置用户函数的回调,并获得正在使用的 OpenGVS 版本。通常用户不必改变这个部分。
用户工具:程序员通过用户工具来访问 OpenGVS,它允许插入特定的初始化代码,并伴随着创建资源的代码。
对象工具:这是OpenGVS 中最重要的工具,它反应的是场景自动管理对象的动态性和连接的运动,每一个对象可以具有一个或多个定义的细节层次以及同样重要的自动对象筛选机制,这保证机器资源不会浪费在描绘那些当时不可见的或太小的(显示器无法描画)对象上。
纹理工具:除了被引入的对象保持其纹理元素以及OpenGVS的描绘原语可以加入纹理功能外,这个工具与材质工具是一样的。
导入工具:从用户观点来看,导入工具可能是OpenGVS核心最重要的元素之一,因为它将模型对象和地形对象引入OpenGVS环境中。
场景工具:场景工具用来创建由用户控制的场景,每一个场景是按照用户设定方式形成的一组对象的集合,而一个虚拟环境显示是由许多场景组成的。
相机工具:OpenGVS中的相机工具是一种控制显示的方式。OpenGVS支持任意数量的相机,每一个相机控制一个视点的位置和方位。一个相机能够跟踪单个或多个对象的运动,甚至能够将之固定在运动对象上。
帧缓存工具:用来建立图形硬件帧缓存和OpenGVS联系的软件资源。OpenGVS自己并不定义低级生成函数,相反,它依赖于利用底端的生成器如OpenGL 。 Microsoft Direct3D,3Dfx Glide3或其它可能的生成器。即使不用真正的OpenGL生成器,它也似乎像OpenGL一样。用户可以只使用OpenGVS就能完成大部分三文生成效果。在Glide or Direct3D生成环境中运行软件,鼓励用户使用OpenGL函数,而不使用其它non-portable生成API。OpenGVS已为其提供了一个透明层SimGL。SimGL实现OpenGL API的重要子集部分。它使用户应用软件在保持高度可便携性的同时仍以最大效率运行于所有支持平台,即使这些平台并没有足够的OpenGL支持 。 基于OpenGVS的虚拟汽车驾驶模拟系统的开发(4):http://www.751com.cn/tongxin/lunwen_1612.html