Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Shader "DoubleSided"
- {
- Properties
- {
- _Color("Color", Color) = (1,1,1,1)
- _MainTex("Albedo and Alpha", 2D) = "white" {}
- _Cutoff("Alpha Cutoff", Range(0.0, 0.9)) = 0.5
- _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
- _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0
- //[Enum(Metallic Alpha,0,Albedo Alpha,1)]
- //_SmoothnessTextureChannel("Smoothness texture channel", Float) = 0
- [Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
- _MetallicGlossMap("Metallic", 2D) = "white" {}
- [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
- [ToggleOff] _GlossyReflections("Glossy Reflections", Float) = 1.0
- _BumpScale("Scale", Float) = 1.0
- _BumpMap("Normal Map", 2D) = "bump" {}
- _Parallax("Height Scale", Range(0.005, 0.08)) = 0.02
- _ParallaxMap("Height Map", 2D) = "black" {}
- _OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
- _OcclusionMap("Occlusion", 2D) = "white" {}
- _EmissionColor("Color", Color) = (0,0,0)
- _EmissionMap("Emission", 2D) = "white" {}
- _DetailMask("Detail Mask", 2D) = "white" {}
- _DetailAlbedoMap("Detail Albedo x2", 2D) = "grey" {}
- _DetailNormalMapScale("Scale", Float) = 1.0
- _DetailNormalMap("Normal Map", 2D) = "bump" {}
- [Enum(UV0,0,UV1,1)] _UVSec("UV Set for secondary textures", Float) = 0
- // Blending state
- [HideInInspector] _Mode("__mode", Float) = 1.0
- [HideInInspector] _SrcBlend("__src", Float) = 1.0
- [HideInInspector] _DstBlend("__dst", Float) = 0.0
- [HideInInspector] _ZWrite("__zw", Float) = 1.0
- }
- CGINCLUDE
- #define UNITY_SETUP_BRDF_INPUT MetallicSetup
- ENDCG
- SubShader
- {
- Tags {"Queue" = "Transparent" "RenderType" = "Transparent" "PerformanceChecks" = "False" }
- LOD 300
- // ------------------------------------------------------------------
- // Base forward pass (directional light, emission, lightmaps, ...)
- Pass
- {
- Name "FORWARD"
- Tags { "LightMode" = "ForwardBase" "Queue" = "Transparent" "RenderType" = "Transparent"}
- //Blend [_SrcAlpha] OneMinusSrcAlpha
- Blend[_SrcBlend][_DstBlend]
- ZWrite[_ZWrite]
- AlphaTest Greater 0.5
- //SetTexture[_MainTex] { combine texture }
- Cull Off
- CGPROGRAM
- #pragma target 3.0
- // -------------------------------------
- #pragma shader_feature _NORMALMAP
- #pragma shader_feature _ALPHATEST_ON
- //#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
- #pragma shader_feature _EMISSION
- #pragma shader_feature _METALLICGLOSSMAP
- #pragma shader_feature ___ _DETAIL_MULX2
- //#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
- #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
- #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
- #pragma shader_feature _PARALLAXMAP
- #pragma multi_compile_fwdbase
- #pragma multi_compile_fog
- #pragma multi_compile_instancing
- #pragma vertex vertBase
- #pragma fragment fragBase
- #include "UnityStandardCoreForward.cginc"
- ENDCG
- }
- // ------------------------------------------------------------------
- // Additive forward pass (one light per pass)
- Pass
- {
- Name "FORWARD_DELTA"
- Tags { "LightMode" = "ForwardAdd" "Queue" = "Transparent" "RenderType" = "Transparent"}
- Blend[_SrcBlend] One
- Fog { Color(0,0,0,0) } // in additive pass fog should be black
- ZWrite Off
- ZTest LEqual
- Cull Off
- CGPROGRAM
- #pragma target 3.0
- // -------------------------------------
- #pragma shader_feature _NORMALMAP
- #pragma shader_feature _ALPHATEST_ON
- //#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
- #pragma shader_feature _METALLICGLOSSMAP
- #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
- #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
- #pragma shader_feature ___ _DETAIL_MULX2
- #pragma shader_feature _PARALLAXMAP
- #pragma multi_compile_fwdadd_fullshadows
- #pragma multi_compile_fog
- #pragma vertex vertAdd
- #pragma fragment fragAdd
- #include "UnityStandardCoreForward.cginc"
- ENDCG
- }
- // ------------------------------------------------------------------
- // Shadow rendering pass
- Pass {
- Name "ShadowCaster"
- Tags { "LightMode" = "ShadowCaster""Queue" = "Transparent" "RenderType" = "Transparent" }
- ZWrite On ZTest LEqual
- CGPROGRAM
- #pragma target 3.0
- // -------------------------------------
- #pragma shader_feature _ALPHATEST_ON
- //#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
- #pragma shader_feature _METALLICGLOSSMAP
- #pragma shader_feature _PARALLAXMAP
- #pragma multi_compile_shadowcaster
- #pragma multi_compile_instancing
- #pragma vertex vertShadowCaster
- #pragma fragment fragShadowCaster
- #include "UnityStandardShadow.cginc"
- ENDCG
- }
- // ------------------------------------------------------------------
- // // Deferred pass
- Pass
- {
- Name "DEFERRED"
- Tags { "LightMode" = "Deferred" "Queue" = "Transparent" "RenderType" = "Transparent"}
- CGPROGRAM
- #pragma target 3.0
- #pragma exclude_renderers nomrt
- // -------------------------------------
- #pragma shader_feature _NORMALMAP
- #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
- #pragma shader_feature _EMISSION
- #pragma shader_feature _METALLICGLOSSMAP
- #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
- #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
- #pragma shader_feature ___ _DETAIL_MULX2
- #pragma shader_feature _PARALLAXMAP
- #pragma multi_compile_prepassfinal
- #pragma multi_compile_instancing
- #pragma vertex vertDeferred
- #pragma fragment fragDeferred
- #include "UnityStandardCore.cginc"
- ENDCG
- }
- // ------------------------------------------------------------------
- // Extracts information for lightmapping, GI (emission, albedo, ...)
- // This pass it not used during regular rendering.
- Pass
- {
- Name "META"
- Tags { "LightMode" = "Meta""Queue" = "Transparent" "RenderType" = "Transparent" }
- Cull Off
- CGPROGRAM
- #pragma vertex vert_meta
- #pragma fragment frag_meta
- #pragma shader_feature _EMISSION
- #pragma shader_feature _METALLICGLOSSMAP
- #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
- #pragma shader_feature ___ _DETAIL_MULX2
- #pragma shader_feature EDITOR_VISUALIZATION
- #include "UnityStandardMeta.cginc"
- ENDCG
- }
- }
- SubShader
- {
- Tags { "Queue" = "Transparent" "RenderType" = "Transparent" "PerformanceChecks" = "False" }
- LOD 150
- // ------------------------------------------------------------------
- // Base forward pass (directional light, emission, lightmaps, ...)
- Pass
- {
- Name "FORWARD"
- Tags { "LightMode" = "ForwardBase" "Queue" = "Transparent" "RenderType" = "Cutout"}
- Blend[_SrcBlend][_DstBlend]
- ZWrite[_ZWrite]
- Cull Off
- CGPROGRAM
- #pragma target 2.0
- #pragma shader_feature _NORMALMAP
- //#pragma shader_feature _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
- #pragma shader_feature _ALPHATEST_ON
- #pragma shader_feature _EMISSION
- #pragma shader_feature _METALLICGLOSSMAP
- #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
- #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
- #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
- // SM2.0: NOT SUPPORTED shader_feature ___ _DETAIL_MULX2
- // SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
- #pragma skip_variants SHADOWS_SOFT DIRLIGHTMAP_COMBINED
- #pragma multi_compile_fwdbase
- #pragma multi_compile_fog
- #pragma vertex vertBase
- #pragma fragment fragBase
- #include "UnityStandardCoreForward.cginc"
- ENDCG
- }
- // ------------------------------------------------------------------
- // Additive forward pass (one light per pass)
- Pass
- {
- Name "FORWARD_DELTA"
- Tags { "LightMode" = "ForwardAdd" "Queue" = "Transparent" "RenderType" = "Transparent"}
- Blend[_SrcBlend] One
- Fog { Color(0,0,0,0) } // in additive pass fog should be black
- ZWrite Off
- ZTest LEqual
- Cull Off
- CGPROGRAM
- #pragma target 2.0
- #pragma shader_feature _NORMALMAP
- #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
- #pragma shader_feature _METALLICGLOSSMAP
- #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
- #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
- #pragma shader_feature ___ _DETAIL_MULX2
- // SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
- #pragma skip_variants SHADOWS_SOFT
- #pragma multi_compile_fwdadd_fullshadows
- #pragma multi_compile_fog
- #pragma vertex vertAdd
- #pragma fragment fragAdd
- #include "UnityStandardCoreForward.cginc"
- ENDCG
- }
- // ------------------------------------------------------------------
- // Shadow rendering pass
- Pass {
- Name "ShadowCaster"
- Tags { "LightMode" = "ShadowCaster""Queue" = "Transparent" "RenderType" = "Transparent" }
- ZWrite On ZTest LEqual
- CGPROGRAM
- #pragma target 2.0
- #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
- #pragma shader_feature _METALLICGLOSSMAP
- #pragma skip_variants SHADOWS_SOFT
- #pragma multi_compile_shadowcaster
- #pragma vertex vertShadowCaster
- #pragma fragment fragShadowCaster
- #include "UnityStandardShadow.cginc"
- ENDCG
- }
- // ------------------------------------------------------------------
- // Extracts information for lightmapping, GI (emission, albedo, ...)
- // This pass it not used during regular rendering.
- Pass
- {
- Name "META"
- Tags { "LightMode" = "Meta" "Queue" = "Transparent" "RenderType" = "Transparent"}
- Cull Off
- CGPROGRAM
- #pragma vertex vert_meta
- #pragma fragment frag_meta
- #pragma shader_feature _EMISSION
- #pragma shader_feature _METALLICGLOSSMAP
- #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
- #pragma shader_feature ___ _DETAIL_MULX2
- #pragma shader_feature EDITOR_VISUALIZATION
- #include "UnityStandardMeta.cginc"
- ENDCG
- }
- }
- FallBack "VertexLit"
- CustomEditor "StandardShaderGUI"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement