加群獲取unity引擎源代碼:580392083;
Shader "Unity Shaders Book/Chapter 5/FalseColor"{ SubShader{ Pass{ CGPROGRAM #pragma vertex vert #pragma fragment frag //集合了最常用的函數、宏、結構體 #include "UnityCG.cginc" //使用一個結構體來定義頂點著色器的輸出 struct v2f{ float4 pos:SV_POSITION;//存儲頂點在裁剪空間位置信息 fixed4 color:COLOR0; }; //頂點著色器和片元著色器之間的通信 v2f vert(appdata_full v){ v2f o;//定義一個輸出對象 o.pos = mul(UNITY_MATRIX_MVP,v.vertex); //UNITY_MATRIX_MVP觀察模型投影矩陣 //可視化法線方向 o.color = fixed4(v.normal*0.5+fixed3(0.5,0.5,0.5),1.0); //可視化切線方向 o.color = fixed4(v.tangent.xyz*0.5+fixed3(0.5,0.5,0.5),1.0); //可視化副切線方向 fixed3 binormal = cross(v.normal,v.tangent.xyz)*v.tangent.w; o.color = fixed4(binormal*0.5+fixed3(0.5,0.5,0.5),1.0); //可視化第一組紋理坐標 o.color=fixed4(v.texcoord.xy,0.0,1.0); //可視化第二組紋理坐標 o.color=fixed4(v.texcoord1.xy,0.0,1.0); //可視化第一組紋理坐標的小數部分 //frac-->fractional :部分的 該函數表示返回指定數據的小數部分 //saturate : 把輸入值限制到[0, 1]之間。 //any:測試x的任何組件是否為非零 o.color = frac(v.texcoord); if(any(saturate(v.texcoord)-v.texcoord)){ o.color=0.5; } o.color.a=1.0; return o; } fixed4 frag(v2f i):SV_Target{ return i.color; } ENDCG } }}
新聞熱點
疑難解答