Shader "Skybox/Custom Skybox"
{
    Properties
    {
        _TopColor("Top Color", Color) = (0, 0, 0, 1)
        _BottomColor("Bottom Color", Color) = (0, 0.674, 0.878, 1)
    }

    CGINCLUDE

    #include "UnityCG.cginc"

    float4 _TopColor;
    float4 _BottomColor;

    struct appdata
    {
        float4 position : POSITION;
        float3 texcoord : TEXCOORD0;
    };
    
    struct v2f
    {
        float4 position : SV_POSITION;
        float3 texcoord : TEXCOORD0;
        float4 scrPos : TEXCOORD1;
    };
    
    
    v2f vert (appdata v)
    {
        v2f o;
        o.position = UnityObjectToClipPos (v.position);
        o.scrPos = o.position;
        o.texcoord = v.texcoord;
        return o;
    }
    
    half4 frag (v2f i) : COLOR
    {
        float4 col = lerp(_TopColor, _BottomColor, saturate(i.scrPos.y / i.scrPos.w * 0.5 + 0.5));
        return col;

        #define PI 3.141592653589793
        float3 p = normalize(i.texcoord);


        float th = acos(p.y);
        float th0 = th - PI/2;
        float phi = atan2(p.x, p.z) + PI;

        th = fmod(th, PI/16);
        phi = fmod(phi, PI/16);

        th = abs(th - PI/32);
        phi = abs(phi - PI/32);

        th = saturate(lerp(1, 0, th*200));
        phi = saturate(lerp(1, 0, phi*200));


        float g = th + phi;
        float f = 1 - 0.5*th0*th0;
        g = lerp(1 - g*f, f, 0.85);
        return float4(g.xxx, 1) * col;

        return float4(p.xz, 0, 1);
    }

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