2011-04-19 123 views

回答

2

從D3D9開始,HLSL編譯器是D3DX庫的一部分。要在HLSL中編寫着色器,您必須使用D3DX。

但是,有IDirect3DDevice9::CreatePixelShaderIDirect3DDevice9::CreateVertexShader,它們根據着色器字節代碼,即從HLSL編譯器生成的內容創建着色器句柄。

可以離線運行HLSL編譯器(請參閱D3DXCompileShader),將機器代碼保存到文件中並使用上述功能在運行時加載它。可悲的是,這意味着你不能依靠D3DX框架完成的工作。在這種情況下,上傳常量和優化更改完全取決於您。