CG語言一些關鍵詞和常用函數(shù)解釋
1、Cg頂點程序必須在結(jié)構(gòu)中傳遞頂點數(shù)據(jù)。幾種常用的頂點結(jié)構(gòu)定義在文件UnityCG.cginc中。在大部分情況下僅僅使用它們就夠了。結(jié)構(gòu)如下:
1、appdata_base: 包含頂點位置,法線和一個紋理坐標。
2、appdata_tan:包含頂點位置,切線,法線和一個紋理坐標。
3、appdata_full:包含位置、法線、切線、頂點色和兩個紋理坐標。
4、appdata_img:包含位置和一個紋理坐標
2、如果你想訪問個別的頂點數(shù)據(jù),你必須自己聲明頂點結(jié)構(gòu)。結(jié)構(gòu)中的成員必須是屬于以下列表中的:
1、float4 vertex:頂點位置
2、float3 normal:頂點法線
3、float4 texcoord:第一UV坐標
4、float4 texcoord1:第二UV坐標
5、float4 tangent:切線向量(用在法線貼圖中)
6、float4 color:每個頂點(per-vertex)顏色
3、內(nèi)置矩陣
1、UNITY_MATRIX_MVP:當前模型視投影矩陣。(注:模型矩陣為 本地->世界)
2、UNITY_MATRIX_MV:當前模型視圖矩陣
3、UNITY_MATRIX_V:當前視圖矩陣
4、UNITY_MATRIX_P:當前投影矩陣
5、UNITY_MATRIX_VP:當前視圖投影矩陣
6、UNITY_MATRIX_T_MV:轉(zhuǎn)置模型視圖矩陣
7、UNITY_MATRIX_IT_MV:逆轉(zhuǎn)置模型視矩陣
8、UNITY_MATRIX_TEXTURE0 to UNITY_MATRIX_TEXTURE3:紋理變換矩陣
4、內(nèi)置向量
1、UNITY_LIGHTMODEL_AMBIENT:當前環(huán)境色
圖形渲染的流程

1、Transform:要渲染的物體在空間中的位置變換,從局部坐標-世界坐標-觀察坐標系-視口坐標系
? ? ? TexGen:表示紋理坐標生成,當需要對游戲?qū)ο筮M行貼圖時,需要確定貼圖部分的紋理位置
? ? ? Lighting:表示光照處理
2、Vertex Shader:表示頂點著色,主要是處理圖形中的所有頂點位置
3、Culling:表示剔除,將游戲物體的部分不渲染
? ? ? Depth Test:表示深度測試,判斷游戲?qū)ο笾g的深度和遮擋
4、Texturing:表示紋理處理,貼圖
5、Fog:表示霧效果,霧參數(shù)
6、Fragment Shader:表示片段著色,對游戲?qū)ο蟮念伾M行處理
7、Alpha Test:表示透明測試
8、Blending:表示混合
Unity3d 著色器語法(Shader)
? ?格式: ?
? ? ?Shader "name"?
? ? ? ? {
? ? ? ? ? ? ? [Properties]
? ? ? ? ? ? ? Subshaders
? ? ? ? ? ? ? [Fallback]
? ? ? ? ?}
? 1、著色器文件中的 Properties 塊定義了這些參數(shù):
1、name ("display name", Range (min, max)) = number:定義浮點數(shù)范圍屬性。
2、name ("display name", Color) = (number,number,number,number):定義顏色屬性。
3、name ("display name", 2D) = "name" { options }:定義2D紋理屬性。
4、name ("display name", Rect) = "name" { options }:定義長方形(非2次方)紋理屬性。
5、name ("display name", Cube) = "name" { options }:定義立方貼圖紋理屬性。
6、name ("display name", Float) = number:定義浮點數(shù)屬性。
7、name ("display name", Vector) = (number,number,number,number):定義一個四元素的容器(Vector4)屬性。
? ?