| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // 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
- }
- }
- }
|