Shader "SkyboxPlus/Hemisphere" { Properties { [HDR] _TopColor("North Pole", Color) = (0.35, 0.37, 0.42) [HDR] _MiddleColor("Equator", Color) = (0.15, 0.15, 0.15) [HDR] _BottomColor("South Pole", Color) = (0.12, 0.13, 0.15) [Gamma] _Exposure("Exposure", Range(0, 8)) = 1 } CGINCLUDE #include "UnityCG.cginc" half3 _TopColor; half3 _MiddleColor; half3 _BottomColor; half _Exposure; struct appdata_t { float4 vertex : POSITION; }; struct v2f { float4 vertex : SV_POSITION; float3 texcoord : TEXCOORD0; }; v2f vert(appdata_t v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.texcoord = v.vertex.xyz; return o; } half4 frag(v2f i) : SV_Target { half t1 = max(+i.texcoord.y, 0); half t2 = max(-i.texcoord.y, 0); half3 c = lerp(lerp(_MiddleColor, _TopColor, t1), _BottomColor, t2); return half4(c * _Exposure, 1); } ENDCG SubShader { Tags { "Queue"="Background" "RenderType"="Background" "PreviewType"="Skybox" } Cull Off ZWrite Off Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag ENDCG } } Fallback Off }