Shader "Custom/MyDiffuse"
{
SubShader
{
Pass
{
Tags {"LightMode" = "ForwardBase"}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
#include "Lighting.cginc"
struct v2f
{
float4 pos : POSITION;
float4 color : COLOR;
};
v2f vert(appdata_base v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
float3 N = normalize(v.normal);
float3 L = normalize(_WorldSpaceLightPos0);
//把世界光的法向量转到物体的法向量
//L = mul(_World2Object, float4(L, 0)).xyz;
//把物体的法向量转向到世界的法向量
N = mul(_Object2World, float4(N, 0)).xyz;
//处理物体缩放的时候的法向量
N = normalize(N);
float ndot1 = saturate(dot(N, L));
o.color = _LightColor0 * ndot1;
return o;
}
fixed4 frag(v2f IN) : COLOR
{
return IN.color + UNITY_LIGHTMODEL_AMBIENT;
}
ENDCG
}
}
}