I am new to writing shaders in unity and I wanted to just visualize the normal in a standard surface shader but why am I always getting red color?
Which Unity version do you use ?
Can you insert all shader code, maybe something else is broken.
It seems like a bug.
For test, I checked this simple normal visualiser, and it works OK with built-in Sphere gameobject:
Shader "Show Normals"
{
Subshader
{
Tags { "RenderType" = "Opaque" }
CGPROGRAM
#pragma surface SurfaceShader Standard vertex:VertexShaderFunction
struct Input
{
float3 color;
};
void VertexShaderFunction (inout appdata_full v, out Input o)
{
o.color = UnityObjectToWorldDir(v.normal);
}
void SurfaceShader (Input IN, inout SurfaceOutputStandard o)
{
o.Albedo = IN.color;
}
ENDCG
}
}


