Unity 頂點&片段著色器筆記:

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)屬性。


? ?

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一、頂點與片段著色器簡介 Vertex and FragmentShader:最強大的Shader類型,也是本系列...
    半閑書屋半閑人閱讀 9,952評論 6 10
  • <轉(zhuǎn)>我也忘了轉(zhuǎn)自哪里,抱歉,感謝原作者 什么是Shader Shader(著色器)是一段能夠針對3D對象進行操作...
    星易乾川閱讀 5,848評論 1 16
  • //頂點片段著色器 //流程: //1.首先,vertexprogram收到系統(tǒng)傳遞給它的數(shù)據(jù)模型 //2.然后把...
    Your_w閱讀 2,594評論 0 0
  • 以前總愛把自己困在一個圈子里 我不出去別人也進不來
    冧橙子閱讀 183評論 0 0

友情鏈接更多精彩內(nèi)容