Advertisement
Guest User

Untitled

a guest
May 24th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Shader "DoubleSided"
  2. {
  3.     Properties
  4.     {
  5.         _Color("Color", Color) = (1,1,1,1)
  6.         _MainTex("Albedo and Alpha", 2D) = "white" {}
  7.  
  8.         _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
  9.  
  10.         _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
  11.         _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0
  12.         [Enum(Metallic Alpha,0,Albedo Alpha,1)] _SmoothnessTextureChannel("Smoothness texture channel", Float) = 0
  13.  
  14.         [Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
  15.         _MetallicGlossMap("Metallic", 2D) = "white" {}
  16.  
  17.         [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0
  18.         [ToggleOff] _GlossyReflections("Glossy Reflections", Float) = 1.0
  19.  
  20.         _BumpScale("Scale", Float) = 1.0
  21.         _BumpMap("Normal Map", 2D) = "bump" {}
  22.  
  23.         _Parallax("Height Scale", Range(0.005, 0.08)) = 0.02
  24.         _ParallaxMap("Height Map", 2D) = "black" {}
  25.  
  26.         _OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
  27.         _OcclusionMap("Occlusion", 2D) = "white" {}
  28.  
  29.         _EmissionColor("Color", Color) = (0,0,0)
  30.         _EmissionMap("Emission", 2D) = "white" {}
  31.  
  32.         _DetailMask("Detail Mask", 2D) = "white" {}
  33.  
  34.         _DetailAlbedoMap("Detail Albedo x2", 2D) = "grey" {}
  35.         _DetailNormalMapScale("Scale", Float) = 1.0
  36.         _DetailNormalMap("Normal Map", 2D) = "bump" {}
  37.  
  38.         [Enum(UV0,0,UV1,1)] _UVSec("UV Set for secondary textures", Float) = 0
  39.  
  40.  
  41.             // Blending state
  42.             [HideInInspector] _Mode("__mode", Float) = 0.0
  43.             [HideInInspector] _SrcBlend("__src", Float) = 1.0
  44.             [HideInInspector] _DstBlend("__dst", Float) = 0.0
  45.             [HideInInspector] _ZWrite("__zw", Float) = 1.0
  46.     }
  47.  
  48.         CGINCLUDE
  49. #define UNITY_SETUP_BRDF_INPUT MetallicSetup
  50.             ENDCG
  51.  
  52.             SubShader
  53.         {
  54.             Tags {"Queue" = "Transparent" "RenderType" = "Transparent" "PerformanceChecks" = "False" }
  55.             LOD 300
  56.  
  57.  
  58.             // ------------------------------------------------------------------
  59.             //  Base forward pass (directional light, emission, lightmaps, ...)
  60.             Pass
  61.             {
  62.                 Name "FORWARD"
  63.                 Tags { "LightMode" = "ForwardBase" "Queue" = "Transparent" "RenderType" = "Transparent"}
  64.  
  65.                 Blend[_SrcBlend][_DstBlend]
  66.                 ZWrite[_ZWrite]
  67.  
  68.                 Cull Off
  69.  
  70.                 CGPROGRAM
  71.                 #pragma target 3.0
  72.  
  73.             // -------------------------------------
  74.  
  75.             #pragma shader_feature _NORMALMAP
  76.             #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  77.             #pragma shader_feature _EMISSION
  78.             #pragma shader_feature _METALLICGLOSSMAP
  79.             #pragma shader_feature ___ _DETAIL_MULX2
  80.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  81.             #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  82.             #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
  83.             #pragma shader_feature _PARALLAXMAP
  84.  
  85.             #pragma multi_compile_fwdbase
  86.             #pragma multi_compile_fog
  87.             #pragma multi_compile_instancing
  88.  
  89.             #pragma vertex vertBase
  90.             #pragma fragment fragBase
  91.             #include "UnityStandardCoreForward.cginc"
  92.  
  93.             ENDCG
  94.         }
  95.             // ------------------------------------------------------------------
  96.             //  Additive forward pass (one light per pass)
  97.             Pass
  98.             {
  99.                 Name "FORWARD_DELTA"
  100.                 Tags { "LightMode" = "ForwardAdd" "Queue" = "Transparent" "RenderType" = "Transparent"}
  101.                 Blend[_SrcBlend] One
  102.                 Fog { Color(0,0,0,0) } // in additive pass fog should be black
  103.                 ZWrite Off
  104.                 ZTest LEqual
  105.                 Cull Off
  106.  
  107.                 CGPROGRAM
  108.                 #pragma target 3.0
  109.  
  110.             // -------------------------------------
  111.  
  112.  
  113.             #pragma shader_feature _NORMALMAP
  114.             #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  115.             #pragma shader_feature _METALLICGLOSSMAP
  116.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  117.             #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  118.             #pragma shader_feature ___ _DETAIL_MULX2
  119.             #pragma shader_feature _PARALLAXMAP
  120.                            
  121.             #pragma multi_compile_fwdadd_fullshadows
  122.             #pragma multi_compile_fog
  123.  
  124.             #pragma vertex vertAdd
  125.             #pragma fragment fragAdd
  126.             #include "UnityStandardCoreForward.cginc"
  127.  
  128.             ENDCG
  129.         }
  130.             // ------------------------------------------------------------------
  131.             //  Shadow rendering pass
  132.             Pass {
  133.                 Name "ShadowCaster"
  134.                 Tags { "LightMode" = "ShadowCaster""Queue" = "Transparent" "RenderType" = "Transparent" }
  135.  
  136.                 ZWrite On ZTest LEqual
  137.  
  138.                 CGPROGRAM
  139.                 #pragma target 3.0
  140.  
  141.             // -------------------------------------
  142.  
  143.  
  144.             //#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  145.             #pragma shader_feature _METALLICGLOSSMAP
  146.             #pragma shader_feature _PARALLAXMAP
  147.             #pragma multi_compile_shadowcaster
  148.             #pragma multi_compile_instancing
  149.  
  150.             #pragma vertex vertShadowCaster
  151.             #pragma fragment fragShadowCaster
  152.  
  153.             #include "UnityStandardShadow.cginc"
  154.  
  155.             ENDCG
  156.         }
  157.             // ------------------------------------------------------------------
  158.             //  Deferred pass
  159.             Pass
  160.             {
  161.                 Name "DEFERRED"
  162.                 Tags { "LightMode" = "Deferred" "Queue" = "Transparent" "RenderType" = "Transparent"}
  163.  
  164.                 CGPROGRAM
  165.                 #pragma target 3.0
  166.                 #pragma exclude_renderers nomrt
  167.  
  168.  
  169.             // -------------------------------------
  170.  
  171.             #pragma shader_feature _NORMALMAP
  172.             //#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  173.             #pragma shader_feature _EMISSION
  174.             #pragma shader_feature _METALLICGLOSSMAP
  175.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  176.             #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  177.             #pragma shader_feature ___ _DETAIL_MULX2
  178.             #pragma shader_feature _PARALLAXMAP
  179.  
  180.             #pragma multi_compile_prepassfinal
  181.             #pragma multi_compile_instancing
  182.  
  183.             #pragma vertex vertDeferred
  184.             #pragma fragment fragDeferred
  185.  
  186.             #include "UnityStandardCore.cginc"
  187.  
  188.             ENDCG
  189.         }
  190.  
  191.             // ------------------------------------------------------------------
  192.             // Extracts information for lightmapping, GI (emission, albedo, ...)
  193.             // This pass it not used during regular rendering.
  194.             Pass
  195.             {
  196.                 Name "META"
  197.                 Tags { "LightMode" = "Meta""Queue" = "Transparent" "RenderType" = "Transparent" }
  198.  
  199.                 Cull Off
  200.  
  201.                 CGPROGRAM
  202.                 #pragma vertex vert_meta
  203.                 #pragma fragment frag_meta
  204.  
  205.                 #pragma shader_feature _EMISSION
  206.                 #pragma shader_feature _METALLICGLOSSMAP
  207.                 #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  208.                 #pragma shader_feature ___ _DETAIL_MULX2
  209.                 #pragma shader_feature EDITOR_VISUALIZATION
  210.  
  211.                 #include "UnityStandardMeta.cginc"
  212.                 ENDCG
  213.             }
  214.         }
  215.  
  216.             SubShader
  217.         {
  218.             Tags { "Queue" = "Transparent" "RenderType" = "Transparent" "PerformanceChecks" = "False" }
  219.             LOD 150
  220.  
  221.             // ------------------------------------------------------------------
  222.             //  Base forward pass (directional light, emission, lightmaps, ...)
  223.             Pass
  224.             {
  225.                 Name "FORWARD"
  226.                 Tags { "LightMode" = "ForwardBase" "Queue" = "Transparent" "RenderType" = "Transparent"}
  227.  
  228.                 Blend[_SrcBlend][_DstBlend]
  229.                 ZWrite[_ZWrite]
  230.                 Cull Off
  231.  
  232.                 CGPROGRAM
  233.                 #pragma target 2.0
  234.  
  235.                 #pragma shader_feature _NORMALMAP
  236.                 //#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  237.                 #pragma shader_feature _EMISSION
  238.                 #pragma shader_feature _METALLICGLOSSMAP
  239.                 #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  240.                 #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  241.                 #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
  242.             // SM2.0: NOT SUPPORTED shader_feature ___ _DETAIL_MULX2
  243.             // SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
  244.  
  245.             #pragma skip_variants SHADOWS_SOFT DIRLIGHTMAP_COMBINED
  246.  
  247.             #pragma multi_compile_fwdbase
  248.             #pragma multi_compile_fog
  249.  
  250.             #pragma vertex vertBase
  251.             #pragma fragment fragBase
  252.             #include "UnityStandardCoreForward.cginc"
  253.  
  254.             ENDCG
  255.         }
  256.             // ------------------------------------------------------------------
  257.             //  Additive forward pass (one light per pass)
  258.             Pass
  259.             {
  260.                 Name "FORWARD_DELTA"
  261.                 Tags { "LightMode" = "ForwardAdd" "Queue" = "Transparent" "RenderType" = "Transparent"}
  262.                 Blend[_SrcBlend] One
  263.                 Fog { Color(0,0,0,0) } // in additive pass fog should be black
  264.                 ZWrite Off
  265.                 ZTest LEqual
  266.                 Cull Off
  267.  
  268.                 CGPROGRAM
  269.                 #pragma target 2.0
  270.  
  271.                 #pragma shader_feature _NORMALMAP
  272.                 //#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  273.                 #pragma shader_feature _METALLICGLOSSMAP
  274.                 #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  275.                 #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  276.                 #pragma shader_feature ___ _DETAIL_MULX2
  277.             // SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
  278.             #pragma skip_variants SHADOWS_SOFT
  279.  
  280.             #pragma multi_compile_fwdadd_fullshadows
  281.             #pragma multi_compile_fog
  282.  
  283.             #pragma vertex vertAdd
  284.             #pragma fragment fragAdd
  285.             #include "UnityStandardCoreForward.cginc"
  286.  
  287.             ENDCG
  288.         }
  289.             // ------------------------------------------------------------------
  290.             //  Shadow rendering pass
  291.             Pass {
  292.                 Name "ShadowCaster"
  293.                 Tags { "LightMode" = "ShadowCaster""Queue" = "Transparent" "RenderType" = "Transparent" }
  294.  
  295.                 ZWrite On ZTest LEqual
  296.  
  297.                 CGPROGRAM
  298.                 #pragma target 2.0
  299.  
  300.                 //#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  301.                 #pragma shader_feature _METALLICGLOSSMAP
  302.                 #pragma skip_variants SHADOWS_SOFT
  303.                 #pragma multi_compile_shadowcaster
  304.  
  305.                 #pragma vertex vertShadowCaster
  306.                 #pragma fragment fragShadowCaster
  307.  
  308.                 #include "UnityStandardShadow.cginc"
  309.  
  310.                 ENDCG
  311.             }
  312.  
  313.             // ------------------------------------------------------------------
  314.             // Extracts information for lightmapping, GI (emission, albedo, ...)
  315.             // This pass it not used during regular rendering.
  316.             Pass
  317.             {
  318.                 Name "META"
  319.                 Tags { "LightMode" = "Meta" "Queue" = "Transparent" "RenderType" = "Transparent"}
  320.  
  321.                 Cull Off
  322.  
  323.                 CGPROGRAM
  324.                 #pragma vertex vert_meta
  325.                 #pragma fragment frag_meta
  326.  
  327.                 #pragma shader_feature _EMISSION
  328.                 #pragma shader_feature _METALLICGLOSSMAP
  329.                 #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  330.                 #pragma shader_feature ___ _DETAIL_MULX2
  331.                 #pragma shader_feature EDITOR_VISUALIZATION
  332.  
  333.                 #include "UnityStandardMeta.cginc"
  334.                 ENDCG
  335.             }
  336.         }
  337.  
  338.  
  339.             FallBack "VertexLit"
  340.             CustomEditor "StandardShaderGUI"
  341. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement