補充
float4 fixed4 _time
1: float4是內建向量 (x, y, z, w); float4 a; 訪問單獨成員a.x, a.y, a.z, a.w;
2: fixed4 是內建向量(r, g, b, a); fixed4 c; color.r, color.g, color.b, color.a;
3: float3是內建向量(x, y, z);
4: fixed3 是內建向量(r, g, b);
5: float2 是內建向量(x, y);
6: _time: 自場景載入開始所經過的時間t,4個分量分別是 (t/20, t, t*2, t*3);
7: _sintime: t 是時間的正弦值,4個分量分別是 (t/8, t/4, t/2, t);
8: _costime: t 是時間的余弦值,4個分量分別是 (t/8, t/4, t/2, t);
9: unity_deltatime: dt 是時間增量,4個分量的值(dt, 1/dt, smoothdt, 1/smoothdt),平滑時間,防止時間間隔起伏太大;
正弦波例項
1.建立unity工程目錄
2.建立乙個節點plane
3.在resources資料夾下面建立shaders資料夾
4.開啟shaders資料夾,建立乙個用於頂點片元著色的shader,create---->shader---->unlit shader,重新命名為sinshader
5.開啟sinshader
第二步:
shader "custom/sinshader
" }
subshader
//標記 lod 100
pass
;struct
v2f ;
sampler2d _maintex;
float4 _maintex_st;
//對模型的頂點座標的修改寫在這裡面
fixed4 frag (v2f i) : sv_target
//對模型的畫素著色的修改寫在這裡面
endcg
//cg**的結束
} }
}
6.開啟shaders資料夾,建立乙個材質球叫sinshader,選擇shader的屬性custom---->sinshader
7.把貼圖拖進材質球sinshader
8.給平面plane關聯材質球sinshader,平面有了紋理,執行起來像水波
uv動畫(捕魚達人3中使用的技術)
1.把魚模型(jinqiangyu.fbx,jinqiangyu.png)拖進hierachy,設定魚materials/jinqiangyu的材質球的shader為為mobile diffuse
2.把caustics.png資源拖進resources
3.開啟shaders資料夾,建立乙個unlit shader,重新命名為uvshader
4.開啟uvshader
第二步:增加乙個紋理的定義
properties
_subtex ("texture", 2d) = "white" {}
}第三步:
shader "custom/uvshader
" _subtex (
"texture
", 2d) = "
white
" {}//
放波光的紋理貼圖
} subshader
lod
100pass
;struct
v2f ;
sampler2d _subtex;
//要用就要再宣告一下,波光
sampler2d _maintex;//
要用就要再宣告一下,魚
float4 _maintex_st;
//對頂點座標的修改寫在這裡面,因為沒有修改頂點,所以沒有新增什麼
fixed4 frag (v2f i) : sv_target
//對畫素紋理的修改寫在這裡面
endcg}}
}
4.選擇魚材質球的shader為custom---->uvshader
5.把波光的貼圖拖進魚材質球的另外乙個貼圖屬性
6.執行就可以看見魚被動態波光籠罩
注意:
遇到函式使用有問題的,開啟#include 「unitycg.cginc」 unity-->edit-->data-->cgincludes;檢視
(二)Unity頂點 片元著色器基礎
6.結語 本文主要講解以下unity shader的一些基礎內容,以無光照shader為例進行說明,後續進行詳細分析與說明。此shader可以直接複製到unity中使用 unity2018 2018親測可用 建議邊使用邊看如下分析。shader如下所示 shader ll unlit unlitsh...
Shaders 頂點和片元程式
此教程將會教你書寫unity shader裡的頂點和片元程式的基礎。請檢視 開始學習 以獲取更多關於shaderlab的介紹。如果你想編寫與燈光相互作用的著色器,那麼請去閱讀 表面著色器 file d users hoxily documents unitydocs documentation.20...
shader中的片元函式與頂點函式
如圖,對於某個物體的渲染是通過操作點,或者渲染點組成的面兩種方式。所以shader中有頂點函式和片元函式。頂點函式通過對於渲染點,點之間部分通過插值運算得到,片元函式則是直接渲染點。upgrade note replaced mul unity matrix mvp,with unityobject...