将DX10 / 11用于2D游戏有什么优势吗?


10

我对DX10 / 11类硬件引入的功能集并不完全熟悉。我对熟悉的可编程图形管线中添加的新阶段(例如几何体着色器,计算着色器和新的细分阶段)非常熟悉。我看不出这些对2D游戏有什么影响。

是否有任何令人信服的理由将2D游戏切换到DX10 / 11(或OpenGL等价物),或者考虑到市场的很大份额仍然依靠较旧的技术(例如, 2012年2月Steam调查显示约有17%的用户仍在使用Windows XP)?

Answers:


5

这取决于您在做什么。如果您使用的是Direct3D,则切换的唯一原因是获得对其他功能无法访问的硬件功能的访问。

对于2D游戏,理论上某些功能可能会让您感兴趣。例如,OpenCL或DirectCompute。《文明V》从DirectCompute中获得了一些用于解压缩纹理的功能。由于它只需要加载压缩数据,因此可以大大减少加载时间。而且2D游戏通常会有很多图像。如果加载时间是一个问题,这可能会有所帮助。

OpneCL应该在所有GeForce 8xxx及更高版本的硬件上都可用。在ATI上,可以在HD 4xxx和更好的硬件上使用。

我想说的是,DX11中可能使用的最大功能是能够在着色器中更任意地读取和写入图像。这对于某些特殊效果可能很有用。我现在想不起...这应该告诉您这有多重要。

总的来说,我想说的是,如果您使用的是D3D,您可能不会获得太多收益。而且,如果您还不了解新功能是什么,并想在游戏中使用它们,那么您几乎肯定不会获得太多收益。其中大多数将变得更加复杂。

OpenGL与众不同的主要原因之一。OpenGL 2.1(或多或少相当于D3D9)作为API 糟透了。OpenGL 3.3(以及在3.3硬件上运行的一些最新扩展)对API进行了很大的改进。显式属性位置,着色器程序的分离,着色语言包420中的所有内容,等等。

其中一些在针对2.1的扩展形式中表现良好。其中一些...不。我仍然不确定在attribute声明中使用显式属性位置是否可以(在当前in语法之前)。阴影语言包420特别指出,它不适用于1.30之前的GLSL版本(又名:OpenGL 3.0)。

这并不是说GL 2.1无法使用。它肯定是功能性和可维护性的,只是不愉快。尽管您会发现某些实现该驱动程序的驱动程序不可用。不再支持ATI的DX9硬件,因此这些驱动程序确实有问题。英特尔从不关心OpenGL,因此在其硬件上使用着色器很幸运。

但就个人而言,如果您希望的用户群允许的话,如果您使用的是OpenGL,我将推送至GL 3.3。如果没有,您只需要处理2.1问题。


5

我认为您应该考虑以下几点:

  • 如果您拥有经过良好测试的D3D9引擎,那么如果您不使用新功能,则可能不值得移植到D3D11。从头开始时,D3D11更具诱惑力。

  • 您的游戏的发布日期将是多久?XP将在短短两年内就不再受支持,如果您查看历史数据,XP安装基础正在迅速下降(在Steam上约为每月1%)。

  • 考虑一下在17%的XP用户中,有多少比例的PC满足D3D9下游戏的最低规格要求。越高,对他们的支持就越有价值。

  • DX10对于新开发几乎没有意义。DX11在相同的操作系统和硬件(通过功能级别)上运行。

  • DX11支持将软件渲染器(WARP)作为后备设备,可以足够快地运行具有低GPU要求的游戏。

  • 与使用任何D3D9功能级别的D3D11相比,本机DX9支持的功能更多。幸运的是,支持DX10的PC中的DX9硬件很少见。

  • DX10 / 11硬件的功能变化少得多,因此,如果使DX9硬件使用WARP,则无需担心非二次幂纹理或尴尬的texel-pixel映射之类的尴尬局限。

  • 如果您的游戏需要使用大量硬件,则DX11还有一些其他技巧可以提高性能。例如,对绘图代码进行多线程处理。


我对功能级别有些困惑。如果我使用DX11开发但目标是DX9功能级别,那么我知道它将在DX9硬件上运行。但是它仍然需要DX11运行时,即它将在Windows XP上运行吗?
David Gouveia 2012年

DX11根本无法在XP上运行。功能级别的作用是使DX11 API与较旧的硬件一起使用。请查看msdn.microsoft.com/en-us/library/ff476876%28v=vs.85%29.aspx,以详细了解每个功能级别可以做什么。
2012年

1

如果您计划使用大量的粒子或精灵,则仅使用几何着色器是使用D3D10 / 11的原因。

DirectCompute也可以用于一些不错的速度优势。

就个人而言,仅拥有D3D10 / 11更清洁,更好的API便足以避免任何仅适用于Windows的现代项目再次接触D3D9或OpenGL。但是,实际上,由于需要针对使用GL | ES的移动设备以及仍然相当大的WinXP人群,有必要避免D3D10 / 11并坚持使用D3D9或OpenGL。

请注意,即使在WinXP上,使用OpenGL路线也可以获取几何体着色器,OpenCL和其他较新的硬件功能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.