原文地址:http://blog.sina.com.cn/s/blog_471132920101dep1.html
學(xué)習(xí)方法及技巧
學(xué)習(xí)方法
(1)由簡(jiǎn)入繁:自己寫(xiě)Shader,從最簡(jiǎn)單寫(xiě)起孵户,簡(jiǎn)單的測(cè)試通過(guò)了轧粟,再一點(diǎn)點(diǎn)往里加。
(2)多調(diào)試:例如特铝,有一個(gè)float變量x程储。假如x范圍是[0,1],則在frag片段函數(shù)里輸出 float4(x,0,0,1)的顏色畏铆,以紅色的深淺來(lái)觀察x的值啃洋;如果x范圍是[0,1000],則可在frag片段函數(shù)里輸出 float4(x/1000,0,0,1)的顏色欢嘿。方法就這么簡(jiǎn)單,具體根據(jù)需要去調(diào)整揩局。
(3)結(jié)合查看UnityCG.cginc等文件,以及unity的自帶Shader毫玖,即Build-in Shader。
Build-in Shader下載地址
(4)看看書(shū):建議看本教程的同時(shí)凌盯,多看看書(shū)付枫。推薦英文的The CG Tutorial,也就是中文版的Cg教程_可編程實(shí)時(shí)圖形權(quán)威指南
相關(guān)教材鏈接
學(xué)習(xí)小技巧(1)查看UnityCG.cginc等文件使用Vertex and Fragment的CG時(shí)驰怎,會(huì)#include "UnityCG.cginc",用到里面的很多函數(shù)阐滩,如TRANSFORM_TEX,UNITY_TRANSFER_DEPTH等函數(shù)的定義县忌。那么怎么查看這些定義呢掂榔?windows路徑:Unity\Editor\Data\CGIncludesmac路徑:右鍵點(diǎn)擊unity圖標(biāo)->show contents->Data->CGIncludes該文件夾下有Unity關(guān)于Shader的庫(kù),如UnityCG.cginc症杏,UnityCG.glslinc,Lighting.cginc等装获。打開(kāi)UnityCG.cginc(寫(xiě)字板MONODev等均可),后即可查看相關(guān)函數(shù)的定義厉颤。(2)電子書(shū)的學(xué)習(xí)技巧中文電子書(shū)穴豫,學(xué)起來(lái)快,好理解逼友,但大多數(shù)是影印版精肃。英文電子書(shū),
可以很好的用關(guān)鍵詞搜索知識(shí)點(diǎn)帜乞。(3)使用#prama
only_renderers
d3d9 司抱, 限定編譯平臺(tái)。(3)(4)配合使用效果更好
(4)打開(kāi)編譯后的Shader,查看對(duì)應(yīng)的匯編代碼或者OpenGL ES代碼挖函。方法:左鍵單機(jī)shader文件状植,然后在Inspector面板里點(diǎn)擊Open Compiled Shader.