1
是否可以在不使用D3DX函数的情况下创建着色器?创建D3DX着色器
是否可以在不使用D3DX函数的情况下创建着色器?创建D3DX着色器
从D3D9开始,HLSL编译器是D3DX库的一部分。要在HLSL中编写着色器,您必须使用D3DX。
但是,有IDirect3DDevice9::CreatePixelShader
和IDirect3DDevice9::CreateVertexShader
,它们根据着色器字节代码,即从HLSL编译器生成的内容创建着色器句柄。
可以离线运行HLSL编译器(请参阅D3DXCompileShader
),将机器代码保存到文件中并使用上述功能在运行时加载它。可悲的是,这意味着你不能依靠D3DX框架完成的工作。在这种情况下,上传常量和优化更改完全取决于您。