我提交的问题实际上是一堆问题,因此我将根据要求将其分为各自的问题。

只是有关Direct3D的一个一般性问题,如果我要完全使用hlsl 5.0着色器在d3d11中编写应用程序,这些应用程序是否仍仅与d3d10或d3d9支持的系统兼容,而图形效果和d3d11的效率却较低?如果是这样,效率会降低多少?如果没有,除了使用d3d9,d3d10和d3d11之外,我是否真的需要制作2个或3个完全相同的程序的不同版本?

最佳答案

它在一定程度上向后兼容。但是,请记住以下几点:

  • DX11只能安装在Vista +上,这样可以消除出于宗教原因仍坐在XP上的用户(我个人认为这很愚蠢,但这只是您必须要意识到的事实)
  • DX11的杀手级功能(硬件镶嵌)仅在兼容DX11的硬件上可用。相信我-由于它为您提供了很多可能性,因此您很难避免使用它。使用几何着色器可以对此进行某种程度的补偿,但是...请参阅下一点
  • 几何着色器仅在DX10.0级硬件(或更高版本)上可用。所以DX9级硬件又不合时宜了...
  • 计算着色器在DX10.0 +类的硬件上有一些可用(尽管非常有限),但在较早的硬件上完全不可用。

  • 综上所述,如果目标平台是DX10.0 +类硬件,则使用DX11可能会有所作为(因为除了硬件镶嵌之外,差异是可以容忍的,并且/或者有一些缺少功能的解决方法)。如果您想支持DX9 HW,建议您坚持使用DX9 SDK,因为这将允许您在XP上运行您的应用程序。

    关于c++ - d3d 11向后兼容d3d10和d3d9吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10193774/

    10-11 22:39
    查看更多