333 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			333 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|  | 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 | ||
|  | 		_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) = 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 | ||
|  | 		Cull off | ||
|  | 
 | ||
|  | 		// ------------------------------------------------------------------ | ||
|  | 		//  Base forward pass (directional light, emission, lightmaps, ...) | ||
|  | 		Pass | ||
|  | 		{ | ||
|  | 			Name "FORWARD"  | ||
|  | 			Tags { "LightMode" = "ForwardBase" } | ||
|  | 
 | ||
|  | 			Blend [_SrcBlend] [_DstBlend] | ||
|  | 			ZWrite [_ZWrite] | ||
|  | 
 | ||
|  | 			CGPROGRAM | ||
|  | 			#pragma target 3.0 | ||
|  | 
 | ||
|  | 			// ------------------------------------- | ||
|  | 
 | ||
|  | 			#pragma shader_feature _NORMALMAP | ||
|  | 			#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 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 _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 | ||
|  | 			#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" } | ||
|  | 
 | ||
|  | 			ZWrite On ZTest LEqual | ||
|  | 
 | ||
|  | 			CGPROGRAM | ||
|  | 			#pragma target 3.0 | ||
|  | 
 | ||
|  | 			// ------------------------------------- | ||
|  | 
 | ||
|  | 
 | ||
|  | 			#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | ||
|  | 			#pragma multi_compile_shadowcaster | ||
|  | 
 | ||
|  | 			#pragma vertex vertShadowCaster | ||
|  | 			#pragma fragment fragShadowCaster | ||
|  | 
 | ||
|  | 			#include "UnityStandardShadow.cginc" | ||
|  | 
 | ||
|  | 			ENDCG | ||
|  | 		} | ||
|  | 		// ------------------------------------------------------------------ | ||
|  | 		//  Deferred pass | ||
|  | 		Pass | ||
|  | 		{ | ||
|  | 			Name "DEFERRED" | ||
|  | 			Tags { "LightMode" = "Deferred" } | ||
|  | 
 | ||
|  | 			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 ___ UNITY_HDR_ON | ||
|  | 			#pragma multi_compile LIGHTMAP_OFF LIGHTMAP_ON | ||
|  | 			#pragma multi_compile ___ DIRLIGHTMAP_COMBINED DIRLIGHTMAP_SEPARATE | ||
|  | 			#pragma multi_compile DYNAMICLIGHTMAP_OFF DYNAMICLIGHTMAP_ON | ||
|  | 
 | ||
|  | 			#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 _EMISSION | ||
|  | 			#pragma shader_feature _METALLICGLOSSMAP | ||
|  | 			#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | ||
|  | 			#pragma shader_feature ___ _DETAIL_MULX2 | ||
|  | 
 | ||
|  | 			#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 _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 _ _GLOSSYREFLECTIONS_OFF | ||
|  | 			// SM2.0: NOT SUPPORTED shader_feature ___ _DETAIL_MULX2 | ||
|  | 			// SM2.0: NOT SUPPORTED shader_feature _PARALLAXMAP | ||
|  | 
 | ||
|  | 			#pragma skip_variants SHADOWS_SOFT DIRLIGHTMAP_COMBINED DIRLIGHTMAP_SEPARATE | ||
|  | 
 | ||
|  | 			#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 _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" } | ||
|  | 			 | ||
|  | 			ZWrite On ZTest LEqual | ||
|  | 
 | ||
|  | 			CGPROGRAM | ||
|  | 			#pragma target 2.0 | ||
|  | 
 | ||
|  | 			#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | ||
|  | 			#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 _EMISSION | ||
|  | 			#pragma shader_feature _METALLICGLOSSMAP | ||
|  | 			#pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | ||
|  | 			#pragma shader_feature ___ _DETAIL_MULX2 | ||
|  | 
 | ||
|  | 			#include "UnityStandardMeta.cginc" | ||
|  | 			ENDCG | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 
 | ||
|  | 	FallBack "VertexLit" | ||
|  | 	CustomEditor "StandardShaderGUI" | ||
|  | } |