当前位置:  开发笔记 > 运维 > 正文

对于非游戏,OpenGL仍然优于Direct3D?

如何解决《对于非游戏,OpenGL仍然优于Direct3D?》经验,为你挑选了3个好方法。

标准模型是OpenGL用于专业应用程序(CAD),Direct3D用于游戏.

随着openGL 3.0的崩溃,openGl仍然是技术3D应用程序(cad/GIS)的自然选择吗?
是否有Direct3D的场景图库?

(当然Direct3D只是windows.)



1> Larry Gritz..:

D3D让您支付微软的"战略税".也就是说,D3D服务于两个主人.一个是为您提供功能和性能.另一种方法是确保一般地锁定其他MS产品和Windows平台.这对您有一些影响:

    除了Windows(包括Xbox)之外,D3D应用程序不会运行任何东西.也许你现在认为这不重要.但是,如果您希望在Mac,Linux,PS3,未来游戏机等上运行,您可能会很高兴您选择了与平台无关的选择.

    MS可以做出一些武断的决定.下一版D3D是否只能在需要新硬件的操作系统上运行,价格昂贵,而且很多人不想升级到?他们会做出你不同意的其他未来决定吗?

    从历史上看,OpenGL已经引领D3D快速曝光新的硬件功能.这是因为标准中有一种机制可供供应商添加自己的扩展,并且这些扩展最终可以折叠到主要规范中.D3D是MS想要的,有来自供应商的输入,但MS获得否决权.你可能很容易陷入像Vista这样的情况,MS决定不向新DX公开新的硬件功能,只在Vista上提供新的DX.这对游戏开发者来说非常头疼.

现在,这就是为什么"专业应用程序"(CAD,动画,科学可视化,GIS等)会支持OGL的原因 - 像这样的应用程序想要稳定多年,需要持续的维护和改进,并希望在许多平台上运行.这与游戏相反,游戏通常仅在一个平台上发布,但通常不会"维护"(可能不会有2.0,因此三年后另一个操作系统的更新,不需要支持旧的硬件等).游戏需要最高性能,只需要在短时间窗口和固定数量的平台上工作.如果他们需要以Windows为目标并且D3D更快一点,这可能是正确的选择,因为负面的D3D后果不会像CAD应用程序那样伤害他们,比如说.


实际上,有一篇文章[http://is.gd/nbHm]说:"Playstation 3中使用的3D计算机图形API软件是基于OpenGL ES的LibGCM和PSGL"我相信新的Android平台也使用OpenGL ES ,如果有什么可靠的D3D便携性较差?
实际上,OpenGL不是人们倾向于相信的跨平台.PS3(或任何其他当前的控制台)?没有.未来的游戏机?很可能没有.手机/手持设备?不是真的(OpenGL ES就在那里).这只留下了"类似PC的平台".
反例:3ds max是一个"专业的CAD应用程序",例如你提到的那些,从一开始就在Windows上独家运行,几乎只使用D3D.(OGL视口渲染器很长时间没有被触及).

2> NeARAZ..:

像往常一样,这取决于你的情况.

根据我的经验,目前(2008年)Windows上的OpenGL驱动程序质量低于Direct3D驱动程序质量.如果你的情况是你不能合理地要求你的客户总是拥有最新的驱动程序,或者告诉他们将显卡改为那些有更好的OpenGL驱动程序的显卡,那么OpenGL是一个非常糟糕的选择.在这种情况下,我会在Windows上使用D3D渲染器,在OS X/Linux上使用OpenGL渲染器(如果你必须支持这些平台,那就是).

有两个渲染器是不是硬; 在我的经验周围司机的错误工作需要多少比编写和配套渲染代码路径,更多的时间.

当然,有些(特定)情况下D3D不具备所需的功能,例如四缓冲同步锁相输出; 或Windows XP上的几何着色器支持.

简而言之:如果你想在Windows上使用更好的驱动程序,请使用D3D.如果您不太关心驱动程序质量,或者需要OpenGL中但不在D3D中的功能,那么请使用OpenGL.


@Jon:一个数据点:让您的产品被数百万人使用.比较使用GL与D3D时驱动程序DLL中崩溃的崩溃提交数.另一个数据点:为已知的已损坏驱动程序功能编写解决方法.比较GL与D3D所需的变通方法数量.
@Jon:D3D有一个参考设备,GL没有.参考设备允许您检查您的应用程序或IHV方面是否存在问题.这是一个巨大的好处,因为您可以在流程的早期检测到问题.

3> Samir Talwar..:

也许你应该尝试一个抽象层,比如OGRE,它允许你在DirectX和OpenGL之间切换,而不必重写任何东西?它还增加了许多功能,并且不是面向游戏的,而是非常通用的.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有