Net.Like.Xue.Tokyo/Assets/Arts/Airport - terminal for airp.../Shaders/TwoSided.shader

101 lines
3.3 KiB
Plaintext

Shader "Mixall/TwoSided"
{
Properties
{
_Albedo ("Albedo", Color) = (1,1,1,1)
_Alpha ("Alpha", Range(0,1)) = 0.5
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_BumpMap("Bumpmap", 2D) = "bump" {}
_Smoothness("Smoothness", Range(0,1)) = 0.0
}
SubShader
{
Tags { "RenderType" = "TransparentCutOut" "Queue" = "AlphaTest" "IgnoreProjector" = "True" }
Cull off
LOD 200
CGPROGRAM
// Physically based Standard lighting model, and enable shadows on all light types
#pragma surface surf Standard alphatest:_Alpha
#pragma surface surf Lambert
sampler2D _MainTex;
sampler2D _BumpMap;
struct Input
{
float2 uv_MainTex;
float2 uv_BumpMap;
};
float4 _Albedo;
half _Smoothness;
// Add instancing support for this shader. You need to check 'Enable Instancing' on materials that use the shader.
// See https://docs.unity3d.com/Manual/GPUInstancing.html for more information about instancing.
// #pragma instancing_options assumeuniformscaling
UNITY_INSTANCING_BUFFER_START(Props)
// put more per-instance properties here
UNITY_INSTANCING_BUFFER_END(Props)
void surf(Input IN, inout SurfaceOutputStandard o)
{
// Albedo comes from a texture tinted by color
fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Albedo;
o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
o.Albedo = c.rgb;
// Metallic and smoothness come from slider variables
o.Smoothness = _Smoothness;
o.Alpha = c.a;
}
ENDCG
Pass
{
Tags { "LightMode" = "ShadowCaster" }
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_shadowcaster
#pragma multi_compile_instancing // allow instanced shadow pass for most of the shaders
#include "UnityCG.cginc"
// Use shader model 3.0 target, to get nicer looking lighting
#pragma target 3.0
struct v2f {
V2F_SHADOW_CASTER;
float2 uv : TEXCOORD1;
UNITY_VERTEX_OUTPUT_STEREO
};
uniform float4 _MainTex_ST;
v2f vert(appdata_base v)
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
TRANSFER_SHADOW_CASTER_NORMALOFFSET(o)
o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
return o;
}
uniform sampler2D _MainTex;
uniform fixed _Alpha;
uniform fixed4 _Albedo;
float4 frag(v2f i) : SV_Target
{
fixed4 texcol = tex2D(_MainTex, i.uv);
clip(texcol.a* _Albedo.a - _Alpha);
SHADOW_CASTER_FRAGMENT(i)
}
ENDCG
}
}
//FallBack "Transparent/Cutout/VertexLit"
}