加快Directx Shader編譯性能

最近遇到這個問題,有時候複雜的shader 編譯會花幾百毫秒,所以研究了一下,有以下幾點可以優化:


1. Shader Cache, 這個是引擎肯定要支持的,不可能每次渲染都編譯,把結果的handler存起來。


2. Async Compile,異步編譯也非常好理解,主線程跑起來就是,只是需要渲染的物體可能會延遲幾幀纔會被渲染出來。


3. Offline Compile,把編譯結果的機器碼存下來,需要的時候從硬盤上讀取。不過這種方式會讓遊戲的數據變大,不過不是時間換空間就是空間換時間,總是要有舍取。


現在看來,都多核了,當然異步編譯應該是比Offline編譯要好,時間不會長,空間也節約了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章