Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Shader "Custom/LevelCutout" {
- Properties {
- _Color ("Main Color", Color) = (1,1,1,1)
- _MainTex ("Base (RGB) Trans (A)", 2D) = "white" {}
- _BumpMap ("Normalmap", 2D) = "bump" {}
- _Cutoff ("Alpha cutoff", Range(0,1)) = 0.5
- _CutoffLevel ("cutoff level", Float) = 0.5
- }
- SubShader {
- Tags {"Queue"="AlphaTest" "IgnoreProjector"="True" "RenderType"="TransparentCutout"}
- LOD 300
- CGPROGRAM
- #pragma surface surf Lambert vertex:vert alphatest:_Cutoff
- sampler2D _MainTex;
- sampler2D _BumpMap;
- fixed4 _Color;
- fixed _CutoffLevel;
- struct Input {
- float2 uv_MainTex;
- float2 uv_BumpMap;
- float3 localPos;
- };
- void vert (inout appdata_full v, out Input o) {
- UNITY_INITIALIZE_OUTPUT(Input,o);
- o.localPos = v.vertex.xyz;
- }
- void surf (Input IN, inout SurfaceOutput o) {
- fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
- o.Albedo = c.rgb;
- o.Alpha = (IN.localPos.y < _CutoffLevel)? 0 : c.a;
- o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
- }
- ENDCG
- }
- FallBack "Transparent/Cutout/Diffuse"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement