写的Xj3D。这些创作工具能用来创建对象的材料(质地和颜色)到物体上。然而,有
时候是不合适的,这个开发工具可能为了适应VR应用程序而需要去修改他。
2.1.5行为动作
幵发动作和行为总是最困难的任务。通常,行为是用特殊的脚本语言或者编程传统 8
硕士学位论文 基于WRE的海量三维模型动态调度技术的研究与实现
语言如java或者C/C++。然而,一些创作工具允许行为直接使用脚本语言。这意味着开
发者仍然需要去知道这些脚本语言。此外去建立一个真实的行为,物理引擎需要被使用,
这同样增加这个VR应用的复杂性。
2.1.6交互
交互行为能发生在两种方式上。第一个方式是考虑对象之间的交互行为。当一个交
互发生时,这个物体能在交互的影响下产生一定的动作。举个例子,当一个对象和另一
个物体相撞时,他的形状(或者颜色)可以改变。因此,碰撞检测是非常重要的。由于
支持的碰撞检测不能总是非常有效,开发者必须想办法去改进他。第二个交互的方式是
考虑用户和物体之间的。软件程序库总是支持编出用户交互的程序。
2.1.7导航
当今,虚拟世界总是非常大的。因此,考虑用户如何能在虚拟世界内部导航,而且
在其中不会迷路,有两种方法来解决导航问题(例如漫游),但是如果想实现它的话开
发者通常需要有非常好的编程技巧和VR知识。
2.2 OGRE三维引擎简介
OGRE是一个面向对象的开源三维引擎,同时支持DirectX和OpenGL,基于修改的
LGPL开源协议。在使用它的源代码之前,需要先进行环境搭建,并且对于新手来说是
一个非常头疼的问题,这中间牵扯到很多步骤、很多操作,并且每一步都很容易出错,
很容易整到最后才发现根本没有成功。编译的时间也很长,通常要几个小时,建议使用
“联机编译\工具,能很好的提高编译的速度。下面来讲解OGRE环境搭建的步骤。
2. 2. 1 OGRE环境搭建
1、安装DirectxSDK。我用的版本是DXSDKjunl0.exe,双击安装。因为OGRE同时
支持OpenGL和DirectX,所以需要先装好这些文件。
2、安装联机编译工具incredibuild3_61.exe (不想用联机编译的也可以不安装),中
间需要输入你的电脑在局域网的ip地址。联机编译工具是一个非常强大的工具,之前编
译这么复杂的软件通常需要几个小时,而使用了联机编译基本可以在一二十分钟内迅速 9
口制工程硕士学位论文 基于OGRE的海量三维模型动态调度技术的研究每实现
完成。它的原理是同时使用局域网里的其他机器的cpu—起来工作,这样相当于多台电
脑在同时工作,效率是一台机器的N倍,建议大家使用。
3、编译依赖库Dependence。Dependence是OGRE需要的其他库,添加进去能使
OGRE的功能更加广泛。
4、把编译好的Dependencies文件夹放到OGRE源码的文件夹里。
5、安装cmake工具,我使用的是cmake2.8,双击CMake (cmake-gui)。第一行输
入OGRE源码的路径,第二行输入想要生成的工程文件的路径。然后点配置(configure),
解决目录里的红色部分,再配置,一直到完全成为白色为止。最后点生成(generate)。
6、找到在cmake里输入的生成的工程的文件夹的位置,双击.sin解决方案,编译
OGRE源码,最好debug和release版都编译,建议使用联机编译程序,因为工程是dll
类型的,所以只需要编译就能生成相应的dll文件。然后要生成INSTALL,将会把相关
文件生成到相应的目录。
7、设置环境变量,OGREJiOME设成你编译生成的sdk所在的目录,path里加上
%OGRE_HOME%\\Bm\\debug,设置完环境变量需要重启电脑。
8、将OGRE源码工程的最下面的SampleBrowser设置成启动项目,运行,这是OGRE
自带的例子,如果成功说明OGRE环境搭建已经完成。这里面有很多精彩的例子,可以
让大家感受到OGRE的魅力。
2.2.2 OGRE场景结构
OGRE设计的一大特点是场景图和场景内容分离,应用程序和這染过程使用不同的
部分。 10
硕上学位论文 基于OGRE的海量三维模型动态调度技术的研究与实现
场景图(Scene Graph)
挂接
场景WI 场景WI I场景W~
(Scene Node) (Scene Node) (Scene Node) 应
挂接 i J$ I I I 读
翻对象 I I 括动对? I I 活淑才? I用
(Movable Object) (Movable Object) (Movable Object) X X X 继承
^ I I I I ^ (Entity) (Entity) (Entity)
包含 I I I ^I II I
(SubEntity) f<. M A 誇
1
(SubEntity) (SubEntity) 浪
1 I 借
可》宣觀t象I 可馆染对象I 可馆染对象I 用 (Renderable) (Renderable) (Renderable)
图2_1 OGRE场景图结构(场景图与场景内容分离)
Fig.2-1 OGRE Scene Graph Structure(Scene Graph And Scene Content Separation)
2.2.3 OGRE运行时的启动流程
K构建场景root对象。
2、创建在OGRE中的资源,这些资源在后面会用到。
3、选择 DirectX 或者 OpenGL。
4、构建程序窗口,OGRE在里面這染。
5、将要使用的资源进行初始化。
6、构建场景用刚才的资源。
7、调整插件和第三方库。
8、构建巾贞监听器。
9、开始循环,进行渲染。 2.2.4
OGRE的资源管理模式
OGRE的资源管理模式显得较为粗ir,是以资源组的形式进行统一的加载卸载,程 11
硕士学位论文 基于OGRE的海量三维模型动态调度技术的研究与实现
2.3.3 OSG中关于动态调度的功能
OSG中有关于细节层次的LOD节点功能,能够根据距离来选择需要渲染的物体模
型。还有更有效的PagedLOD分页节点功能,能够对长期不在视野的物体从内存中卸载
掉,当需要时再重新加载进内存。PagedLOD的动态调度的功能主要是依靠DatabasePager
动态数据库来实现的,能够在程序运行时进行动态的加载卸载,同时不在视野的内的其
他细节层次的模型也能进行卸载,特别适合大场景的调度。当然也有一定的缺陷,加载
的时候如果跟不上這染的速度,偶尔会产生突然跳出的现象,可以通过延长设定的过期
时间来进行弥补,使不在页面的数据不立即进行卸载,总之要尽可能将效果保证在用户
可接受的范围内。
2.3.4 OSG的资源管理模式
OSG的资源管理模式较为精致。OSG可以实现单个文件的加载卸载,能够对内存数
据进行有效的管理。OSG会将场景树信息保存到一个文件中,在程序运行的时候,根据
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于OGRE的海量三维模型动态调度技术的研究与实现 - 李雷(5)在线全文阅读。
相关推荐: