著色器(Shader)是用來實現(xiàn)圖像渲染的,用來替代固定渲染管線的可編輯程序。
著色器應用于計算機圖形學領域,指一組供計算機圖形資源在執(zhí)行渲染任務時使用的指令,用于計算圖像的顏色或明暗。但近來,它也能用于處理一些特殊效果,或者視頻后處理。通俗地說,著色器告訴電腦如何用特有的一種方法去繪制物體。
程序員將著色器應用于圖形處理器(GPU)的可編程流水線,來實現(xiàn)三維應用程序。現(xiàn)在可編程流水線還能處理所有像素、頂點、紋理的位置、色調(diào)、飽和度、明度、對比度并實時地繪制圖像。著色器還能產(chǎn)生如模糊、高光、有體積光源、失焦、卡通渲染、色調(diào)分離、畸變、凹凸貼圖、邊緣檢測、運動檢測等效果。
引擎對著色器的管理與使用:
1、著色器數(shù)據(jù)更新與加載
著色器涉及美術表現(xiàn),會需要反復測試各種方法或參數(shù),來實驗出滿意的效果,因此系統(tǒng)要支持對著色器反復修改。這時需支持動態(tài)的數(shù)據(jù)更新機制,能夠動態(tài)判斷著色器數(shù)據(jù)變化,需要去追蹤著色器是否做了修改,并有一套流程去重新編譯著色器并能把編譯結果直觀反饋出來。
2、著色器編輯輔助功能
著色器影響到最終美術表現(xiàn),提供著色器更直觀的編輯功能,可幫助開發(fā)者更容易實現(xiàn)許多效果,并且降低開發(fā)著色器的門檻。其中一個例子就是Unity Shader Graph,這個功能提供節(jié)點化的著色器編輯器,把代碼指令替換成許多節(jié)點,數(shù)據(jù)的依賴與使用替換成節(jié)點間的鏈接,讓使用者可以不寫著色器代碼下完成著色器開發(fā)。
以上內(nèi)容參考:百度百科-著色器