Advertisement
Guest User

Standard

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