Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.04 KB | None | 0 0
  1. Shader "Standard"
  2. {
  3.     Properties
  4.     {
  5.         _Color("Color", Color) = (1,1,1,1)
  6.         _MainTex("Albedo", 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 { "RenderType"="Opaque" "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" }
  64.  
  65.             Blend [_SrcBlend] [_DstBlend]
  66.             ZWrite [_ZWrite]
  67.  
  68.             CGPROGRAM
  69.             #pragma target 3.0
  70.  
  71.             // -------------------------------------
  72.  
  73.             #pragma shader_feature _NORMALMAP
  74.             #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  75.             #pragma shader_feature _EMISSION
  76.             #pragma shader_feature _METALLICGLOSSMAP
  77.             #pragma shader_feature ___ _DETAIL_MULX2
  78.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  79.             #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  80.             #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
  81.             #pragma shader_feature _PARALLAXMAP
  82.  
  83.             #pragma multi_compile_fwdbase
  84.             #pragma multi_compile_fog
  85.             #pragma multi_compile_instancing
  86.             // Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
  87.             //#pragma multi_compile _ LOD_FADE_CROSSFADE
  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" }
  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.  
  106.             CGPROGRAM
  107.             #pragma target 3.0
  108.  
  109.             // -------------------------------------
  110.  
  111.  
  112.             #pragma shader_feature _NORMALMAP
  113.             #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  114.             #pragma shader_feature _METALLICGLOSSMAP
  115.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  116.             #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  117.             #pragma shader_feature ___ _DETAIL_MULX2
  118.             #pragma shader_feature _PARALLAXMAP
  119.  
  120.             #pragma multi_compile_fwdadd_fullshadows
  121.             #pragma multi_compile_fog
  122.             // Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
  123.             //#pragma multi_compile _ LOD_FADE_CROSSFADE
  124.  
  125.             #pragma vertex vertAdd
  126.             #pragma fragment fragAdd
  127.             #include "UnityStandardCoreForward.cginc"
  128.  
  129.             ENDCG
  130.         }
  131.         // ------------------------------------------------------------------
  132.         //  Shadow rendering pass
  133.         Pass {
  134.             Name "ShadowCaster"
  135.             Tags { "LightMode" = "ShadowCaster" }
  136.  
  137.             ZWrite On ZTest LEqual
  138.  
  139.             CGPROGRAM
  140.             #pragma target 3.0
  141.  
  142.             // -------------------------------------
  143.  
  144.  
  145.             #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  146.             #pragma shader_feature _METALLICGLOSSMAP
  147.             #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  148.             #pragma shader_feature _PARALLAXMAP
  149.             #pragma multi_compile_shadowcaster
  150.             #pragma multi_compile_instancing
  151.             // Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
  152.             //#pragma multi_compile _ LOD_FADE_CROSSFADE
  153.  
  154.             #pragma vertex vertShadowCaster
  155.             #pragma fragment fragShadowCaster
  156.  
  157.             #include "UnityStandardShadow.cginc"
  158.  
  159.             ENDCG
  160.         }
  161.         // ------------------------------------------------------------------
  162.         //  Deferred pass
  163.         Pass
  164.         {
  165.             Name "DEFERRED"
  166.             Tags { "LightMode" = "Deferred" }
  167.  
  168.             CGPROGRAM
  169.             #pragma target 3.0
  170.             #pragma exclude_renderers nomrt
  171.  
  172.  
  173.             // -------------------------------------
  174.  
  175.             #pragma shader_feature _NORMALMAP
  176.             #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  177.             #pragma shader_feature _EMISSION
  178.             #pragma shader_feature _METALLICGLOSSMAP
  179.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  180.             #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  181.             #pragma shader_feature ___ _DETAIL_MULX2
  182.             #pragma shader_feature _PARALLAXMAP
  183.  
  184.             #pragma multi_compile_prepassfinal
  185.             #pragma multi_compile_instancing
  186.             // Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes.
  187.             //#pragma multi_compile _ LOD_FADE_CROSSFADE
  188.  
  189.             #pragma vertex vertDeferred
  190.             #pragma fragment fragDeferred
  191.  
  192.             #include "UnityStandardCore.cginc"
  193.  
  194.             ENDCG
  195.         }
  196.  
  197.         // ------------------------------------------------------------------
  198.         // Extracts information for lightmapping, GI (emission, albedo, ...)
  199.         // This pass it not used during regular rendering.
  200.         Pass
  201.         {
  202.             Name "META"
  203.             Tags { "LightMode"="Meta" }
  204.  
  205.             Cull Off
  206.  
  207.             CGPROGRAM
  208.             #pragma vertex vert_meta
  209.             #pragma fragment frag_meta
  210.  
  211.             #pragma shader_feature _EMISSION
  212.             #pragma shader_feature _METALLICGLOSSMAP
  213.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  214.             #pragma shader_feature ___ _DETAIL_MULX2
  215.             #pragma shader_feature EDITOR_VISUALIZATION
  216.  
  217.             #include "UnityStandardMeta.cginc"
  218.             ENDCG
  219.         }
  220.     }
  221.  
  222.     SubShader
  223.     {
  224.         Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
  225.         LOD 150
  226.  
  227.         // ------------------------------------------------------------------
  228.         //  Base forward pass (directional light, emission, lightmaps, ...)
  229.         Pass
  230.         {
  231.             Name "FORWARD"
  232.             Tags { "LightMode" = "ForwardBase" }
  233.  
  234.             Blend [_SrcBlend] [_DstBlend]
  235.             ZWrite [_ZWrite]
  236.  
  237.             CGPROGRAM
  238.             #pragma target 2.0
  239.  
  240.             #pragma shader_feature _NORMALMAP
  241.             #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  242.             #pragma shader_feature _EMISSION
  243.             #pragma shader_feature _METALLICGLOSSMAP
  244.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  245.             #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  246.             #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF
  247.             // SM2.0: NOT SUPPORTED shader_feature ___ _DETAIL_MULX2
  248.             // SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
  249.  
  250.             #pragma skip_variants SHADOWS_SOFT DIRLIGHTMAP_COMBINED
  251.  
  252.             #pragma multi_compile_fwdbase
  253.             #pragma multi_compile_fog
  254.  
  255.             #pragma vertex vertBase
  256.             #pragma fragment fragBase
  257.             #include "UnityStandardCoreForward.cginc"
  258.  
  259.             ENDCG
  260.         }
  261.         // ------------------------------------------------------------------
  262.         //  Additive forward pass (one light per pass)
  263.         Pass
  264.         {
  265.             Name "FORWARD_DELTA"
  266.             Tags { "LightMode" = "ForwardAdd" }
  267.             Blend [_SrcBlend] One
  268.             Fog { Color (0,0,0,0) } // in additive pass fog should be black
  269.             ZWrite Off
  270.             ZTest LEqual
  271.  
  272.             CGPROGRAM
  273.             #pragma target 2.0
  274.  
  275.             #pragma shader_feature _NORMALMAP
  276.             #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  277.             #pragma shader_feature _METALLICGLOSSMAP
  278.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  279.             #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF
  280.             #pragma shader_feature ___ _DETAIL_MULX2
  281.             // SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP
  282.             #pragma skip_variants SHADOWS_SOFT
  283.  
  284.             #pragma multi_compile_fwdadd_fullshadows
  285.             #pragma multi_compile_fog
  286.  
  287.             #pragma vertex vertAdd
  288.             #pragma fragment fragAdd
  289.             #include "UnityStandardCoreForward.cginc"
  290.  
  291.             ENDCG
  292.         }
  293.         // ------------------------------------------------------------------
  294.         //  Shadow rendering pass
  295.         Pass {
  296.             Name "ShadowCaster"
  297.             Tags { "LightMode" = "ShadowCaster" }
  298.  
  299.             ZWrite On ZTest LEqual
  300.  
  301.             CGPROGRAM
  302.             #pragma target 2.0
  303.  
  304.             #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
  305.             #pragma shader_feature _METALLICGLOSSMAP
  306.             #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  307.             #pragma skip_variants SHADOWS_SOFT
  308.             #pragma multi_compile_shadowcaster
  309.  
  310.             #pragma vertex vertShadowCaster
  311.             #pragma fragment fragShadowCaster
  312.  
  313.             #include "UnityStandardShadow.cginc"
  314.  
  315.             ENDCG
  316.         }
  317.  
  318.         // ------------------------------------------------------------------
  319.         // Extracts information for lightmapping, GI (emission, albedo, ...)
  320.         // This pass it not used during regular rendering.
  321.         Pass
  322.         {
  323.             Name "META"
  324.             Tags { "LightMode"="Meta" }
  325.  
  326.             Cull Off
  327.  
  328.             CGPROGRAM
  329.             #pragma vertex vert_meta
  330.             #pragma fragment frag_meta
  331.  
  332.             #pragma shader_feature _EMISSION
  333.             #pragma shader_feature _METALLICGLOSSMAP
  334.             #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
  335.             #pragma shader_feature ___ _DETAIL_MULX2
  336.             #pragma shader_feature EDITOR_VISUALIZATION
  337.  
  338.             #include "UnityStandardMeta.cginc"
  339.             ENDCG
  340.         }
  341.     }
  342.  
  343.  
  344.     FallBack "VertexLit"
  345.     CustomEditor "StandardShaderGUI"
  346. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement