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