View difference between Paste ID: ypHbp7ie and x5WZPJyZ
SHOW: | | - or go back to the newest paste.
1
Shader "Custom/MapReveal" {
2
3
	Properties{
4
		_MainTex("Explored Texture", 2D) = "white" {}
5
		_PaintMap("RevealMap", 2D) = "white" {} // texture to paint on
6
	}
7
		SubShader{
8
		Tags{ "RenderType" = "Opaque" "LightMode" = "ForwardBase" }
9
10
		Pass{
11
		Lighting Off
12
		
13
		CGPROGRAM
14
15
#pragma vertex vert
16
#pragma fragment frag
17
18
19
#include "UnityCG.cginc"
20
#include "AutoLight.cginc"
21
22
	struct v2f {
23
		float4 pos : SV_POSITION;
24
		float2 uv0 : TEXCOORD0;
25
		float2 uv1 : TEXCOORD1;
26
27
	};
28
29
	struct appdata {
30
		float4 vertex : POSITION;
31
		float2 texcoord : TEXCOORD0;
32
		float2 texcoord1 : TEXCOORD1;
33
34
	};
35
36
	sampler2D _PaintMap;
37
	sampler2D _MainTex;
38
	float4 _MainTex_ST;
39
	v2f vert(appdata v) {
40
		v2f o;
41
		o.pos = UnityObjectToClipPos(v.vertex);
42
		o.uv0 = TRANSFORM_TEX(v.texcoord, _MainTex);
43
		o.uv1 = v.texcoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw;// lightmap uvs
44
		return o;
45
	}
46
47
	half4 frag(v2f o) : COLOR{
48
		half4 main_color = tex2D(_MainTex, o.uv0); // main texture
49
		half4 paint = (tex2D(_PaintMap, o.uv1)); // painted on texture
50
		float4 endresult = (1-paint.r) * main_color; // reveal main texture where painted black
51
		return endresult;
52
	}
53
		ENDCG
54
	}
55
	}