186 lines
5.9 KiB
GLSL
186 lines
5.9 KiB
GLSL
// Curved World <http://u3d.as/1W8h>
|
|
// Copyright (c) Amazing Assets <https://amazingassets.world>
|
|
|
|
Shader "Amazing Assets/Curved World/One Directional Light (Outline)"
|
|
{
|
|
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
|
|
|
|
[HideInInspector][Toggle] _AmbientLights("", float) = 0
|
|
[HideInInspector][Toggle] _PerVertexLights("", float) = 0
|
|
|
|
[HideInInspector] _LightLookupTex("", 2D) = "grey"{}
|
|
[HideInInspector] _LightLookupOffset("", Range(-1, 1)) = 0
|
|
|
|
[HideInInspector][CurvedWorldToggleFloat] _IncludeVertexColor("", float) = 0
|
|
[HideInInspector] _Color ("Color (RGB)", Color) = (1, 1, 1, 1)
|
|
[HideInInspector] _MainTex ("Base (RGB)", 2D) = "white" { }
|
|
[HideInInspector][CurvedWorldUVScroll] _MainTex_Scroll("", vector) = (0, 0, 0, 0)
|
|
[HideInInspector] _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
|
|
|
|
[HideInInspector][KeywordEnum(None, By Main Alpha, By Secondary Alpha, Multiple, Additive, By Vertex Alpha)] _TextureMix ("", Float) = 0
|
|
[HideInInspector] _SecondaryTex ("", 2D) = "white" { }
|
|
[HideInInspector][CurvedWorldUVScroll] _SecondaryTex_Scroll("", vector) = (0, 0, 0, 0)
|
|
[HideInInspector] _SecondaryTex_Blend("", Range(-1, 1)) = 0
|
|
|
|
[HideInInspector] _NormalMapStrength("", float) = 1
|
|
[HideInInspector][Normal] _NormalMap("", 2D) = "bump" {}
|
|
[HideInInspector] _NormalMap_Scroll ("", vector) = (0, 0, 0, 0)
|
|
[HideInInspector][Normal] _SecondaryNormalMap("", 2D) = "bump"{}
|
|
[HideInInspector] _SecondaryNormalMap_Scroll ("", vector) = (0, 0, 0, 0)
|
|
|
|
[HideInInspector] _SpecularColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1)
|
|
[HideInInspector] _Shininess("Shininess", Range(0, 1)) = 0.7
|
|
[HideInInspector] _SpecularMaskOffset("", Range(-1, 1)) = 0
|
|
|
|
[HideInInspector] _ReflectionColor("", color) = (1, 1, 1, 1)
|
|
[HideInInspector] _ReflectionMaskOffset("", Range(-1, 1)) = 0
|
|
[HideInInspector] _ReflectionCubeMap("", Cube) = "_Skybox"{}
|
|
[HideInInspector] _ReflectionFresnelBias("", Range(-1, 1)) = 0
|
|
|
|
[HideInInspector][HDR] _RimColor("", color) = (1, 1, 1, 1)
|
|
[HideInInspector] _RimBias("", Range(-1, 1)) = 0
|
|
|
|
[HideInInspector][HDR] _EmissionColor("", color) = (0, 0, 0, 0)
|
|
[HideInInspector] _EmissionMap("", 2D) = "white"{}
|
|
[HideInInspector] _EmissionMap_Scroll ("", vector) = (0, 0, 0, 0)
|
|
|
|
|
|
[HideInInspector] _OutlineColor("", Color) = (0, 0, 0, 1)
|
|
[HideInInspector] _OutlineWidth ("", float) = 1
|
|
[HideInInspector][CurvedWorldToggleFloat] _OutlineSizeIsFixed ("", float) = 1
|
|
|
|
|
|
// 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
|
|
}
|
|
|
|
|
|
SubShader
|
|
{
|
|
Tags { "RenderType"="CurvedWorld_Opaque" }
|
|
LOD 200
|
|
Cull[_Cull]
|
|
|
|
//PassName "Forward"
|
|
Pass
|
|
{
|
|
Name "Forward"
|
|
Tags { "LightMode" = "ForwardBase" }
|
|
|
|
//Blend [_SrcBlend] [_DstBlend] - Outline shaders do not use Blend, always opaque
|
|
//ZWrite [_ZWrite]
|
|
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma multi_compile_instancing
|
|
#pragma multi_compile_fwdbase nodirlightmap nodynlightmap
|
|
#pragma multi_compile_fog
|
|
//#pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON - Outline shader is always opaque
|
|
|
|
#pragma shader_feature_local _AMBIENTLIGHTS_ON
|
|
#pragma shader_feature_local _PERVERTEXLIGHTS_ON
|
|
#pragma shader_feature_local _LIGHTLOOKUP
|
|
#pragma shader_feature_local _ _TEXTUREMIX_BY_MAIN_ALPHA _TEXTUREMIX_BY_SECONDARY_ALPHA _TEXTUREMIX_MULTIPLE _TEXTUREMIX_ADDITIVE _TEXTUREMIX_BY_VERTEX_ALPHA
|
|
#pragma shader_feature_local _NORMALMAP
|
|
#pragma shader_feature_local _SPECULAR
|
|
#pragma shader_feature_local _REFLECTION
|
|
#pragma shader_feature_local _RIM
|
|
#pragma shader_feature_local _EMISSION
|
|
|
|
|
|
#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
|
|
|
|
|
|
#include "ForwardBase.cginc"
|
|
|
|
ENDCG
|
|
|
|
} //Pass "Forward"
|
|
|
|
|
|
//PassName "ShadowCaster"
|
|
Pass
|
|
{
|
|
Name "ShadowCaster"
|
|
Tags { "LIGHTMODE"="SHADOWCASTER" "SHADOWSUPPORT"="true" "RenderType"="CurvedWorld_Opaque" }
|
|
|
|
ZWrite On ZTest LEqual
|
|
|
|
CGPROGRAM
|
|
#include "HLSLSupport.cginc"
|
|
#define UNITY_INSTANCED_LOD_FADE
|
|
#define UNITY_INSTANCED_SH
|
|
#define UNITY_INSTANCED_LIGHTMAPSTS
|
|
#include "UnityShaderVariables.cginc"
|
|
#include "UnityShaderUtilities.cginc"
|
|
|
|
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma target 2.0
|
|
#pragma multi_compile_shadowcaster
|
|
#include "UnityCG.cginc"
|
|
|
|
//#pragma shader_feature_local _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON - Outline shader is always opaque
|
|
|
|
|
|
|
|
#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
|
|
#define CURVEDWORLD_BEND_ID_1
|
|
#pragma shader_feature_local CURVEDWORLD_DISABLED_ON
|
|
|
|
#include "../../Core/Shadow.cginc"
|
|
|
|
|
|
ENDCG
|
|
} //Pass "ShadowCaster"
|
|
|
|
|
|
//PassName "Outline"
|
|
Pass
|
|
{
|
|
Name "Outline"
|
|
Tags{ "LightMode" = "Always" }
|
|
|
|
Cull Front
|
|
ZWrite On
|
|
ColorMask RGB
|
|
Blend SrcAlpha OneMinusSrcAlpha
|
|
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma multi_compile_instancing
|
|
#pragma multi_compile_fog
|
|
|
|
|
|
#define CURVEDWORLD_BEND_TYPE_CLASSICRUNNER_X_POSITIVE
|
|
#define CURVEDWORLD_BEND_ID_1
|
|
#include "../../Core/Outline.cginc"
|
|
|
|
|
|
|
|
ENDCG
|
|
} //Pass "Outline"
|
|
|
|
|
|
} //SubShader
|
|
|
|
|
|
Fallback "Hidden/Amazing Assets/Curved World/Fallback/VertexLit"
|
|
CustomEditor "AmazingAssets.CurvedWorld.Editor.OneDirectionalLightShaderGUI"
|
|
} //Shader
|