1. 程式人生 > >第十二回 關於Shader和材質

第十二回 關於Shader和材質

上回關於Shader組合的文章發到論壇上後,很多人都說可以用靜態分支的方式來解決Shader組合爆炸的問題,比較讓我慚愧的是,那時候我連靜態分支是什麼都不知道.Google了一下才知道,所謂的靜態分支原來是指shader在正式執行前,可以把該怎麼分支預先計算出來,然後在所有的後續計算中都統一按照這種分支來走計算流程.好像要SM3.0以上才能支援.我覺得這的確是一種不錯的技術,不過對我來說可能用起來會比較吃力一點,因為我不知道靜態分支在各種各樣的顯示卡上的表現究竟怎麼樣,雖然SM 3.0現在也蠻普遍了,不過也許未必所有的顯示卡都能支援的很好吧,而且在程式碼優化上可能有些講究,這些都需要對各種顯示卡有比較深入廣泛的研究,而這方面都是我比較欠缺的.而且如果完全用靜態分支來乾的話,隨著功能不斷的新增,最終可能會寫一個越來越長的shader,大到甚至超過指令限制,到時候又不得不拆成多個小shader,我的感覺是擴充性不好,對效能的控制也不方便.何況現在已經有一套shader組合的系統了,用著也蠻順手,就先不考慮這個東西了.也許將來升級到更新的DX版本時可以考慮.