准备一张渐变纹理图,类似:
编写代码:
Shader "Custom/BasicDiffuse"
{
Properties
{
_EmissiveColor("Emissive Color",color) = (1,1,1,1)
_AmbientColor("Ambient Color",color) = (1,1,1,1)
_MySliderValue("This is a Slider",Range(-5,5)) = -1
_RampTex("Ramp Texture",2D) = ""
}
SubShader
{
Tags{"RenderType" = "Opaque"}
LOD 200
CGPROGRAM
#pragma surface surf BasicDiffuse
float4 _EmissiveColor;
float4 _AmbientColor;
float _MySliderValue;
sampler2D _RampTex;
struct Input
{
float2 uv_MainTex;
};
void surf(Input IN,inout SurfaceOutput o)
{
float4 c;
c = pow((_EmissiveColor + _AmbientColor), _MySliderValue);
o.Albedo = c.rgb;
o.Alpha = c.a;
}
inline float4 LightingBasicDiffuse(SurfaceOutput s, fixed3 lightDir, fixed atten)
{
float difLight = max(0, dot(s.Normal, lightDir));
//float hLambert = difLight * 0.5 + 0.5;
float3 ramp = tex2D(_RampTex, float2(difLight, difLight)).rgb;
float4 col;
col.rgb = s.Albedo * _LightColor0.rgb * (ramp);
col.a = s.Alpha;
return col;
}
ENDCG
}
FallBack "Diffuse"
}
为将Shader代码添加到材质球并绑定渐变纹理
将此材质球添加到物体上