我有第三方应用程序跟踪可访问参数的DirectX 9 API调用(但没有应用程序源代码),并且使用带有World_View_Projection矩阵的顶点着色器作为单个参数。出于某种目的,我需要将顶点从模型转换为世界空间,所以有一些方法可以使用组合的World_View_Projection矩阵(没有单独的矩阵)并且可以借助我可以从原始API调用中提取的其他数据吗?谢谢你的回答。
答案 0 :(得分:1)
您需要将世界矩阵以及世界视图投影矩阵传递给着色器。您当然可以传递世界矩阵和视图投影矩阵,然后在着色器中进行乘法运算。或者您可以将世界,视图和投影作为单个矩阵传递,并在着色器中创建所需的组合。
使用现代Direct3D硬件功能级别10.0或更高版本的卡,它们往往具有大量的计算能力,因此它不像旧的Shader Model 2.0卡上那样在将矩阵预先计算之前进行预先计算传递到着色器。
为什么使用Direct3D 9代替Direct3D 11?除非您的目标是Windows XP,否则Direct3D 11是更好的选择。请参阅 DirectX工具包 tutorials。