1
是否可以在不使用D3DX函數的情況下創建着色器?創建D3DX着色器
是否可以在不使用D3DX函數的情況下創建着色器?創建D3DX着色器
從D3D9開始,HLSL編譯器是D3DX庫的一部分。要在HLSL中編寫着色器,您必須使用D3DX。
但是,有IDirect3DDevice9::CreatePixelShader
和IDirect3DDevice9::CreateVertexShader
,它們根據着色器字節代碼,即從HLSL編譯器生成的內容創建着色器句柄。
可以離線運行HLSL編譯器(請參閱D3DXCompileShader
),將機器代碼保存到文件中並使用上述功能在運行時加載它。可悲的是,這意味着你不能依靠D3DX框架完成的工作。在這種情況下,上傳常量和優化更改完全取決於您。