// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Skybox/Horizontal Skybox" { Properties { _Color1 ("Top Color", Color) = (1, 1, 1, 0) _Color2 ("Horizon Color", Color) = (1, 1, 1, 0) _Color3 ("Bottom Color", Color) = (1, 1, 1, 0) _Exponent1 ("Exponent Factor for Top Half", Float) = 1.0 _Exponent2 ("Exponent Factor for Bottom Half", Float) = 1.0 _Intensity ("Intensity Amplifier", Float) = 1.0 } CGINCLUDE #include "UnityCG.cginc" struct appdata { float4 position : POSITION; float3 texcoord : TEXCOORD0; UNITY_VERTEX_INPUT_INSTANCE_ID }; struct v2f { float4 position : SV_POSITION; float3 texcoord : TEXCOORD0; UNITY_VERTEX_OUTPUT_STEREO }; half4 _Color1; half4 _Color2; half4 _Color3; half _Intensity; half _Exponent1; half _Exponent2; half4 _MainTex_ST; v2f vert (appdata v) { v2f o; UNITY_SETUP_INSTANCE_ID(v); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); o.position = UnityObjectToClipPos (v.position); o.texcoord = v.texcoord; return o; } half4 frag (v2f i) : COLOR { float p = normalize (i.texcoord).y; float p1 = 1.0f - pow (min (1.0f, 1.0f - p), _Exponent1); float p3 = 1.0f - pow (min (1.0f, 1.0f + p), _Exponent2); float p2 = 1.0f - p1 - p3; return (_Color1 * p1 + _Color2 * p2 + _Color3 * p3) * _Intensity; } ENDCG SubShader { Tags { "RenderType"="Background" "Queue"="Background" } Pass { ZWrite Off Cull Off Fog { Mode Off } CGPROGRAM #pragma fragmentoption ARB_precision_hint_fastest #pragma vertex vert #pragma fragment frag ENDCG } } }