是否可以在不使用D3DX函数的情况下创建着色器?

最佳答案

从D3D9开始,HLSL编译器是D3DX库的一部分。要在HLSL中编写着色器,必须使用D3DX。

但是,存在 IDirect3DDevice9::CreatePixelShader IDirect3DDevice9::CreateVertexShader ,它们从着色器字节代码(即由HLSL编译器生成的代码)创建着色器句柄。

您可以离线运行HLSL编译器(请参阅 D3DXCompileShader ),将机器代码保存到文件中,然后使用上述功能在运行时加载它。可悲的是,这意味着您不能依靠D3DX框架完成的工作。在这种情况下,完全取决于您上传常量和优化更改。

关于c++ - 创建D3DX着色器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5713993/

10-12 20:58