虚幻4引擎的游戏引擎与osg,orge比哪个功能更强大

第2页/共3页
LightWave(.lwo),Alias Wavefront(.obj),OpenFlight(.flt),In-ventor Ascii 2.0 (.iv)/VRML 1.0 (.wrl),Designer Workshop(.dw),AC3D(.ac)和本地ASCII文本格式(.osg)和本地二进制格式(.ive)及.osga压缩包格式,等等。
(4)OSG内省库(osgIntrospection)
OSG内省库提供了一个与语言无关的程序接口,确保了OSG可以在更多的环境下运行。
3、OGRE与OSG的异同比较
在上节中简要介绍了这两个主流三维引擎的功能特性,但是两者在功能设计、场景管理等方面还是有着诸多不同,本节就两者的异同做具体说明。
3.1 设计理念和体系
利用传统而基本的方法(就是使用OpenGL或者Direct3D这种底层API的经验)进行3D应用程序开发,会发现有一些相似而且繁琐的过程:通过调用API设置渲染状态;通过调用API传送几何体信息;通过调用API通知GPU渲染;清理;返回到第一步,直到渲染完一帧进入下一帧。这个过程会让你陷入纷杂的API操作之中,相对于真正的应用,可能你会被浪费在基本的几何体操作中去。
使用OSG或OGRE来渲染几何体,就可以从几何体级别的处理工作中抽离出来,转而处理具体的场景和在场景中的物体。比如:可活动的物体、静态物体组成的场景本身、灯光、摄像机等。只需简单的把物体放到场景之中,它们会帮助你完成杂乱的几何渲染处理,从而脱离对调用API的依赖。
(1)OGRE和OSG在架构设计上存在许多的共同之处,都是为了兼顾系统的高效性、可移植性和可扩展性,均采用了以下的设计理念:遵守ISO标准的C++编写;两者对标准模板库(STL)的运用十分广泛;设计模式(design patterns)的使用。
但两者也存在着明显的差异,OGRE从它的命名上可以看出,它是一个面向对象的三维渲染引擎。相比OpenGL和D3D的显明带有面向过程特征的API,经过抽象的面向对象API更简明,使用更方便。而OSG是在OpenGL基础上提供了很多使用方便的功能包(即对OpenGL一些底层函数进行了封装),并没有对底层图形接口进行抽象。
(2)两者都是公开源代码的项目,它们的用户许可方式均为修改过的GNU宽通用公共许可证(GUN Lesser General PublicLicense)。
(3)都采用了命名空间(Namespaces)的特性,可以将类,枚举(Enums),结构(Structures)放在同一个命名空间下,可以防止命名混淆。比如,在OGRE中定义的类、数据类型时,必须加上“Ogre::”的前缀,“Ogre::Camera”;在OSG中的相应的为osg::Camera。
3.2 平台支持
OGRE与OSG都具有很好的跨平台性,两者都可以运行于Linux、MacOSX和Windows等操作系统中。但是由于OGRE支持Direct3D和OpenGL,而OSG仅支持OpenGL渲染,因此OGRE侧重于成熟的商业平台,如D3D及主流图形操作系统(Windows),而只要是OpenGL平台支持的操作系统,OSG就支持。
3.3 多语言支持
OSG和OGRE 以社区项目的形式支持多种语言,比如C#、Java,Lua 和 Python等。
3.4 坐标系
坐标系是一个精确定位对象位置的框架,所有的图形变化都是基于一定的坐标系进行的。OGRE中采用了右手坐标系,而 OSG则
使用左手坐标系。
所以,两者在坐标变换时也是不同的。图1形象地描述了着两个坐标系,其中左侧的为OGRE坐标系,右侧的为OSG
3.5 场景树管理(场景组织)
OGRE与OSG都有一个场景树在管理整个场景的相关信息,通过场景树可以方便地管理场景物体,并且在向底层接口提交绘制操作前进行一些裁剪和绘制顺序调整工作。同时OGRE与OSG的场景组织的内容是不同的。
OGRE对场景图的操作维持在接口级别;它并不关心去操作图形的具体算法实现。也就是说,OGRE只是通过API来操作场景图,进而忽略了具体的算法实现。其次,OGRE的场景图接口只负责维护场景结构。节点中没有包含任何固有的内容和管理方法。具体的内容被放置到一种可渲染(Renderable)对象之中,它提供了场景中全部几何图形(包括活动的的或者其他所有的)。它们的渲染的属性被包含在实体(Entity)对象中,在实体对象里面同样包含着一个或多个子实体
(SubEntity)
这些子实体才是
是真正可以被渲染对象
图2展示了场景图结构和场景内容之间的
图2 OGRE中场景图和场景内容关系描述
场景图形树结构的顶部是一个根节点。从根节点向下延伸,各个组节点中均包含了几何信息和用于控制其外观的渲染状态信息。
在OSG中存在两颗树,即场景树和渲染树。OSG中场景的组织是通过场景树来实现的。场景树是一颗由Node组成的树,这些Node可能是矩阵变换、状态切换或者真正的可绘制对象,它反映了场景的控件结构,也反映了对象的状态。场景图形采用一种自顶而下的、分层的树状结构数据来组织空间的数据集,以提升渲染的效率。场景图形树结构的顶部是一个根节点,从根节点向下延伸,各个组节点中均包含了几何信息和用于控制其外观的渲染状态信息。根节点和各个组节点都可以有0个或多个子成员。在场景图形的最底部,各个叶节点包含了构成场景中物体的实际几何信息。因此,可以概括为:OSG程序使用组节点来组织和排列场景中的几何体。
可以看出OGRE是出于可维护性和可扩展性才选择这种场景树管理方式的。配合OGRE强大的代码资源分离功能,及可扩展的多场景管理器支持能力,这种简明的场景树管理设计取得了重大成功。
3.6 渲染管理
在OGRE的设计中,采用了特别的方法处理场景中不同部分的
(也可以说是材质)(OpenGL)(Classes)(Namespaces)
第2页/共3页
寻找更多 ""君,已阅读到文档的结尾了呢~~
3d图像引擎比较图像引擎
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
3d图像引擎比较
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Ogre与OSG的简单比较
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 orge引擎 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信