| float | 32位浮点数 | float2——float2(float,float) float3——float3(float,float,float) float4——float4(float,float,float,float) |
| half | 16位浮点数 | half2——half2(half,half) half3——half3(half,half,half) half4——half4(half,half,half,half) |
| int | 32位整型 | int2——int2(int,int) int3——int3(int,int,int) int4——int4(int,int,int,int) |
| fixed | 12位定点数 | 取值范围0-1之间的小数,或整数 |
| bool | 布尔值 | |
| string | 字符串 | |
| sampler2D | 纹理对象 | |
| CGPROGRAM(开头) | |
| #pragma surface surfaceFunction lightModel[optionalparams] || #pragma surface surf Lambert #编译指令 着色器名称 函数名称 光照模型 特殊设置 | surfaceFunction函数名称 |
| lightModel光照类型———Lambert漫反射 | |
| void surf(Input IN,inout SurfaceOutput o) | |
| ENDCG(结尾) | |
| float2 | uv_MainTex | 纹理贴图UV 命名方式必须为uv+贴图变量名称(_MainTex) |
| float3 | viewDir | 视图方向 |
| worldPos | 世界坐标位置 | |
| float4 | screenPos | 屏幕坐标位置 |
| color:COLOR (语义绑定) | 每个顶点的内插值颜色 | |
| half3 | Albedo | 反射率,即颜色纹理rgb |
| Normal | 法线,法向量(x,y,z) | |
| Emission | 自发光颜色rgb | |
| half | Specular | 镜面反射度 |
| Gloss | 光泽度 | |
| Alpha | 透明度 | |
| UnpackNormal | fixed4输入 返回fixed3 返回对应的法线 |
| saturate | 限制值函数 限制0-1 |
| dot | 点乘 |
| tex2D | 通过uv查找贴图纹理的当前顶点颜色值 |
| 固定颜色 | struct Input {float4 color:COLOR}; o.Albedo = float3(0.5,0.8,0.3); | |
| 可调颜色 | struct Input {float4 color:COLOR}; 与properties同名——float4_Color; o.Albedo = _Color.rgb; | |
| o.Alpha = _Color.a; | 前提:#pragma surface surf Lambert alpha | |
| 与properties同名——sampler2D _MainTex; | |
| 定义图片的uv坐标——struct Input {float2 uv_MainTex}; | |
| o.Albedo = tex2D(_MainTex,IN.uv_MainTex).rgb; | |
| struct Input {float2 uv_MainTex;}; struct Input {float2 uv_BumpMap;}; | |
| sampler2D _MainTex; sampler2D _BumpMap; | |
| o.Normal = UnpackNormal (tex2D(_BumpMap,IN.uv_BumpMap)); | |
| struct Input {float2 uv_MainTex;}; struct Input {float2 uv_BumpMap;}; struct Input {fixed4 _MainColor;}; | |
| sampler2D _MainTex; sampler2D _BumpMap; fixed4 _MainColor; | |
| o.Albedo = tex2D(_MainTex,uv_MainTex).rgb; o.Albedo += _MainColor.rgb; o.Normal = UnpackNormal (tex2D(_BumpMap,IN.uv_BumpMap)); | |
| struct Input {half3 viewDir;}; |
| half rim = 1-saturate(dot(normalize(IN.viewDir),o.Normal)); |
| o.Emission = _RimColor.rgb * pow(rim,_RimPower); ----------------------------------------------------------------------- o.Emission = _RimColor.rgb * rim * _RimPower |



