创建D3DX着色器

时间:2011-04-19 09:04:08

标签: c++ directx shader

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

1 个答案:

答案 0 :(得分:2)

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

然而,有IDirect3DDevice9::CreatePixelShaderIDirect3DDevice9::CreateVertexShader,它们从着色器字节代码创建着色器句柄,即由HLSL编译器生成的。

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