我即将在我们的软件中开始大规模的重构。目前,渲染组件仍然基于 DX9。新版本将使用DX10。
在我开始之前,是否有任何关于将 DX9 移植到 DX10 的重要且编写良好的指南或概述?我找到了一些次要信息,但找不到任何写得很好的帖子、指南或概述。我想防止自己犯“经典”错误,我可以通过在开始移植之前阅读来防止这些错误。
我的目的是阅读“通用”移植指南以及更具体的示例。该软件同时渲染网格和体积,因此非常感谢有关这些主题的信息。其他关键字 - 但不限于 - :缓冲区、内存管理和多 GPU。
我即将在我们的软件中开始大规模的重构。目前,渲染组件仍然基于 DX9。新版本将使用DX10。
在我开始之前,是否有任何关于将 DX9 移植到 DX10 的重要且编写良好的指南或概述?我找到了一些次要信息,但找不到任何写得很好的帖子、指南或概述。我想防止自己犯“经典”错误,我可以通过在开始移植之前阅读来防止这些错误。
我的目的是阅读“通用”移植指南以及更具体的示例。该软件同时渲染网格和体积,因此非常感谢有关这些主题的信息。其他关键字 - 但不限于 - :缓冲区、内存管理和多 GPU。
由于似乎没有人有明确的清单,因此我也将开始在单独的答案中收集我的发现。据我所知,网络上关于这个主题的信息非常有限。
一般的
缓冲区差异
最大的不同是没有支持部分功能的卡。显卡要么支持 Direct3D 10,要么不支持。如果您希望您的应用程序在旧硬件或 XP 上运行,那么它需要是双模式 DirectX 9 或 10。如果它只需要在 Vista 或更高版本支持的显卡上运行,那么它可以是 10。
AFAICT,MSDN 没有给出差异指南。他们将 Direct3D 10 视为与其他 API 并行的新 API。见这里。我确实在这里找到了一个有用的差异摘要。