Shader "custom/diffuseinvertice" {
Properties {
_diffuse ( "diffuse", Color ) = (1, 1, 1, 1)
}
SubShader {
Pass {
Tags { "LightMode" = "ForwardBase" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "lighting.cginc"
fixed4 _diffuse;
struct a2v {
float4 vertex : POSITION;
float3 normal : NORMAL;
};
struct v2f {
float4 pos : SV_POSITION;
fixed3 color : COLOR0;
};
v2f vert ( a2v v ){
v2f o;
o.pos = UnityObjectToClipPos ( v.vertex );
float3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz;
float3 wdnormal = normalize ( mul ( v.normal, (float3x3) unity_WorldToObject ) );
float3 wdlightdir = normalize ( _WorldSpaceLightPos0.xyz );
float3 diffuse = _LightColor0.rgb * _diffuse * max ( 0, dot ( wdnormal, wdlightdir ) );
o.color = ambient + diffuse ;
return o;
}
fixed4 frag ( v2f i ) : SV_Target {
return fixed4 ( i.color , 1.0 );
}
ENDCG
}
}
Fallback Off
}
i have found it is the function saturate () that make the thing strange, but why?