why cant direction light be accessed in vertex Shader,can anybody figure out why
//
Shader “Tut/Vertex/Direction_1_VertexLit” {
Properties {
_Color (“Base Color”, Color) =(1,1,1,1)
}
SubShader {
pass{
Tags{ “LightMode”=“Vertex”}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include “UnityCG.cginc”
#include “Lighting.cginc”
uniform float4 _Color;
struct vertOut{
float4 pos:SV_POSITION;
float4 color:COLOR;
};
vertOut vert(appdata_base v)
{
float3 n=float3(mul(float4(v.normal,0.0),_World2Object));
n=normalize(n);
float3 lightDir=normalize(float3(_WorldSpaceLightPos0));
float diff=max(0.0,dot(n,lightDir));
float4 diffColor=_LightColor0*_Color*diff;
vertOut o;
o.pos=mul(UNITY_MATRIX_MVP,v.vertex);
o.color=float4(diffColor);
return o;
}
float4 frag(vertOut i):COLOR
{
return i.color;
}
ENDCG
}//end pass
}
}
//
Shader “Tut/Vertex/Direction_2_ForwardBase” {
Properties {
_Color (“Base Color”, Color) =(1,1,1,1)
}
SubShader {
pass{
Tags{ “LightMode”=“ForwardBase”}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include “UnityCG.cginc”
#include “Lighting.cginc”
uniform float4 _Color;
struct vertOut{
float4 pos:SV_POSITION;
float4 color:COLOR;
};
vertOut vert(appdata_base v)
{
float3 n=float3(mul(float4(v.normal,0.0),_World2Object));
n=normalize(n);
float3 lightDir=normalize(float3(_WorldSpaceLightPos0));
float diff=max(0.0,dot(n,lightDir));
float4 diffColor=_LightColor0*_Color*diff;
vertOut o;
o.pos=mul(UNITY_MATRIX_MVP,v.vertex);
o.color=float4(diffColor);
return o;
}
float4 frag(vertOut i):COLOR
{
return i.color;
}
ENDCG
}//end pass
}
}
//
Shader “Tut/Vertex/Direction_2_ForwardAdd” {
Properties {
_Color (“Base Color”, Color) =(1,1,1,1)
}
SubShader {
pass{
Tags{ “LightMode”=“ForwardBase”}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include “UnityCG.cginc”
#include “Lighting.cginc”
uniform float4 _Color;
struct vertOut{
float4 pos:SV_POSITION;
float4 color:COLOR;
};
vertOut vert(appdata_base v)
{
float3 n=float3(mul(float4(v.normal,0.0),_World2Object));
n=normalize(n);
float3 lightDir=normalize(float3(_WorldSpaceLightPos0));
float diff=max(0.0,dot(n,lightDir));
float4 diffColor=_LightColor0*_Color*diff;
vertOut o;
o.pos=mul(UNITY_MATRIX_MVP,v.vertex);
o.color=float4(diffColor);
return o;
}
float4 frag(vertOut i):COLOR
{
return i.color;
}
ENDCG
}//end pass
pass{
Tags{ “LightMode”=“ForwardAdd”}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include “UnityCG.cginc”
#include “Lighting.cginc”
uniform float4 _Color;
struct vertOut{
float4 pos:SV_POSITION;
float4 color:COLOR;
};
vertOut vert(appdata_base v)
{
float3 n=float3(mul(float4(v.normal,0.0),_World2Object));
n=normalize(n);
float3 lightDir=normalize(float3(_WorldSpaceLightPos0));
float diff=max(0.0,dot(n,lightDir));
float4 diffColor=_LightColor0*_Color*diff;
vertOut o;
o.pos=mul(UNITY_MATRIX_MVP,v.vertex);
o.color=float4(diffColor);
return o;
}
float4 frag(vertOut i):COLOR
{
return i.color;
}
ENDCG
}//end pass
}
}