1. 程式人生 > >著色器shader官方文件翻譯

著色器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使用的屬性(通常是貼圖和顏色這些,屬性都是可以變化的)