欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

基于OpenGVS的虚拟现实技术

时间:2011-04-24  作者:秩名

论文导读:提供了对于一个 OpenGVS 应用的高层执行控制。如图1所示,它利用底端的生成器如OpenGL,Microsoft Direct3D,3Dfx Glide3或其它可能的生成器。基于OpenGVS的虚拟现实技术已在国家863计划重点项目“分布式虚拟战场环境中仿真实体及其应用研究”中得到应用。
关键词:OpenGVS,OpenGL,虚拟现实
 

1 引言

OpenGVS 是 Quantum3D公司的产品,用于3D场景图形的视景仿真的实时开发,它具有很多优点:易用性和重用性好,有良好的模块性,巨大的编程灵活性和良好的可移植特性。OpenGVS 提供了各种软件资源,利用资源自身提供的API可以很好地以接近自然和面向对象的方式组织视景诸元和进行编程,来模拟视景仿真的各个要素。作为一个软件开发包 SDK(Software Development Toolkit),OpenGVS是高级面向对象的API,是用于实时3D图形软件开发和系统集成的一种应用程序接口,能够满足用户诸如模型、运动方程、灯光照明等要求。OpenGVS 替用户完成底层难度较大的3D图形工作。使用OpenGVS,一个完整的简单应用程序只需用很少的几行代码即可实现。一旦 OpenGVS与一个复杂的三维建模工具(如MultiGen)结合起来,它就成为创建虚拟环境并与之交互作用的最强大的软件环境之一。OpenGVS API 拥有强大的功能和大量函数,可以用它来快速地开发一个高质量的应用软件。并且,OpenGVS 的应用软件不需要做什么修改就可以在许多不同的硬件平台和带不同绘图标准(例如 OpenGL,3DFX GLIDE,DIRECT3D)的操作系统上运行。OpenGVS与OpenGL、Direct3D一样都是用于3D图形系统开发的API。不同的是OpenGL 等属于“低级”绘图原语。OpenGVS 则是一种软件开发包,它把繁杂的软件开发琐事分成许多简单的相互关联又方便使用的组件。用户应用程序既可以调用这些软件,也可以避开 OpenGVS 直接调用底层绘图软件包提供的函数[1]。

2 Opengvs的体系结构

OpenGVS由一系列的工具包组成,其中核心的和比较常用的工具主要有如下几个:

(1)系统工具:它是核心工具,提供了对于一个 OpenGVS 应用的高层执行控制,用来配置、初始化和“运行”OpenGVS,在特定时间和地方设置用户函数的回调,并获得正在使用的 OpenGVS 版本。通常用户不必改变这个部分。

(2)用户工具:程序员通过用户工具来访问 OpenGVS,它允许插入特定的初始化代码,并伴随着创建资源的代码。

(3)对象工具:对象工具是OpenGVS 中最重要的工具,它关心的是场景自动管理对象的动态性和连接的运动,每一个对象可以具有一个或多个定义的细节层次以及同样重要的自动对象筛选机制,这保证机器资源不会浪费在描画那些当时不可见的或太小的(显示器无法描画)对象上。

(4)纹理工具:除了被引入的对象保持其纹理元素以及OpenGVS的描画原语可以加入纹理功能外,这个工具与材质工具是一样的。

(5)导入工具:从用户观点来看,导入工具可能是OpenGVS核心最重要的元素之一,因为它将模型对象和地形对象引入OpenGVS环境。

(6)场景工具:场景工具用来创建由用户控制的场景,每一个场景是按照用户设定方式形成的一组对象的集合,而一个虚拟环境显示是由许多场景组成的。

(7)相机工具:OpenGVS中的相机工具是一种控制显示的方式。OpenGVS支持任意数量的相机,每一个相机控制一个视点的位置和方位。一个相机能够跟踪单个或多个对象的运动,甚至能够将之固定在运动对象上。

(8)帧缓存工具:用来建立图形硬件帧缓存和OpenGVS联系的软件资源。

OpenGVS自己并不定义低级生成函数,如图1所示,它利用底端的生成器如OpenGL,Microsoft Direct3D,3Dfx Glide3或其它可能的生成器。论文格式。即使不用真正的OpenGL生成器,它也似乎像OpenGL一样。用户可以只使用OpenGVS就能完成大部分三维生成效果。在Glide or Direct3D生成环境中运行软件,鼓励用户使用OpenGL函数,而不使用其它non-portable生成API。OpenGVS已为其提供了一个透明层SimGL。SimGL实现OpenGLAPI的重要子集部分。它使用户应用软件在保持高度可便携性的同时仍以最大效率运行于所有支持平台,即使这些平台并没有足够的OpenGL支持。

图1 OpenGVS的软件层次

3 OpenGVS的运行机制

3.1程序结构

GVS像一个软件通道运作。在通道里协调和共享内部信息和来自各部分三维图形处理的用户数据。GVS在场景背后为你管理着大部分的这些成分。但是,每个用户应花些时间来理解软件通道是如何工作的,因为这对于理解你的应用软件在GVS下如何运作很重要。一个典型的OpenGVS运行结构,如下图2所示。下面四个由OpenGVS处理的主要功能性行为,它们能影响用户和如何控制图形:

•初始化(initialization) 通常包括各种软件和硬件资源的创建和分配。

•运行时(run-time) 运行时创建的图形资源必须每一计算循环或每帧得以更新。

•事件处理(event processing) GVS侦测到的窗口管理器事件,传递给用户。

•关闭(shutting down)图形系统必须释放各种硬件和软件资源。

图2OpenGVS的程序结构

3.2 初始化

OpenGVS使用前,必须先初始化。要初始化OpenGVS,必须调用且仅调用一次函数:GV_sys_init();通常,从主程序中调用该函数一次(或由从主函数调用子函数,该子函数是GVS提供的默认行为)函数GV_sys_init()初始化内部GVS软件通道并启动输入处理器(如从磁盘载入数据)。GV_sys_init()可在应用软件中的任何有意义的地方调用。当然,在你的应用软件初始化部分应调用且只能调用一次。一旦GV_sys_init()完成其必要的初始化行为,它将始终调用和初始化相关的回调函数。这将在稍后讲述。如果你需要设置自己的系统单位(GV_sys_set_units)而不是系统默认单位(1.0代表1英尺),必须在调用GV_sys_init()前设置。这是有必要的,那样GVS系统初始化时输入的任何模型能以相应单位定义。

 

查看相关论文专题
加入收藏  打印本文
上一篇论文:基于Modbus规约的智能模块在电量采集系统中的应用
下一篇论文:基于QQ的FAQ答疑系统
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
最新计算机论文
读者推荐的计算机论文