summaryrefslogtreecommitdiff
path: root/VRCSDK3Worlds/Assets/Bakery/ftUnlitTerrain.shader
blob: 4213211ab5aa9b449a57c4628e046a96eaf1abbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Shader "Hidden/ftUnlitTerrain"
{
    Properties
    {
        _MainTex ("Albedo", 2D) = "white" { }
        _TerrainHolesTexture("Holes Map (RGB)", 2D) = "white" {}
    }
	SubShader
	{
        Pass
        {
            Name "META"
            Tags {"LightMode"="Meta"}
            Cull Off
            CGPROGRAM

            #include"UnityStandardMeta.cginc"

            float4 frag_meta2 (v2f_meta i): SV_Target
            {
                UnityMetaInput o;
                UNITY_INITIALIZE_OUTPUT(UnityMetaInput, o);
                o.Albedo = tex2D(_MainTex, i.uv);
                return UnityMetaFragment(o);
            }

            #pragma vertex vert_meta
            #pragma fragment frag_meta2
            ENDCG
        }

        Tags {"Queue" = "Overlay+1" "RenderType"="TransparentCutout"}
        ZTest Always
		Pass
		{
			CGPROGRAM
			#pragma vertex vs
			#pragma fragment ps
			#include "UnityCG.cginc"

            #pragma multi_compile __ _ALPHATEST_ON

            sampler2D _MainTex;

#ifdef _ALPHATEST_ON
            sampler2D _TerrainHolesTexture;

            void ClipHoles(float2 uv)
            {
                float hole = tex2D(_TerrainHolesTexture, uv).r;
                clip(hole == 0.0f ? -1 : 1);
            }
#endif

			struct pi
			{
				float4 Position : SV_POSITION;
				float2 TexCoords : TEXCOORD0;
			};

			void vs(in appdata_full IN, out pi OUT)
			{
                OUT.Position = UnityObjectToClipPos(IN.vertex);
				OUT.TexCoords = IN.texcoord.xy;
			}

			float4 ps( in pi IN ) : COLOR
			{
#ifdef _ALPHATEST_ON
                ClipHoles(IN.TexCoords);
#endif
				float4 tex = tex2D(_MainTex, IN.TexCoords);
                tex.a = 1;
                return tex;
			}
			ENDCG
		}
	}
    Dependency "BaseMapShader"    = "Hidden/ftUnlitTerrain"
    Dependency "BaseMapGenShader" = "Hidden/TerrainEngine/Splatmap/Diffuse-BaseGen"
}