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