ShaderLab 着色器不僅僅包括“硬件着色器”。這些着色器做很多事情。它們描述在材質檢視器 (Material Inspector) 中顯示的屬性,容納用於不同圖形硬件的多種着色器實現,配置固定函數硬件狀態等等。實際可編程着色器 - 如頂點和片元程序 - 只是整個 ShaderLab“着色器”概念的一部分。請查看着色器教程中的基本簡介。在這裏,我們將調用低級硬件着色器着色器程序。
如果您想編寫與光照交互的着色器,請查看表面着色器文檔。本頁剩餘部分將假設着色器不與 Unity 光照交互(例如:特殊效果、Image Effects|圖像效果等。)
着色器程序的編寫採用 Cg/HLSL 語言,是通過在着色器文本中 Pass 命令內的某處嵌入“代碼片段”的來實現的。它們通常看起來像這樣:
Pass {
*// ...常用的通道狀態設置...*
**CGPROGRAM**
*// 該代碼片段的編譯指令,例如:*
**#pragma vertex** vert
**#pragma fragment** frag
*// Cg 代碼自身*
**ENDCG**
*// ...通道設置的剩餘部分...*
}