Added translaprent support
This commit is contained in:
@@ -3,63 +3,56 @@ Shader "HDRP/Toon"
|
||||
Properties
|
||||
{
|
||||
//TODO: Write HDRP properties to UTS properties
|
||||
[ToggleUI] _UseShadowThreshold("_UseShadowThreshold", Float) = 0.0
|
||||
[ToggleUI] _UseShadowThreshold("_UseShadowThreshold", Integer) = 0
|
||||
_AlphaCutoffShadow("_AlphaCutoffShadow", Range(0.0, 1.0)) = 0.5
|
||||
_AlphaCutoffPrepass("_AlphaCutoffPrepass", Range(0.0, 1.0)) = 0.5
|
||||
_AlphaCutoffPostpass("_AlphaCutoffPostpass", Range(0.0, 1.0)) = 0.5
|
||||
[ToggleUI] _TransparentDepthPrepassEnable("_TransparentDepthPrepassEnable", Float) = 0.0
|
||||
[ToggleUI] _TransparentBackfaceEnable("_TransparentBackfaceEnable", Float) = 0.0
|
||||
[ToggleUI] _TransparentDepthPostpassEnable("_TransparentDepthPostpassEnable", Float) = 0.0
|
||||
_TransparentSortPriority("_TransparentSortPriority", Float) = 0
|
||||
[ToggleUI] _TransparentDepthPrepassEnable("_TransparentDepthPrepassEnable", Integer) = 0
|
||||
[ToggleUI] _TransparentBackfaceEnable("_TransparentBackfaceEnable", Integer) = 0
|
||||
[ToggleUI] _TransparentDepthPostpassEnable("_TransparentDepthPostpassEnable", Integer) = 0
|
||||
_TransparentSortPriority("_TransparentSortPriority", Integer) = 0
|
||||
|
||||
// Transparency
|
||||
[Enum(None, 0, Box, 1, Sphere, 2, Thin, 3)]_RefractionModel("Refraction Model", Int) = 0
|
||||
[Enum(Proxy, 1, HiZ, 2)]_SSRefractionProjectionModel("Refraction Projection Model", Int) = 1
|
||||
[Enum(None, 0, Box, 1, Sphere, 2, Thin, 3)]_RefractionModel("Refraction Model", Integer) = 0
|
||||
[Enum(Proxy, 1, HiZ, 2)]_SSRefractionProjectionModel("Refraction Projection Model", Integer) = 1
|
||||
_Ior("Index Of Refraction", Range(1.0, 2.5)) = 1.0
|
||||
_ThicknessMultiplier("Thickness Multiplier", Float) = 1.0
|
||||
_TransmittanceColor("Transmittance Color", Color) = (1.0, 1.0, 1.0)
|
||||
_TransmittanceColorMap("TransmittanceColorMap", 2D) = "white" {}
|
||||
_ATDistance("Transmittance Absorption Distance", Float) = 1.0
|
||||
[ToggleUI] _TransparentWritingMotionVec("_TransparentWritingMotionVec", Float) = 0.0
|
||||
[ToggleUI] _TransparentWritingMotionVec("_TransparentWritingMotionVec", Integer) = 0
|
||||
|
||||
// Forward
|
||||
[HideInInspector] _StencilRef("_StencilRef", Int) = 2 // StencilLightingUsage.RegularLighting
|
||||
[HideInInspector] _StencilWriteMask("_StencilWriteMask", Int) = 3 // StencilMask.Lighting
|
||||
[HideInInspector] _StencilRef("_StencilRef", Integer) = 0 // StencilUsage.Clear
|
||||
[HideInInspector] _StencilWriteMask("_StencilWriteMask", Integer) = 3 // StencilUsage.RequiresDeferredLighting | StencilUsage.SubsurfaceScattering
|
||||
// GBuffer
|
||||
[HideInInspector] _StencilRefGBuffer("_StencilRefGBuffer", Int) = 2 // StencilLightingUsage.RegularLighting
|
||||
[HideInInspector] _StencilWriteMaskGBuffer("_StencilWriteMaskGBuffer", Int) = 3 // StencilMask.Lighting
|
||||
[HideInInspector] _StencilRefGBuffer("_StencilRefGBuffer", Integer) = 2 // StencilUsage.RequiresDeferredLighting
|
||||
[HideInInspector] _StencilWriteMaskGBuffer("_StencilWriteMaskGBuffer", Integer) = 3 // StencilUsage.RequiresDeferredLighting | StencilUsage.SubsurfaceScattering
|
||||
// Depth prepass
|
||||
[HideInInspector] _StencilRefDepth("_StencilRefDepth", Int) = 0 // Nothing
|
||||
[HideInInspector] _StencilWriteMaskDepth("_StencilWriteMaskDepth", Int) = 32 // DoesntReceiveSSR
|
||||
[HideInInspector] _StencilRefDepth("_StencilRefDepth", Integer) = 0 // Nothing
|
||||
[HideInInspector] _StencilWriteMaskDepth("_StencilWriteMaskDepth", Integer) = 8 // StencilUsage.TraceReflectionRay
|
||||
// Motion vector pass
|
||||
[HideInInspector] _StencilRefMV("_StencilRefMV", Int) = 128 // StencilBitMask.ObjectMotionVectors
|
||||
[HideInInspector] _StencilWriteMaskMV("_StencilWriteMaskMV", Int) = 128 // StencilBitMask.ObjectMotionVectors
|
||||
[HideInInspector] _StencilRefMV("_StencilRefMV", Integer) = 32 // StencilBitMask.ObjectMotionVectors
|
||||
[HideInInspector] _StencilWriteMaskMV("_StencilWriteMaskMV", Integer) = 32 // StencilBitMask.ObjectMotionVectors
|
||||
// Distortion vector pass
|
||||
[HideInInspector] _StencilRefDistortionVec("_StencilRefDistortionVec", Int) = 64 // StencilBitMask.DistortionVectors
|
||||
[HideInInspector] _StencilWriteMaskDistortionVec("_StencilWriteMaskDistortionVec", Int) = 64 // StencilBitMask.DistortionVectors
|
||||
[HideInInspector] _StencilRefDistortionVec("_StencilRefDistortionVec", Integer) = 64 // StencilBitMask.DistortionVectors
|
||||
[HideInInspector] _StencilWriteMaskDistortionVec("_StencilWriteMaskDistortionVec", Integer) = 64 // StencilBitMask.DistortionVectors
|
||||
|
||||
// Blending state
|
||||
[HideInInspector] _SurfaceType("__surfacetype", Float) = 0.0
|
||||
[HideInInspector] _BlendMode("__blendmode", Float) = 0.0
|
||||
[HideInInspector] _SrcBlend("__src", Float) = 1.0
|
||||
[HideInInspector] _DstBlend("__dst", Float) = 0.0
|
||||
[HideInInspector] _AlphaSrcBlend("__alphaSrc", Float) = 1.0
|
||||
[HideInInspector] _AlphaDstBlend("__alphaDst", Float) = 0.0
|
||||
[HideInInspector][ToggleUI] _ZWrite("__zw", Float) = 1.0
|
||||
[HideInInspector][ToggleUI] _TransparentZWrite("_TransparentZWrite", Float) = 0.0
|
||||
[HideInInspector] _CullModeForward("__cullmodeForward", Float) = 2.0 // This mode is dedicated to Forward to correctly handle backface then front face rendering thin transparent
|
||||
[HideInInspector] _TransparentCullMode("_TransparentCullMode", Int) = 2 // Back culling by default
|
||||
[HideInInspector] _ZTestDepthEqualForOpaque("_ZTestDepthEqualForOpaque", Int) = 4 // Less equal
|
||||
[HideInInspector] _ZTestModeDistortion("_ZTestModeDistortion", Int) = 8
|
||||
[HideInInspector] _ZTestGBuffer("_ZTestGBuffer", Int) = 4
|
||||
[HideInInspector] _ZTestMode("_ZTestMode", Int) = 4
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTestTransparent("Transparent ZTest", Int) = 4 // Less equal
|
||||
_BlendMode("__blendmode", Integer) = 0
|
||||
[HideInInspector] _SrcBlend("__src", Integer) = 1
|
||||
[HideInInspector] _DstBlend("__dst", Integer) = 0
|
||||
[HideInInspector] _AlphaSrcBlend("__alphaSrc", Integer) = 1
|
||||
[HideInInspector] _AlphaDstBlend("__alphaDst", Integer) = 0
|
||||
[HideInInspector][ToggleUI] _ZWrite("__zw", Integer) = 1
|
||||
[HideInInspector][ToggleUI] _TransparentZWrite("_TransparentZWrite", Integer) = 0
|
||||
[HideInInspector] _CullModeForward("__cullmodeForward", Integer) = 2.0 // This mode is dedicated to Forward to correctly handle backface then front face rendering thin transparent
|
||||
[HideInInspector] _ZTestDepthEqualForOpaque("_ZTestDepthEqualForOpaque", Integer) = 4 // Less equal
|
||||
[HideInInspector] _ZTestModeDistortion("_ZTestModeDistortion", Integer) = 8
|
||||
[HideInInspector] _ZTestGBuffer("_ZTestGBuffer", Integer) = 4
|
||||
[HideInInspector] _ZTestMode("_ZTestMode", Integer) = 4
|
||||
[Enum(UnityEngine.Rendering.CompareFunction)] _ZTestTransparent("Transparent ZTest", Integer) = 4 // Less equal
|
||||
|
||||
[ToggleUI] _EnableFogOnTransparent("Enable Fog", Float) = 1.0
|
||||
[ToggleUI] _EnableBlendModePreserveSpecularLighting("Enable Blend Mode Preserve Specular Lighting", Float) = 1.0
|
||||
|
||||
[ToggleUI] _DoubleSidedEnable("Double sided enable", Float) = 0.0
|
||||
[Enum(Flip, 0, Mirror, 1, None, 2)] _DoubleSidedNormalMode("Double sided normal mode", Float) = 1
|
||||
[HideInInspector] _DoubleSidedConstants("_DoubleSidedConstants", Vector) = (1, 1, -1, 0)
|
||||
|
||||
[HideInInspector] _UVMappingMask("_UVMappingMask", Color) = (1, 0, 0, 0)
|
||||
@@ -81,13 +74,16 @@ Shader "HDRP/Toon"
|
||||
//TODO: Move more properties here for better organization
|
||||
|
||||
// Surface Options
|
||||
[Popup(_SURFACE_TYPE_TRANSPARENT)] _TransparentEnabled("Transparent Mode", Integer) = 0
|
||||
[Popup(_ALPHATEST_ON)] _AlphaCutoffEnable("Alpha Cutoff Enable", Integer) = 0.0
|
||||
[Enum(Misaki.HdrpToon.SurfaceType)]_SurfaceType("__surfacetype", Integer) = 0
|
||||
[Popup(_ENABLE_FOG_ON_TRANSPARENT)] _FogOnTransparent("Fog On Transparent", Integer) = 0
|
||||
[Popup(_ALPHATEST_ON)] _AlphaCutoffEnable("Alpha Cutoff Enable", Integer) = 0
|
||||
_AlphaCutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
|
||||
[Enum(Off, 0, Front, 1, Back, 2)] _CullMode("Cull Mode", Integer) = 2
|
||||
[KeywordEnum(Standard, SDF)] _Shading_Mode("Shading mode", Integer) = 0
|
||||
[KeywordEnum(Standard, FrontHair, Face, Eye)] _Material_Type("Material Type", Integer) = 0
|
||||
[KeywordEnum(Off, Standard, Anisotropy, Hair, Fabric, Toon)] _PBR_Mode("PBR Mode", Integer) = 0
|
||||
[Enum(Misaki.HdrpToon.DoubleSidedMode)] _DoubleSidedNormalMode("Double sided normal mode", Integer) = 1
|
||||
|
||||
[KeywordEnumType(Misaki.HdrpToon.ShadingMode, Misaki.HdrpToon)] _Shading_Mode("Shading mode", Integer) = 0
|
||||
[KeywordEnumType(Misaki.HdrpToon.MaterialType, Misaki.HdrpToon)] _Material_Type("Material Type", Integer) = 0
|
||||
[KeywordEnumType(Misaki.HdrpToon.PBRMode, Misaki.HdrpToon)] _PBR_Mode("PBR Mode", Integer) = 0
|
||||
[PassPopup(HairBlendingTarget)] _HairBlendingTarget("Hair Blending Target", Integer) = 0
|
||||
[EnumFlagsUI(Misaki.HdrpToon.SurfaceFeature, Misaki.HdrpToon)]_SurfaceFeatures("Surface Features", Integer) = 0
|
||||
|
||||
@@ -172,8 +168,8 @@ Shader "HDRP/Toon"
|
||||
_EmissiveExposureWeight("Emissive Pre Exposure", Range(0.0, 1.0)) = 1.0
|
||||
|
||||
// Ambient
|
||||
[KeywordEnum(Off, IBL, MatCap, Ramp)]_Indirect_Diffuse_Mode("_Indirect_Diffuse_Mode", Integer) = 1
|
||||
[KeywordEnum(Off, IBL, MatCap)]_Indirect_Specular_Mode("_Indirect_Specular_Mode", Integer) = 1
|
||||
[KeywordEnumType(Misaki.HdrpToon.IndirectDiffuseMode, Misaki.HdrpToon)] _Indirect_Diffuse_Mode("_Indirect_Diffuse_Mode", Integer) = 1
|
||||
[KeywordEnumType(Misaki.HdrpToon.IndirectSpecularMode, Misaki.HdrpToon)] _Indirect_Specular_Mode("_Indirect_Specular_Mode", Integer) = 1
|
||||
|
||||
_IndirectDiffuseMatCapMap("IndirectDiffuseMatCapMap", 2D) = "black" {}
|
||||
_IndirectDiffuseMatCapLod("IndirectDiffuseMatCapMapLOD", Range(-5, 5)) = 0.0
|
||||
@@ -232,7 +228,7 @@ Shader "HDRP/Toon"
|
||||
_OutlineColorMap("Outline Color Map", 2D) = "white" {}
|
||||
[ToggleUI] _AlbedoAffectOutline("Albedo Affect Outline", Float) = 1
|
||||
[ToggleUI] _SkyColorAffectOutline("Sky Color Affect Outline", Float) = 1
|
||||
_SkyColorIntensity("Sky Color Intensity", Range(0, 5)) = 1
|
||||
_SkyColorIntensity("Sky Color Intensity", Range(0, 10)) = 1
|
||||
|
||||
_OutlineFadeIn("Outline Fade In", Float) = 50
|
||||
_OutlineFadeOut("Outline Fade Out", Float) = 100
|
||||
@@ -256,7 +252,7 @@ Shader "HDRP/Toon"
|
||||
_TexWorldScaleEmissive("Scale to apply on world coordinate", Float) = 1.0
|
||||
[HideInInspector] _UVMappingMaskEmissive("_UVMappingMaskEmissive", Color) = (1, 0, 0, 0)
|
||||
|
||||
[HideInInspector] _DiffusionProfile("Obsolete, kept for migration purpose", Int) = 0
|
||||
[HideInInspector] _DiffusionProfile("Obsolete, kept for migration purpose", Integer) = 0
|
||||
[HideInInspector] _DiffusionProfileAsset("Diffusion Profile Asset", Vector) = (0, 0, 0, 0)
|
||||
[HideInInspector] _DiffusionProfileHash("Diffusion Profile Hash", Float) = 0
|
||||
}
|
||||
@@ -396,8 +392,9 @@ Shader "HDRP/Toon"
|
||||
|
||||
#pragma shader_feature_local_fragment _PBR_MODE_OFF
|
||||
|
||||
#pragma shader_feature_local _NORMALMAP
|
||||
#pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE
|
||||
#pragma shader_feature_local_fragment _MASKMAP
|
||||
#pragma shader_feature_local_fragment _NORMALMAP
|
||||
#pragma shader_feature_local_fragment _ANISOTROPYMAP
|
||||
#pragma shader_feature_local_fragment _SPECULARCOLORMAP
|
||||
|
||||
@@ -445,8 +442,15 @@ Shader "HDRP/Toon"
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
#pragma shader_feature_local _NORMALMAP
|
||||
#pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE
|
||||
#pragma shader_feature_local_fragment _MASKMAP
|
||||
#pragma shader_feature_local_fragment _ANISOTROPYMAP
|
||||
#pragma shader_feature_local_fragment _SPECULARCOLORMAP
|
||||
|
||||
#pragma shader_feature_local _ALPHATEST_ON
|
||||
#pragma shader_feature _SURFACE_TYPE_TRANSPARENT
|
||||
#pragma shader_feature_local_fragment _ENABLE_FOG_ON_TRANSPARENT
|
||||
|
||||
// Lightmap memo
|
||||
// DYNAMICLIGHTMAP_ON is used when we have an "enlighten lightmap" ie a lightmap updated at runtime by enlighten.This lightmap contain indirect lighting from realtime lights and realtime emissive material.Offline baked lighting(from baked material / light,
|
||||
@@ -515,9 +519,9 @@ Shader "HDRP/Toon"
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
#pragma shader_feature_local_fragment _MASKMAP
|
||||
#pragma shader_feature_local _NORMALMAP
|
||||
#pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE
|
||||
#pragma shader_feature_local_fragment _MASKMAP
|
||||
|
||||
#pragma shader_feature_local _ALPHATEST_ON
|
||||
|
||||
@@ -634,6 +638,10 @@ Shader "HDRP/Toon"
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
#pragma shader_feature_local _NORMALMAP
|
||||
#pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE
|
||||
#pragma shader_feature_local_fragment _MASKMAP
|
||||
|
||||
#pragma shader_feature_local _ALPHATEST_ON
|
||||
#pragma shader_feature _SURFACE_TYPE_TRANSPARENT
|
||||
|
||||
@@ -666,8 +674,16 @@ Shader "HDRP/Toon"
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
#pragma shader_feature_local _NORMALMAP
|
||||
#pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE
|
||||
#pragma shader_feature_local_fragment _MASKMAP
|
||||
#pragma shader_feature_local_fragment _ANISOTROPYMAP
|
||||
#pragma shader_feature_local_fragment _SPECULARCOLORMAP
|
||||
#pragma shader_feature_local_fragment _EMISSIVE_COLOR_MAP
|
||||
|
||||
#pragma shader_feature_local _ALPHATEST_ON
|
||||
#pragma shader_feature _SURFACE_TYPE_TRANSPARENT
|
||||
#pragma shader_feature_local_fragment _ENABLE_FOG_ON_TRANSPARENT
|
||||
|
||||
#pragma multi_compile _ DEBUG_DISPLAY
|
||||
#pragma multi_compile _ LIGHTMAP_ON
|
||||
@@ -718,9 +734,9 @@ Shader "HDRP/Toon"
|
||||
Name "ForwardOnly"
|
||||
Tags { "LightMode" = "ForwardOnly" }
|
||||
|
||||
ZWrite [_ZWriteMode]
|
||||
ZWrite [_ZWrite]
|
||||
ZTest [_ZTestDepthEqualForOpaque]
|
||||
Cull [_CullMode]
|
||||
Cull [_CullModeForward]
|
||||
|
||||
Blend [_SrcBlend] [_DstBlend], [_AlphaSrcBlend] [_AlphaDstBlend]
|
||||
// ForwardOpaque | ForwardTransparent
|
||||
@@ -731,11 +747,10 @@ Shader "HDRP/Toon"
|
||||
|
||||
Stencil
|
||||
{
|
||||
Ref[_StencilNo]
|
||||
|
||||
Comp[_StencilComp]
|
||||
Pass[_StencilOpPass]
|
||||
Fail[_StencilOpFail]
|
||||
WriteMask [_StencilWriteMask]
|
||||
Ref [_StencilRef]
|
||||
Comp Always
|
||||
Pass Replace
|
||||
}
|
||||
|
||||
|
||||
@@ -782,17 +797,18 @@ Shader "HDRP/Toon"
|
||||
|
||||
#pragma shader_feature_local_fragment _SHADING_RAMP_MASK_MAP
|
||||
|
||||
#pragma shader_feature_local _NORMALMAP
|
||||
#pragma shader_feature_local_fragment _NORMALMAP_TANGENT_SPACE
|
||||
#pragma shader_feature_local_fragment _MASKMAP
|
||||
#pragma shader_feature_local_fragment _NORMALMAP
|
||||
#pragma shader_feature_local_fragment _ANISOTROPYMAP
|
||||
#pragma shader_feature_local_fragment _SPECULARCOLORMAP
|
||||
|
||||
#pragma shader_feature_local_fragment _EMISSIVE_COLOR_MAP
|
||||
|
||||
#pragma shader_feature_local_fragment _OUTLINECOLORMAP
|
||||
|
||||
#pragma shader_feature_local _ALPHATEST_ON
|
||||
#pragma shader_feature _SURFACE_TYPE_TRANSPARENT
|
||||
#pragma shader_feature_local_fragment _ENABLE_FOG_ON_TRANSPARENT
|
||||
|
||||
|
||||
#define PUNCTUAL_SHADOW_MEDIUM
|
||||
@@ -911,7 +927,9 @@ Shader "HDRP/Toon"
|
||||
Tags { "LightMode" = "Outline" }
|
||||
|
||||
Cull Front
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
|
||||
ZWrite On
|
||||
ZTest LEqual
|
||||
|
||||
HLSLPROGRAM
|
||||
|
||||
|
||||
Reference in New Issue
Block a user