summaryrefslogtreecommitdiffstats
path: root/Impostor.shader
diff options
context:
space:
mode:
Diffstat (limited to 'Impostor.shader')
-rw-r--r--Impostor.shader60
1 files changed, 60 insertions, 0 deletions
diff --git a/Impostor.shader b/Impostor.shader
new file mode 100644
index 0000000..1dff6c9
--- /dev/null
+++ b/Impostor.shader
@@ -0,0 +1,60 @@
+Shader "yum_food/Gimmicks/Impostors"
+{
+ Properties
+ {
+ _ImpostorAtlas("Impostor Atlas", 2D) = "white" {}
+ _GridResolution("Grid Resolution", Int) = 5
+ _Cutoff("Alpha Cutoff", Range(0, 1)) = 0.5
+ _Color("Tint", Color) = (1, 1, 1, 1)
+
+ [Toggle] _DebugMode("Debug Mode", Float) = 0
+
+ [Enum(UnityEngine.Rendering.CullMode)] _Cull("Cull", Float) = 0
+ [Enum(Off, 0, On, 1)] _ZWrite("ZWrite", Int) = 1
+ }
+
+ SubShader
+ {
+ Tags { "RenderType" = "TransparentCutout" "Queue" = "AlphaTest" }
+
+ Pass
+ {
+ Name "FORWARD"
+ Tags { "LightMode" = "ForwardBase" }
+
+ Cull [_Cull]
+ ZWrite [_ZWrite]
+
+ CGPROGRAM
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile_fog
+ #pragma multi_compile_instancing
+
+ #include "impostor.cginc"
+ ENDCG
+ }
+
+ Pass
+ {
+ Name "SHADOW"
+ Tags { "LightMode" = "ShadowCaster" }
+
+ Cull [_Cull]
+
+ CGPROGRAM
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile_shadowcaster
+ #pragma multi_compile_instancing
+
+ #define IMPOSTOR_SHADOW_PASS
+ #include "impostor.cginc"
+ ENDCG
+ }
+ }
+
+ FallBack "Transparent/Cutout/Diffuse"
+}