shader基本结构:
shader"name"{
[Propertise]--------------------------(1)属性
Subshaders---------------------------(2)sub片段
[FallBack]------------------------------(3)回滚
}
Shader "Custom/Test" {
Properties { -----------属性
_MainTex ("Base (RGB)", 2d) = "white" {} ----------变量(“变量名”,关键词/不分大小写) = 默认值
}
SubShader { ------------片段,一个shader可以有多个片段,当前面的subshader无法执行 将执行下一个subshader 后面 -- -----------------的sushader会比前面的subshade更精简
Tags { "RenderType"="Opaque" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert
sampler2D _MainTex;
struct Input {
float2 uv_MainTex;
};
void surf (Input IN, inout SurfaceOutput o) {
half4 c = tex2D (_MainTex, IN.uv_MainTex);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
ENDCG
}
FallBack "Diffuse" -----------------------当前面的Subshader都不能执行 将返回diffuse的shader
}