- Added a fake sub-surface scattering shader that might be used later. - Apparently the arcade games were altered somehow? Don't remember that.
109 lines
3.9 KiB
GLSL
109 lines
3.9 KiB
GLSL
// Put together with Amplify's help.
|
|
Shader "Silent/Subsurface Scattering (Specular)"
|
|
{
|
|
Properties
|
|
{
|
|
[Header(Standard)]
|
|
_Color ("Color", Color) = (1,1,1,1)
|
|
_MainTex("Albedo", 2D) = "white" {}
|
|
[NoScaleOffset][Normal]_BumpMap("Normal Map", 2D) = "bump" {}
|
|
_BumpScale ("Normal Scale", Float) = 1
|
|
[NoScaleOffset]_MetallicGlossMap("Specular", 2D) = "black" {}
|
|
_SpecularColor("Specular Tint", Color) = (1,1,1)
|
|
_GlossMapScale("Smoothness", Range(0, 1)) = 1.0
|
|
[ToggleUI]_SmoothnessFromAlbedo("Smoothness stored in Albedo alpha", Float) = 0.0
|
|
[NoScaleOffset]_OcclusionMap("Occlusion", 2D) = "white" {}
|
|
_OcclusionStrength("Occlusion Strength", Range(0, 1)) = 1.0
|
|
[Enum(UV1, 0, UV2, 1)] _OcclusionUVSource("Occlusion UV Source", Float) = 0
|
|
_EmissionMap("Emission", 2D) = "black" {}
|
|
[HDR]_EmissionColor ("Emission Color", Color) = (1,1,1,1)
|
|
|
|
[Header(Detail)]
|
|
[NoScaleOffset]_OverlayMap("Overlay", 2D) = "black" {}
|
|
_OverlayColor ("Overlay Color", Color) = (1,1,1,1)
|
|
[NoScaleOffset]_DetailMask("Detail Mask", 2D) = "white" {}
|
|
[Normal]_DetailBumpMap("Detail Normal Map", 2D) = "bump" {}
|
|
_DetailMetallicGlossMap("Detail Metallic", 2D) = "white" {}
|
|
_DetailBumpMapScale ("Detail Scale", Float) = 1
|
|
[Enum(UV1, 0, UV2, 1)] _SecondUVSource("Secondary UV Source", Float) = 0
|
|
|
|
[Header(Transmission)]
|
|
[NoScaleOffset]_ThicknessMap("Thickness Map", 2D) = "black" {}
|
|
[ToggleUI]_ThicknessMapInvert("Invert Thickness", Float) = 0.0
|
|
_ThicknessMapPower ("Thickness Map Power", Range(0.01, 10)) = 1
|
|
[Enum(UV1, 0, UV2, 1)] _ThicknessUVSource("Thickness UV Source", Float) = 0
|
|
[ToggleUI]_ScatteringByAlbedo("Tint Scattering with Albedo", Float) = 0.0
|
|
_SSSCol ("Scattering Color", Color) = (1,1,1,1)
|
|
_SSSIntensity ("Scattering Intensity", Range(0, 10)) = 1
|
|
_SSSPow ("Scattering Power", Range(0.01, 10)) = 1
|
|
_SSSDist ("Scattering Distance", Range(0, 10)) = 1
|
|
_SSSAmbient ("Scattering Ambient Intensity", Range(0, 0.5)) = 0
|
|
_SSSShadow ("Scattering Shadow Power", Range(0, 1)) = 1
|
|
|
|
[Header(Skin)]
|
|
[Toggle(_METALLICGLOSSMAP)]_UseSkinScattering("Use Skin Scattering", Float) = 0.0
|
|
[NoScaleOffset]_BRDFTex("Skin BRDF LUT", 2D) = "white" {}
|
|
|
|
[Header(Wrapped Diffuse)]
|
|
_WrappingFactor("Wrapping Factor", Range(0.001, 1)) = 0.01
|
|
[Gamma]_WrappingPowerFactor("Wrapping Power Factor", Float) = 1
|
|
|
|
[Header(System)]
|
|
[Enum(UnityEngine.Rendering.CullMode)] _CullMode("Cull Mode", Float) = 2
|
|
[Toggle(_ALPHATEST_ON)] _UseCutout("Alpha Test Cutout", Float) = 0
|
|
[Toggle(_ALPHABLEND_ON)] _UseAlphaToMask("Alpha To Coverage Transparency", Float) = 0
|
|
_Cutout("Cutout", Range(0, 1)) = 0.5
|
|
[ToggleOff(_SPECULARHIGHLIGHTS_OFF)]_SpecularHighlights ("Specular Highlights", Float) = 1.0
|
|
[ToggleOff(_GLOSSYREFLECTIONS_OFF)]_GlossyReflections ("Glossy Reflections", Float) = 1.0
|
|
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
|
[HideInInspector] _texcoord2( "", 2D ) = "white" {}
|
|
[HideInInspector] __dirty( "", Int ) = 1
|
|
}
|
|
|
|
SubShader
|
|
{
|
|
Tags{ "RenderType" = "TransparentCutout" "Queue" = "AlphaTest+0" }
|
|
Cull[_CullMode]
|
|
AlphaToMask [_UseAlphaToMask]
|
|
|
|
CGINCLUDE
|
|
|
|
#pragma shader_feature _SPECULARHIGHLIGHTS_OFF
|
|
#pragma shader_feature _GLOSSYREFLECTIONS_OFF
|
|
#pragma shader_feature _ALPHATEST_ON
|
|
|
|
// Reuse Standard keywords for features to avoid reaching limit
|
|
// This one is for scattering.
|
|
#pragma shader_feature _METALLICGLOSSMAP
|
|
|
|
#define SSS_SPECULAR
|
|
#include "SSS_Standard.cginc"
|
|
|
|
ENDCG
|
|
CGPROGRAM
|
|
#pragma surface surf StandardCustomLighting keepalpha fullforwardshadows
|
|
|
|
ENDCG
|
|
Pass
|
|
{
|
|
Name "ShadowCaster"
|
|
Tags{ "LightMode" = "ShadowCaster" }
|
|
ZWrite On
|
|
AlphaToMask Off
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma target 3.0
|
|
#pragma multi_compile_shadowcaster
|
|
#pragma multi_compile UNITY_PASS_SHADOWCASTER
|
|
#pragma shader_feature _ _ALPHATEST_ON
|
|
#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
|
|
|
|
#include "SSS_Shadow.cginc"
|
|
|
|
ENDCG
|
|
}
|
|
}
|
|
Fallback "Standard"
|
|
}
|