APP下载

碰撞检测在三维场景漫游中的研究与实现

2012-09-29王良燕

网络安全与数据管理 2012年24期
关键词:引擎模型

王良燕,高 敏

(安徽三联学院,安徽 合肥230601)

虚拟现实是当今计算机领域的一项热门技术,其中一个重要功能是虚拟三维漫游,实现这一功能需要借助计算机图形引擎。OGRE[1]是一款专门处理三维场景的图形引擎,具有开源免费、跨平台等多种优点,目前在虚拟现实领域已有非常广泛的应用[2-3]。

实现三维漫游需要考虑的一个重要问题是碰撞检测,OGRE引擎本身不具备这项功能,需要借助第三方引擎实现,常用的第三方引擎库有 Newton[4]、ODE[5]等。Newton在碰撞检测方面性能更出色,它是一款开源免费的碰撞检测引擎库,OgreNewt是对Newton库的一层面向对象封装。可以结合OgreNewt和OGRE,在三维场景中实现碰撞检测功能。本文主要探讨如何在OGRE基础上,结合OgreNewt及Newton库,实现具有碰撞检测功能的三维漫游系统。

1 OGRE、Newton和 OgreNewt

OGRE是用C++开发的跨平台的3D引擎,底层基于OpenGL和DirectX实现,具有高效的三维场景管理性能,能很好地兼容第三方库以实现一些特定功能。一个基本的 OGRE系统主要包括 Root、SceneManager、Entity、SceneNode、Material和Camera等几部分。Root是整个系统的入口点,通过它可以获取系统中的其他对象。Entity是三维物体模型,Material是模型的材质,每个Entity都挂载到一个SceneNode上,所有SceneNode共同组成一个树状结构,由SceneManager统一管理。通过Camera来实现观看场景。

OGRE引擎通过OgreNewt与Newton库衔接。OgreNewt通过Newton库中的一些基本的元素来描述物理世界,主要包括World、Collision和 Body等。World是最基本的类,通过它可以建立一个空间,所有其他物体都在这个空间里创建。空间中的物体参加碰撞检测时需要有一个包围盒,通过包围盒计算来判断是否发生了碰撞,Collision用于定义包围盒的形状,基本形状有Boxes、Ellipsoids、Cylinders、Capsules等。……

登录APP查看全文

猜你喜欢

引擎模型
一半模型
以学促干 挺膺担当 激活砥砺前行的红色引擎
重尾非线性自回归模型自加权M-估计的渐近分布
蓝谷: “涉蓝”新引擎
3D打印中的模型分割与打包
FLUKA几何模型到CAD几何模型转换方法初步研究
无形的引擎
基于Cocos2d引擎的PuzzleGame开发
One Engine Left只剩下一个引擎
一个相似模型的应用