Performance: Custom shader fundamentals
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 |
fixed4 frag() : SV_Target {
return fixed4(1, 0, 0, 1);
}Shader "Custom/Simple" {
Properties {
_Color ("Color", Color) = (1,1,1,1)
}
SubShader {
Pass {
CGPROGRAM
fixed4 frag() : SV_Target {
return _Color;
}
ENDCG
}
}
}Pass the test and this pattern moves unknown