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"
 | 
						|
}
 |