【Demo-01】--Tutorial/Basic
本文采用程式碼和註釋分離的形式記錄閱讀筆記,目的在於閱讀的時候可以記思考,在思考之後在繼續閱讀下文,和註釋進行核對,得到前後的立即對比,增加理解能力。所以採用直接先貼出程式碼,然後給出自己的理解,最後附上效果圖。
Shader "Tutorial/Basic" { Properties { _Color ("Main Color", Color) = (1,0.5,0.5,1) } SubShader { Pass { Material { Diffuse [_Color] } Lighting On } } }
Shader
Shader關鍵字用於定義著色器的檔案路徑,可以有多種格式,如:Shader "***"、“Shader "***/***";這樣的定義方式表示該著色器的目錄結構,可以根據自己的實際情況來定義。程式碼中定義的路徑在Unity材質面板中的顯示情況:
可以根據自己的實際情況定義各種目錄層級結構即可。
Properties
Properties關鍵字用於定義著色器屬性,該屬性內定義了一個(Color)顏色屬性,可以通過材質調節該顏色值,Unity中的現實情況如下:
SubShader
Shader由至少一個SubShader組成,可以根據實際情況編寫至少一個或者多個SubShader組成。SubShader用於定義渲染通道(Pass)的列表,並且可以選擇性的設定所有通道共同的任意狀態。
Pass
Pass程式碼塊將遊戲物件幾何體進行渲染一次。如果在SubShader中定義了多個Pass,那麼會根據Pass的先後順序進行幾何體的渲染;Pass不是越多越好,在必要的情況下可以編寫多個,因為每增加一個Pass都會增加渲染成本的。在Pass中可以定義一個名稱和任意數量的Tags,以及設定渲染狀態,這些設定用於將通道的意圖傳達給渲染引擎,引擎根據各語義進行實際的操作。
Material
上文中採用了材質,並且在Material中設定了Diffuse(漫射)以及Diffuse的顏色,該顏色通過定義的屬性_Color的值來作為Diffuse的顏色值;_Color的顏色值通過調節Unity材質面板中的Color來進行動態改變,可以通過調節不同的顏色值來檢視效果。
Lighting On
開啟頂點光照
通過調節光照顏色和材質顏色檢視效果:
_Color調節為White, Light調節為Green 如下圖一: 把_Color調節為Green,Light調節為White,如下圖二:
圖一 圖二
上面的圖一和圖二圖是沒有區別的,最後得到的是同一張圖,因為Diffuse和Light最後混合的結果是一樣的,所以得到的是同一張圖,看上去是沒有差異的。
_Color調節為Magenta(品紅),Light調節為Cygan(青色) 如圖三 _Color調節為Orange(橙色),Light調節為Cygan(青色) 如圖四
圖三 圖四
圖三和圖四採用相同的光照,然後調節_Color的顏色值得到上圖中的區別,它們有著明顯的差異,可以通過調劑Light和Diffuse的顏色值得到各種不同的顏色結果。
總結:
該著色器定義了一個顏色屬性_Color,定義了一個SubShader和Pass,在單通道Pass中開啟了頂點光照,以及使用使用固定函式Material為每個頂點設定Diffuse的顏色值。最後通過Light光照的顏色值和Diffuse的顏色值的混合,得到最後最後圖片。
本文屬於個人閱讀筆記,若有見解不對之處,萬望見諒及指!!!!