在将c++应用程序从Directx9移植到Directx10之前的重要阅读
Important reads before porting c++ application from Directx9 to Directx10
我即将开始对我们的软件进行大规模的重构。目前,渲染组件仍然基于DX9。新版本将使用DX10。
在我开始之前,有关于将DX9移植到DX10的任何重要且编写良好的指南或概述吗?我找到了一些次要的信息,但找不到任何写得好的帖子、指南或概述。我想防止自己犯"经典"错误,我可以通过在移植前阅读来避免这些错误。
我的目的是阅读"通用"移植指南以及更具体的示例。该软件既渲染网格,也渲染体积,所以这些主题的信息非常值得赞赏。其他关键字包括(但不完全是):缓冲区、内存管理和多gpu。
由于似乎没有人有一个明确的列表,我将开始收集我的发现在一个单独的答案。据我所知,网上关于这个主题的信息非常有限。
- Direct3D 10个常见问题
- Direct3D 9到Direct3D 10注意事项(Direct3D 10) Direct3D 9和Direct3D 10之间关键差异的基本轮廓。下面的大纲提供了一些见解,以帮助具有Direct3D 9经验的开发人员探索和与Direct3D 10相关。
- 固定功能EMU示例显示如何在Direct3D 10环境中模拟Direct3D 9固定功能管道的某些方面。
- Windows to Reality:在你的游戏中充分利用Direct3D 10图形虽然它的标题中有"游戏",但演示的内容却没有。在演讲中,他们研究了常见的性能和架构问题,以及我们在将高端D3D9引擎迁移到D3D10时遇到的内容开发和其他问题。此外,它们还有一个特定的"移植提示"部分。 在这次演讲中,他们讨论了各种性能考虑因素,并涵盖了所有供应商通用的Direct3D 10和10.1性能编程的各个方面。此外,它们还涵盖了多种GPU配置的性能考虑。在这个演示中,他们讨论了D3D9和D3D10之间的各种差异。虽然内容更多是基于游戏,但这些信息可以用于任何类型的DX编程。
缓冲区差异
- 顶点缓冲区差异DX9/DX10
最大的区别是没有支持部分功能的卡。卡支持Direct3D 10或不支持。如果你想让你的应用程序在旧硬件或XP上运行,那么它需要是双模DirectX 9或10。如果它只需要在Vista或更高版本的支持显卡上运行,那么它只能是10。
AFAICT, MSDN没有给出差异指南。他们将Direct3D 10视为与其他API并行的新API。在这里看到的。
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 如何从Windows应用程序输出到标准?
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- 在将c++应用程序从Directx9移植到Directx10之前的重要阅读