- Home /
Vertex shader that casts shadows from environment on a model
Hello,
I'm struggling to make a Vertex shader which would cast environment shadow on the player's model. How to achieve it?
I can not use a diffuse Vertex shader due to loosing cartoonish look (model starts to look dirty).
Currently I am using this shader (Top Image):
Shader "Vertex Color/Standard"
{
Properties
{
_Color ("Main Color", Color) = (1, 1, 1, 1)
}
SubShader
{
Tags {"RenderType"="Opaque"}
Cull Off
ZWrite On
Fog { Mode Off }
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
fixed4 _Color;
struct appdata
{
float4 vertex : POSITION;
float4 color : COLOR;
};
struct v2f
{
float4 pos : SV_POSITION;
fixed4 color : COLOR;
};
v2f vert (appdata v)
{
v2f o;
o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
o.color = v.color;
return o;
}
half4 frag(v2f i) : COLOR
{
return i.color * _Color;
}
ENDCG
}
}
FallBack "Diffuse"
}
Vertex Diffuse Shader (Second Image):
Shader "Vertex Color/Diffuse" {
Properties {
_Color ("Main Color", Color) = (1,1,1,1)
}
SubShader {
Tags { "RenderType"="Opaque" }
LOD 150
Cull Off
CGPROGRAM
#pragma surface surf Lambert vertex:vert
fixed4 _Color;
struct Input {
float3 vertColor;
};
void vert (inout appdata_full v, out Input o) {
UNITY_INITIALIZE_OUTPUT(Input, o);
o.vertColor = v.color;
}
void surf (Input IN, inout SurfaceOutput o) {
fixed4 c = _Color;
o.Albedo = c.rgb * IN.vertColor;
o.Alpha = c.a;
}
ENDCG
}
Fallback "Vertex Color/Standard"
}
Comment
Your answer
Follow this Question
Related Questions
How do I modify this shader to receive shadows ??? 0 Answers
Mali-G76 ShaderGraph PBR Shader,when shadervariant missing cause crash 0 Answers
Adding Shadows to a Shader 1 Answer
Is there a way to have a transparent vertex shader recieve and cast Shadows? 0 Answers
3D Outline [ShaderGraph URP] 2 Answers