MiniGames/Assets/ToonSketch/Shared/Shaders/TS_BasicOutline.shader
2025-09-01 05:03:00 +05:00

153 lines
4.6 KiB
Plaintext

Shader "ToonSketch/Basic Outlined"
{
Properties
{
_Color("Color", Color) = (1,1,1,1)
_MainTex("Albedo", 2D) = "white" {}
_Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
[Enum(Soft,0,Hard,1)] _Style("Style", Float) = 0
[Enum(Off,0,Front,1,Back,2)] _Cull("Cull Mode", Float) = 2
[Enum(Opaque,0,Cutout,1,Fade,2,Transparent,3)] _Blend("Blend Mode", Float) = 0
[Toggle(_TS_RAMPTEX_ON)] _Ramp("Ramp Texture?", Float) = 0
[NoScaleOffset] _RampTex("Ramp Texture", 2D) = "white" {}
_RampThreshold("Ramp Threshold", Range(0, 1)) = 0.5
_RampCutoff("Ramp Cutoff", Range(0, 1)) = 0.1
[Toggle(_TS_BUMPMAP_ON)] _Bump("Bump Mapping?", Float) = 0
[Normal] _BumpMap("Bump Map", 2D) = "bump" {}
_BumpScale("Bump Strength", Range(0, 1)) = 1
[Toggle(_TS_SPECULAR_ON)] _Specular("Specular Highlights?", Float) = 0
_SpecularTex("Specular Texture", 2D) = "white" {}
_SpecularColor("Specular Color", Color) = (1, 1, 1)
[Enum(Additive,0,Multiply,1)] _SpecularType("Specular Type", Float) = 0
[Enum(Albedo Alpha,0,Specular Alpha,1)] _SmoothnessType("Smoothness Type", Float) = 0
_Smoothness("Smoothness", Range(0, 1)) = 0.5
[Toggle(_TS_GLOSSREFLECT_ON)] _GlossyReflections("Glossy Reflections?", Float) = 1.0
_SpecularThreshold("Specular Threshold", Range(0, 1)) = 0.5
_SpecularCutoff("Specular Cutoff", Range(0, 1)) = 0.1
_SpecularIntensity("Specular Intensity", Range(0, 10)) = 1
[Toggle(_TS_RIMLIGHT_ON)] _RimLighting("Rim Lighting?", Float) = 0
_RimColor("Rim Color", Color) = (1, 1, 1, 1)
[Enum(Additive,0,Multiply,1)] _RimType("Rim Type", Float) = 0
[Toggle(_TS_RIMCOLORING_ON)] _RimColoring("Rim Use Color?", Float) = 1
_RimMin("Rim Min", Range(0, 1)) = 0.6
_RimMax("Rim Max", Range(0, 1)) = 0.8
_RimIntensity("Rim Intensity", Range(0, 10)) = 1
[Toggle(_TS_IGNOREINDIRECT_ON)] _IgnoreIndirect("Ignore Indirect Lighting?", Float) = 0
_OutlineColor("Outline Color", Color) = (1, 1, 1, 1)
_OutlineWidth("Outline Width", Range(0, 20)) = 1
_OutlineSaturation("Outline Saturation", Range(0, 1)) = 0.5
_OutlineBrightness("Outline Brightness", Range(0, 1)) = 0.5
_OutlineAngle("Outline Angle Cutoff", Range(0, 180)) = 90
[HideInInspector] _SrcBlend("__src", Float) = 1
[HideInInspector] _DstBlend("__dst", Float) = 0
[HideInInspector] _ZWrite("__zw", Float) = 1
}
CGINCLUDE
#define UNITY_SETUP_BRDF_INPUT SpecularSetup
ENDCG
SubShader
{
Tags { "RenderType"="Opaque" "PerformanceChecks"="False" }
LOD 200
Pass
{
Name "FORWARD"
Tags { "LightMode" = "ForwardBase" }
Blend[_SrcBlend][_DstBlend]
Cull[_Cull]
ZWrite[_ZWrite]
ZTest LEqual
CGPROGRAM
#pragma target 3.0
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature _ _TS_RAMPTEX_ON
#pragma shader_feature _ _TS_BUMPMAP_ON
#pragma shader_feature _ _TS_SPECULAR_ON
#pragma shader_feature _ _TS_GLOSSREFLECT_ON
#pragma shader_feature _ _TS_RIMLIGHT_ON
#pragma shader_feature _ _TS_RIMCOLORING_ON
#pragma shader_feature _ _TS_IGNOREINDIRECT_ON
#pragma multi_compile_fwdbase
#pragma multi_compile_fog
#pragma multi_compile_instancing
#pragma vertex TS_VertForwardBase
#pragma fragment TS_FragForwardBase
#include "../../Shared/Shaders/TS_Forward.cginc"
ENDCG
}
Pass
{
Name "FORWARD_DELTA"
Tags { "LightMode" = "ForwardAdd" }
Blend[_SrcBlend] One
Cull[_Cull]
Fog { Color(0,0,0,0) }
ZWrite Off
ZTest LEqual
CGPROGRAM
#pragma target 3.0
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature _ _TS_RAMPTEX_ON
#pragma shader_feature _ _TS_BUMPMAP_ON
#pragma shader_feature _ _TS_SPECULAR_ON
#pragma shader_feature _ _TS_GLOSSREFLECT_ON
#pragma shader_feature _ _TS_RIMLIGHT_ON
#pragma shader_feature _ _TS_RIMCOLORING_ON
#pragma multi_compile_fwdadd_fullshadows
#pragma multi_compile_fog
#pragma multi_compile_instancing
#pragma vertex TS_VertForwardAdd
#pragma fragment TS_FragForwardAdd
#include "../../Shared/Shaders/TS_Forward.cginc"
ENDCG
}
UsePass "Hidden/ToonSketch/Outlines/OUTLINE"
Pass
{
Name "ShadowCaster"
Tags { "LightMode" = "ShadowCaster" }
Cull[_Cull]
ZWrite On
ZTest LEqual
CGPROGRAM
#pragma target 3.0
#pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON
#pragma shader_feature _ _TS_BUMPMAP_ON
#pragma multi_compile_shadowcaster
#pragma multi_compile_instancing
#pragma vertex vertShadowCaster
#pragma fragment fragShadowCaster
#include "UnityStandardShadow.cginc"
ENDCG
}
}
Fallback "Diffuse"
CustomEditor "ToonSketchBasicOutlineShaderGUI"
}