Answers:
这取决于您在做什么。如果您使用的是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问题。
我认为您应该考虑以下几点:
如果您拥有经过良好测试的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还有一些其他技巧可以提高性能。例如,对绘图代码进行多线程处理。