Performance: Unlit vs lit shaders
This affects the rendering speed and frame rate by changing how much work the GPU does to draw objects on screen.
Shader "Custom/UnlitShader" { SubShader { Tags { "RenderType"="Opaque" } Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag // No lighting calculations ENDCG } } }
Shader "Custom/LitShader" { SubShader { Tags { "RenderType"="Opaque" } Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag // Lighting calculations here ENDCG } } }
| Pattern | GPU Load | Fragment Shader Complexity | Frame Rate Impact | Verdict |
|---|---|---|---|---|
| Lit Shader | High | Complex lighting math | Lower frame rate on complex scenes | [X] Bad |
| Unlit Shader | Low | Simple color output | Higher frame rate, smoother rendering | [OK] Good |
Unlit and Lit shaders in Unity?Shader "Custom/Example" {
SubShader {
Tags { "RenderType"="Opaque" }
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct appdata { float4 vertex : POSITION; };
struct v2f { float4 pos : SV_POSITION; };
v2f vert(appdata v) { v2f o; o.pos = UnityObjectToClipPos(v.vertex); return o; }
fixed4 frag(v2f i) : SV_Target { return fixed4(1,0,0,1); }
ENDCG
}
}
}Pass the test and this pattern moves unknown