|
|
- Shader "SkyboxPlus/Gradients"
- {
- Properties
- {
- [HDR] _BaseColor("Base Color", Color) = (0.1, 0.1, 0.1)
- [Gamma] _Exposure("Exposure", Range(0, 8)) = 1
-
- [Toggle] _Switch2("Gradient 2", Float) = 1
- [Toggle] _Switch3("Gradient 3", Float) = 1
- [Toggle] _Switch4("Gradient 4", Float) = 1
-
- _Direction1("Direction 1", Vector) = (0, 1, 0)
- _Direction2("Direction 2", Vector) = (0.5, 1, 0)
- _Direction3("Direction 3", Vector) = (-0.3, -1, -0.2)
- _Direction4("Direction 4", Vector) = (0, 1, 0)
-
- [HDR] _Color1("Color 1", Color) = (0.16, 0.18, 0.19)
- [HDR] _Color2("Color 2", Color) = (0.26, 0.28, 0.21)
- [HDR] _Color3("Color 3", Color) = (0.15, 0.15, 0.12)
- [HDR] _Color4("Color 4", Color) = (1.00, 0.99, 0.95)
-
- _Exponent1("Exponent 1", Range(1, 20)) = 1
- _Exponent2("Exponent 2", Range(1, 20)) = 1
- _Exponent3("Exponent 3", Range(1, 20)) = 1
- _Exponent4("Exponent 4", Range(1, 20)) = 20
-
- [HideInInspector] _NormalizedVector1("-", Vector) = (0, 1, 0)
- [HideInInspector] _NormalizedVector2("-", Vector) = (0, 1, 0)
- [HideInInspector] _NormalizedVector3("-", Vector) = (0, 1, 0)
- [HideInInspector] _NormalizedVector4("-", Vector) = (0, 1, 0)
- }
-
- CGINCLUDE
-
- #pragma shader_feature _SWITCH2_ON
- #pragma shader_feature _SWITCH3_ON
- #pragma shader_feature _SWITCH4_ON
-
- #include "UnityCG.cginc"
-
- half3 _BaseColor;
- half _Exposure;
-
- half3 _NormalizedVector1;
- half3 _NormalizedVector2;
- half3 _NormalizedVector3;
- half3 _NormalizedVector4;
-
- half3 _Color1;
- half3 _Color2;
- half3 _Color3;
- half3 _Color4;
-
- half _Exponent1;
- half _Exponent2;
- half _Exponent3;
- half _Exponent4;
-
- 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
- {
- half3 d = normalize(i.texcoord.xyz);
- half3 c = _BaseColor;
- c += _Color1 * pow((dot(d, _NormalizedVector1) + 1) * 0.5, _Exponent1);
- #ifdef _SWITCH2_ON
- c += _Color2 * pow((dot(d, _NormalizedVector2) + 1) * 0.5, _Exponent2);
- #endif
- #ifdef _SWITCH3_ON
- c += _Color3 * pow((dot(d, _NormalizedVector3) + 1) * 0.5, _Exponent3);
- #endif
- #ifdef _SWITCH4_ON
- c += _Color4 * pow((dot(d, _NormalizedVector4) + 1) * 0.5, _Exponent4);
- #endif
- 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
- CustomEditor "SkyboxPlus.GradientsMaterialEditor"
- }
|