著色器shader官方文件翻譯
近期打算好好學習shader,期望能做出大海波浪等絢麗的效果。
官方文件的翻譯,算是我的附帶產出,增強對shader的瞭解,也是為後人參考學習提供捷徑。
---------------------------------------------------------------------------------------
在unity中所有的渲染都是通過shaders來完成的 。什麼是shaders ,就是小段指令碼,它讓你弄清楚圖形硬體是如何設定來進行渲染的。
下面有四篇:
一、材質和shader的關係
二、內建的標準shader
三、寫你自己需要的shader
四、其他內建shader
---------------------------------------------------------
一、Materials and shaders
在unity中,材質和著色器有很密切的關係。
著色器包含的程式碼定義了有哪些屬性和資源可以使用。材質則可以讓你來設定這些屬性和分配這些資源。
你可以為每個材質指定用哪個shader,操作很簡單,在監事面板中,shader下拉框中指定就可以了。
內建shaders
有一組內建shader隨著unity 編輯器已經安裝好了。大約80多種shaders可以使用。主要有以下幾種分類:
1、Normal:為那些不透明物體使用
2、Transparent:部分透明的物體,貼圖的Alpha通道定義了透明度。
3、TransparentCutOut: 有完全透明和完全不透明區域的物體,比如籬笆。
4、Self-illuminate: 有光源發射部分的物體,比如燈籠
5、Reflective: 不透明物體反射環境高光
除了以上主要遊戲物體的著色器外,還有一些特殊目的的分類:
FX: 燈光和水的效果
GUI: 圖形使用者介面顯示
Nature: 樹和地形
Particles:粒子系統效果
Render Fx: 天空盒著色器
TOON: 卡通風格渲染
他們之中有一些特殊的版本,專門為移動裝置使用。
shaders的技術細節
unity有一個很大的著色器系統,它讓你能夠改變虛擬世界圖形的外貿,它的工作原理如下:
著色器基本上定義了一個公式用來計算底紋在虛擬世界中如何顯示。
每個shader都是一系列屬性(通常有貼圖)shaders通過材質來實現其功能,材質直接付給單獨的遊戲物件。每個材質,要指定一個shader,然後定義那些shader使用的屬性(通常是貼圖和顏色這些,屬性都是可以變化的)