一、Unity3D實戰(zhàn)練習-Fixed Function Shader 二
Unity3D實戰(zhàn)練習-Fixed Function Shader 二
1.第一步,還是按照老規(guī)矩,創(chuàng)建Unity 項目,然后在Assets 單擊右鍵 Create-> Shader 便能生成一個.shader文件,而我們今天需要學習是Fixed Function Shader 固定管線著色器;
2.第二步,我們知道Shader 有一個重要的關鍵字 Properties(它是讓著色器可以定義一個參數(shù)列表,可以由開發(fā)者在材質檢視面板編輯參數(shù))
2.0 語法:Properties { Property [Property ...] }
2.1 可以定義的參數(shù)類型
2.1.0 name ("display name", Range (min, max)) = number 定義浮點數(shù)屬性,在檢視器中可通過一個標注最大最小值的滑條來修改。
2.1.1 name ("display name", Color) = (number,number,number,number) 定義顏色屬性。
2.1.2 name ("display name",2D) = "name" { options } 定義2D紋理屬性
2.1.3 name ("display name", Rect) = "name" { options } 定義長方形(非2次方)紋理屬性
2.1.4 name ("display name", Cube) = "name" { options } 定義立方貼圖紋理屬性
2.1.5 name ("display name", Float) = number 定義浮點數(shù)屬性
2.1.6 name ("display name", Vector) = (number,number,number,number) 定義四個向量組成的屬性
3. 第三步,SubShader 子著色器定義了一個渲染通道的列表,并可選是否為所有通道初始化所需要的通用狀態(tài);
3.0 SubShader 學習文檔:http://www.ceeger.com/Components/SL-SubShader.html
3.1 語法:Subshader { [Tags] [CommonState] Passdef [Passdef ...] }
3.2 簡單的例子(定義一個單一的通道來關閉任何光照,并使用一個名叫_MainTex 的紋理來顯示網格):
1 2 3 4 5 | SubShader { Pass { Lighting Off SetTexture [_MainTex] {} } } |
4.第四步,編寫一個可以進行兩張貼圖疊加的例子
4.0 Fixed Function Shader(Basic).shader 代碼如下:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | //兩張貼圖的疊加 Shader "Custom/Fixed Function Shader(Basic)" { Properties{ _MainTex("Base (RGB)", 2D) = "white" {} _MainTex2("Tex2 (RGB)", 2D) = "white" {} _Color("Main color",Color) = (1,1,1,1) } SubShader{ Pass { Material { Diffuse[_Color] } Lighting on SetTexture[_MainTex] { // 第一張材質 * 頂點顏色 Combine texture * primary } SetTexture[_MainTex2] { // 第二張材質 * 之前累積(這里即第一張材質) Combine texture * previous } } } } |
教程名稱:Unity3D實戰(zhàn)練習-Fixed Function Shader 二 | 語 言:中文 | 頁數(shù)/時長: 3頁 |
軟件版本: unity | 上傳時間:2018/02/27 | 價格:¥0 |
文件格式: docx | 文件大小:94kb |
您還未登錄
全部評論: 0條