是否可以在不使用 D3DX 函数的情况下创建着色器?
最佳答案
从 D3D9 开始,HLSL 编译器是 D3DX 库的一部分。要使用 HLSL 编写着色器,您必须使用 D3DX。
但是,有 IDirect3DDevice9::CreatePixelShader
和 IDirect3DDevice9::CreateVertexShader
,它从着色器字节码创建一个着色器句柄,也就是说,从 HLSL 编译器生成的内容。
您可以离线运行 HLSL 编译器(请参阅 D3DXCompileShader
),将机器代码保存到文件中并在运行时使用上述函数加载它。遗憾的是,这意味着您不能依赖 D3DX 框架以其他方式完成的工作。在这种情况下,上传常量和优化更改完全取决于您。
关于c++ - 创建 D3DX 着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5713993/