學習方法及技巧
學習方法
(1)由簡入繁:自己寫Shader,從最簡單寫起,簡單的測試通過了,再一點點往裡加。(2)多調試:例如,有一個float變數x。假如x範圍是[0,1],則在frag片段函數裡輸出 float4(x,0,0,1)的顏色,以紅色的深淺來觀察x的值;如果x範圍是[0,1000],則可在frag片段函數裡輸出 float4(x/1000,0,0,1)的顏色。方法就這麼簡單,具體根據需要去調整。(3)結合查看UnityCG.cginc等檔案,以及unity的內建Shader,即Build-in Shader。Build-in Shader(4)看看書:建議看本教程的同時,多看看書。推薦英文的The CG Tutorial,也就是中文版的Cg教程_可程式化即時圖形權威指南相關教材連結
學習小技巧
(1)查看UnityCG.cginc等檔案
使用Vertex and Fragment的CG時,會#include "UnityCG.cginc",用到裡面的很多函數,如TRANSFORM_TEX,UNITY_TRANSFER_DEPTH等函數的定義。那麼怎麼查看這些定義呢?
windows路徑:Unity\Editor\Data\CGIncludes
mac路徑:右鍵點擊unity表徵圖->show contents->Data->CGIncludes
該檔案夾下有Unity關於Shader的庫,如UnityCG.cginc,UnityCG.glslinc,Lighting.cginc等。開啟
UnityCG.cginc(寫字板MONODev等均可),後即可查看相關函數的定義。
(2)電子書的學習技巧
中文電子書,學起來快,好理解,但大多數是影印版。
英文電子書,可以很好的用關鍵詞搜尋知識點。
(3)使用#prama
only_renderers d3d9 , 限定編譯平台。(3)(4)配合使用效果更好
(4)開啟編譯後的Shader,查看對應的彙編代碼或者OpenGL ES代碼。
方法:左鍵單機shader檔案,然後在Inspector面板裡點擊Open Compiled Shader.