Performance: Custom shader fundamentals
MEDIUM IMPACT
This affects the rendering speed and frame rate by controlling how graphics are drawn on the screen.
Shader "Custom/GoodColor" { SubShader { 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; } half4 frag(v2f i) : SV_Target { return half4(1, 0, 0, 1); } ENDCG } } }
Shader "Custom/BadColor" { SubShader { 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 } } }
| Pattern | GPU Load | Fragment Shader Cost | Memory Usage | Verdict |
|---|---|---|---|---|
| High precision color and lighting | High | High | Moderate | [X] Bad |
| Using half precision and simple math | Low | Low | Low | [OK] Good |