416 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			416 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
|  | // Curved World <http://u3d.as/1W8h> | ||
|  | // Copyright (c) Amazing Assets <https://amazingassets.world> | ||
|  |   | ||
|  | Shader "Amazing Assets/Curved World/Standard (Specular setup)" | ||
|  | { | ||
|  |     Properties | ||
|  |     { | ||
|  | [HideInInspector][CurvedWorldBendSettings]	  _CurvedWorldBendSettings("0|1|1", Vector) = (0, 0, 0, 0) | ||
|  | 
 | ||
|  | 
 | ||
|  | [HideInInspector][MaterialEnum(Front,2,Back,1,Both,0)] _Cull("Face Cull", Int) = 0 | ||
|  | 
 | ||
|  | 
 | ||
|  |         _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 Factor", Range(0.0, 1.0)) = 1.0 | ||
|  |         [Enum(Specular Alpha,0,Albedo Alpha,1)] _SmoothnessTextureChannel ("Smoothness texture channel", Float) = 0 | ||
|  | 
 | ||
|  |         _SpecColor("Specular", Color) = (0.2,0.2,0.2) | ||
|  |         _SpecGlossMap("Specular", 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 SpecularSetup | ||
|  |     ENDCG | ||
|  | 
 | ||
|  |     SubShader | ||
|  |     { | ||
|  |         Tags { "RenderType"="CurvedWorld_Opaque" "PerformanceChecks"="False" } | ||
|  |         LOD 300 | ||
|  |         Cull[_Cull] | ||
|  | 
 | ||
|  |         // ------------------------------------------------------------------ | ||
|  |         //  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_local _NORMALMAP | ||
|  |             #pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | ||
|  |             #pragma shader_feature_fragment _EMISSION | ||
|  |             #pragma shader_feature_local _SPECGLOSSMAP | ||
|  |             #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 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | #define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE | ||
|  | #define CURVEDWORLD_BEND_ID_1 | ||
|  | #pragma shader_feature_local CURVEDWORLD_DISABLED_ON | ||
|  | #pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |             #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 _SPECGLOSSMAP | ||
|  |             #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 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | #define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE | ||
|  | #define CURVEDWORLD_BEND_ID_1 | ||
|  | #pragma shader_feature_local CURVEDWORLD_DISABLED_ON | ||
|  | #pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |             #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 _SPECGLOSSMAP | ||
|  |             #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 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | #define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE | ||
|  | #define CURVEDWORLD_BEND_ID_1 | ||
|  | #pragma shader_feature_local CURVEDWORLD_DISABLED_ON | ||
|  | #pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |             #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_local _NORMALMAP | ||
|  |             #pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON | ||
|  |             #pragma shader_feature_fragment _EMISSION | ||
|  |             #pragma shader_feature_local _SPECGLOSSMAP | ||
|  |             #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 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | #define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE | ||
|  | #define CURVEDWORLD_BEND_ID_1 | ||
|  | #pragma shader_feature_local CURVEDWORLD_DISABLED_ON | ||
|  | #pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_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_fragment _EMISSION | ||
|  |             #pragma shader_feature_local _SPECGLOSSMAP | ||
|  |             #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"="CurvedWorld_Opaque" "PerformanceChecks"="False" } | ||
|  |         LOD 150 | ||
|  |         Cull[_Cull] | ||
|  |          | ||
|  |         // ------------------------------------------------------------------ | ||
|  |         //  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 _SPECGLOSSMAP | ||
|  |             #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_fragment _DETAIL_MULX2 | ||
|  |             // SM2.0: NOT SUPPORTED shader_feature_local _PARALLAXMAP | ||
|  | 
 | ||
|  |             #pragma skip_variants SHADOWS_SOFT DYNAMICLIGHTMAP_ON DIRLIGHTMAP_COMBINED | ||
|  | 
 | ||
|  |             #pragma multi_compile_fwdbase | ||
|  |             #pragma multi_compile_fog | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | #define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE | ||
|  | #define CURVEDWORLD_BEND_ID_1 | ||
|  | #pragma shader_feature_local CURVEDWORLD_DISABLED_ON | ||
|  | #pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |             #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 _SPECGLOSSMAP | ||
|  |             #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 | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | #define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE | ||
|  | #define CURVEDWORLD_BEND_ID_1 | ||
|  | #pragma shader_feature_local CURVEDWORLD_DISABLED_ON | ||
|  | #pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |             #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 _SPECGLOSSMAP | ||
|  |             #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A | ||
|  |             #pragma skip_variants SHADOWS_SOFT | ||
|  |             #pragma multi_compile_shadowcaster | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | #define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE | ||
|  | #define CURVEDWORLD_BEND_ID_1 | ||
|  | #pragma shader_feature_local CURVEDWORLD_DISABLED_ON | ||
|  | #pragma shader_feature_local CURVEDWORLD_NORMAL_TRANSFORMATION_ON | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  |             #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 _SPECGLOSSMAP | ||
|  |             #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 "Hidden/Amazing Assets/Curved World/Fallback/VertexLit" | ||
|  |     CustomEditor "AmazingAssets.CurvedWorld.Editor.StandardShaderGUI" | ||
|  | } |