自我们第一次发布以来,Ogre3D是OpenMW使用的渲染引擎。现在,OpenMW团队正在宣布远离这个引擎。
在我们的alpha版本中,Ogre3D已证明非常有用,可实现快速开发。感谢Ogre3D,你今天已经可以在OpenMW中玩一个或多或少完整的Morrowind游戏,这本身就是一个令人难以置信的壮举。
然而,为了让OpenMW进入抛光状态并添加最后几个缺失的功能,我们面临着艰巨的任务,要么需要创建一个Ogre3D的分支,其行为与我们需要的方式相同,或者切换到更合适的引擎。经过多次讨论,我们已经确定了第二种选择。
没有一个特定的显示阻止,而是许多不同问题的高潮。
我们1.0版本的一个拦截器是与香草Morrowind相比较差的帧率。这归结为场景管理和渲染Ogre3D 1.x系列中的API瓶颈,这些都是Ogre3D团队所熟知的,并且已经在2.x系列中得到了解决。最初的计划是将OpenMW移植到使用Ogre3D 2.x,这是一项重大任务,因为编程接口的变化非常重要。但是,我们对此端口有一些基本的担忧:
除了最新的Ogre3D版本的这些问题之外,我们还有一些长期存在的问题:
鉴于这些问题,我们一直在寻找替代方案,并找到了OpenSceneGraph,它看起来非常适合Morrowind和OpenMW所需的功能,同时还提供高性能。我们仔细评估了所有需要的功能,并验证了它们可以在OSG源代码中找到,或者可以通过插件轻松添加。该端口的详细路线图将在不久的将来发布,并定期更新,以便您可以跟进进度。
一个值得注意的区别是OpenSceneGraph仅支持OpenGL。Ogre3D内置支持OpenGL和DirectX可能被认为是其优点之一。在理想的世界中,这将为用户提供更多选择,同时不需要OpenMW团队的额外努力。不幸的是,这不是真的; 编写着色器不能以渲染系统无关的方式工作。除此之外,我们发现一些OpenMW漏洞仅在使用Direct3D后端时才会显现。因此我们对这一变化感到高兴,因为我们没有人力来维持对两种不同渲染系统的支持,而且我们的大多数开发人员都在使用Linux,因此无论如何都无法测试Direct3D渲染器。
好消息是Ogre3D是一个渲染引擎,我们只是这样使用它。OpenMW代码使用不同的子系统构建,这种变化在很大程度上只会影响“mwrender”子系统。渲染代码约占我们代码库的8%。
我们将继续像往常一样开发OGRE分支,具有新功能和错误修正,只要OSG端口仍处于开发阶段。我们知道OpenMW尽管有alpha状态,但已经有很多玩家,所以这对我们来说非常重要。
我们将继续支持所有这些平台。
在功能方面,OpenSceneGraph与Ogre3D一样强大(在某些方面甚至更强大),因此我们惊讶地发现用它制作的游戏并不多。OSG创始人罗伯特奥斯菲尔德有他自己的理论,为什么会出现这种情况:
关于Games和OSG与Ogre的一般说明,我怀疑它部分
取决于每个项目的根源以及围绕它成长的文化。
OSG从vis-sim世界发展而来,并且多年来发展成为
通用且高度便携的场景图库,其
社区来自专业模拟器,大规模
可视化,VR和科学市场。虽然Ogre从一开始
就是游戏的图形API,但它也可以用于
比游戏更多的东西,但文化游戏看起来仍然是它的
心脏地带。
我们知道这种性能差异,并且知道它可归因于Ogre3D 1.x中实现不佳的OpenGL渲染器。Valve已经证明,正确的OpenGL渲染器可以像Direct3D一样快,甚至更快。
我们欠Ogre3D很多,并希望通过我们贡献的众多补丁来弥补它。
我们要感谢所有Ogre3D贡献者的出色工作,Ogre3D论坛上的每个人都得到了我们从那里获得的所有支持和鼓励,特别感谢Kojack帮助我们调试DDS纹理问题。
英文网址:https://openmw.org/2015/announcing-switch-openscenegraph/