-
-
Save Sov3rain/ca82d7355568d37eed93f87332233491 to your computer and use it in GitHub Desktop.
Unity Standard-DoubleSided.shader
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt) | |
Shader "Standard (Double Sided)" | |
{ | |
Properties | |
{ | |
_Color("Color", Color) = (1,1,1,1) | |
_MainTex("Albedo", 2D) = "white" {} | |
_Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 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 | |
[Normal] _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 | |
[Normal] _DetailNormalMap("Normal Map", 2D) = "bump" {} | |
[Enum(UV0,0,UV1,1)] _UVSec ("UV Set for secondary textures", Float) = 0 | |
// Blending state | |
[HideInInspector] _Mode ("__mode", Float) = 0.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 { "RenderType"="Opaque" "PerformanceChecks"="False" } | |
LOD 300 | |
// ------------------------------------------------------------------ | |
// Base forward pass (directional light, emission, lightmaps, ...) | |
Pass | |
{ | |
Name "FORWARD" | |
Tags { "LightMode" = "ForwardBase" } | |
Blend [_SrcBlend] [_DstBlend] | |
ZWrite [_ZWrite] | |
Cull Off | |
CGPROGRAM | |
#pragma target 3.0 | |
// ------------------------------------- | |
#pragma shader_feature_local _NORMALMAP | |
#pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | |
#pragma shader_feature_fragment _EMISSION | |
#pragma shader_feature_local _METALLICGLOSSMAP | |
#pragma shader_feature_local_fragment _DETAIL_MULX2 | |
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | |
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF | |
#pragma shader_feature_local_fragment _GLOSSYREFLECTIONS_OFF | |
#pragma shader_feature_local _PARALLAXMAP | |
#pragma multi_compile_fwdbase | |
#pragma multi_compile_fog | |
#pragma multi_compile_instancing | |
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes. | |
//#pragma multi_compile _ LOD_FADE_CROSSFADE | |
#pragma vertex vertBase | |
#pragma fragment fragBase | |
#include "UnityStandardCoreForward.cginc" | |
ENDCG | |
} | |
// ------------------------------------------------------------------ | |
// Additive forward pass (one light per pass) | |
Pass | |
{ | |
Name "FORWARD_DELTA" | |
Tags { "LightMode" = "ForwardAdd" } | |
Blend [_SrcBlend] One | |
Fog { Color (0,0,0,0) } // in additive pass fog should be black | |
ZWrite Off | |
ZTest LEqual | |
CGPROGRAM | |
#pragma target 3.0 | |
// ------------------------------------- | |
#pragma shader_feature_local _NORMALMAP | |
#pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | |
#pragma shader_feature_local _METALLICGLOSSMAP | |
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | |
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF | |
#pragma shader_feature_local_fragment _DETAIL_MULX2 | |
#pragma shader_feature_local _PARALLAXMAP | |
#pragma multi_compile_fwdadd_fullshadows | |
#pragma multi_compile_fog | |
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes. | |
//#pragma multi_compile _ LOD_FADE_CROSSFADE | |
#pragma vertex vertAdd | |
#pragma fragment fragAdd | |
#include "UnityStandardCoreForward.cginc" | |
ENDCG | |
} | |
// ------------------------------------------------------------------ | |
// Shadow rendering pass | |
Pass { | |
Name "ShadowCaster" | |
Tags { "LightMode" = "ShadowCaster" } | |
ZWrite On ZTest LEqual | |
CGPROGRAM | |
#pragma target 3.0 | |
// ------------------------------------- | |
#pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | |
#pragma shader_feature_local _METALLICGLOSSMAP | |
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | |
#pragma shader_feature_local _PARALLAXMAP | |
#pragma multi_compile_shadowcaster | |
#pragma multi_compile_instancing | |
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes. | |
//#pragma multi_compile _ LOD_FADE_CROSSFADE | |
#pragma vertex vertShadowCaster | |
#pragma fragment fragShadowCaster | |
#include "UnityStandardShadow.cginc" | |
ENDCG | |
} | |
// ------------------------------------------------------------------ | |
// Deferred pass | |
Pass | |
{ | |
Name "DEFERRED" | |
Tags { "LightMode" = "Deferred" } | |
Cull Off | |
CGPROGRAM | |
#pragma target 3.0 | |
#pragma exclude_renderers nomrt | |
// ------------------------------------- | |
#pragma shader_feature_local _NORMALMAP | |
#pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | |
#pragma shader_feature_fragment _EMISSION | |
#pragma shader_feature_local _METALLICGLOSSMAP | |
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | |
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF | |
#pragma shader_feature_local_fragment _DETAIL_MULX2 | |
#pragma shader_feature_local _PARALLAXMAP | |
#pragma multi_compile_prepassfinal | |
#pragma multi_compile_instancing | |
// Uncomment the following line to enable dithering LOD crossfade. Note: there are more in the file to uncomment for other passes. | |
//#pragma multi_compile _ LOD_FADE_CROSSFADE | |
#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" } | |
Cull Off | |
CGPROGRAM | |
#pragma vertex vert_meta | |
#pragma fragment frag_meta | |
#pragma shader_feature_fragment _EMISSION | |
#pragma shader_feature_local _METALLICGLOSSMAP | |
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | |
#pragma shader_feature_local_fragment _DETAIL_MULX2 | |
#pragma shader_feature EDITOR_VISUALIZATION | |
#include "UnityStandardMeta.cginc" | |
ENDCG | |
} | |
} | |
SubShader | |
{ | |
Tags { "RenderType"="Opaque" "PerformanceChecks"="False" } | |
LOD 150 | |
// ------------------------------------------------------------------ | |
// Base forward pass (directional light, emission, lightmaps, ...) | |
Pass | |
{ | |
Name "FORWARD" | |
Tags { "LightMode" = "ForwardBase" } | |
Blend [_SrcBlend] [_DstBlend] | |
ZWrite [_ZWrite] | |
CGPROGRAM | |
#pragma target 2.0 | |
#pragma shader_feature_local _NORMALMAP | |
#pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | |
#pragma shader_feature_fragment _EMISSION | |
#pragma shader_feature_local _METALLICGLOSSMAP | |
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | |
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF | |
#pragma shader_feature_local_fragment _GLOSSYREFLECTIONS_OFF | |
// SM2.0: NOT SUPPORTED shader_feature_local _DETAIL_MULX2 | |
// SM2.0: NOT SUPPORTED shader_feature_local _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" } | |
Blend [_SrcBlend] One | |
Fog { Color (0,0,0,0) } // in additive pass fog should be black | |
ZWrite Off | |
ZTest LEqual | |
CGPROGRAM | |
#pragma target 2.0 | |
#pragma shader_feature_local _NORMALMAP | |
#pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | |
#pragma shader_feature_local _METALLICGLOSSMAP | |
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | |
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF | |
#pragma shader_feature_local_fragment _DETAIL_MULX2 | |
// SM2.0: NOT SUPPORTED shader_feature_local _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" } | |
ZWrite On ZTest LEqual | |
CGPROGRAM | |
#pragma target 2.0 | |
#pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | |
#pragma shader_feature_local _METALLICGLOSSMAP | |
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | |
#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" } | |
Cull Off | |
CGPROGRAM | |
#pragma vertex vert_meta | |
#pragma fragment frag_meta | |
#pragma shader_feature_fragment _EMISSION | |
#pragma shader_feature_local _METALLICGLOSSMAP | |
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | |
#pragma shader_feature_local_fragment _DETAIL_MULX2 | |
#pragma shader_feature EDITOR_VISUALIZATION | |
#include "UnityStandardMeta.cginc" | |
ENDCG | |
} | |
} | |
FallBack "VertexLit" | |
CustomEditor "StandardShaderGUI" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Update for Unity 2021.3.x