Added transparent depth pre pass;

Added transparent depth post pass;
Added transparent depth write;
Added transparent back then front render;
Added transparent motion vector write;
This commit is contained in:
2025-05-25 00:03:26 +09:00
parent 1a93e81edd
commit aeb4da48eb
4 changed files with 78 additions and 8 deletions

View File

@@ -7,9 +7,6 @@ Shader "HDRP/Toon"
_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", Integer) = 0
[ToggleUI] _TransparentBackfaceEnable("_TransparentBackfaceEnable", Integer) = 0
[ToggleUI] _TransparentDepthPostpassEnable("_TransparentDepthPostpassEnable", Integer) = 0
_TransparentSortPriority("_TransparentSortPriority", Integer) = 0
// Transparency
@@ -20,7 +17,6 @@ Shader "HDRP/Toon"
_TransmittanceColor("Transmittance Color", Color) = (1.0, 1.0, 1.0)
_TransmittanceColorMap("TransmittanceColorMap", 2D) = "white" {}
_ATDistance("Transmittance Absorption Distance", Float) = 1.0
[ToggleUI] _TransparentWritingMotionVec("_TransparentWritingMotionVec", Integer) = 0
// Forward
[HideInInspector] _StencilRef("_StencilRef", Integer) = 0 // StencilUsage.Clear
@@ -45,7 +41,6 @@ Shader "HDRP/Toon"
[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
@@ -75,7 +70,15 @@ Shader "HDRP/Toon"
// Surface Options
[Enum(Misaki.HdrpToon.SurfaceType)]_SurfaceType("__surfacetype", Integer) = 0
[Popup(_ENABLE_FOG_ON_TRANSPARENT)] _FogOnTransparent("Fog On Transparent", Integer) = 0
[ToggleUI] _TransparentDepthPrepassEnable("Transparent Depth Prepass Enable", Integer) = 0
[ToggleUI] _TransparentDepthPostpassEnable("Transparent Depth Postpass Enable", Integer) = 0
[ToggleUI] _TransparentBackfaceEnable("Transparent Backface Enable", Integer) = 0
[ToggleUI] _TransparentZWrite("_TransparentZWrite", Integer) = 0
[PopupUI] _ReceivesSSRTransparent("Receives SSR Transparent", Integer) = 0
[Popup(_TRANSPARENT_WRITES_MOTION_VEC)] _TransparentWritingMotionVec ("Transparent Writing Motion Vector", 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
@@ -252,6 +255,14 @@ Shader "HDRP/Toon"
_TexWorldScaleEmissive("Scale to apply on world coordinate", Float) = 1.0
[HideInInspector] _UVMappingMaskEmissive("_UVMappingMaskEmissive", Color) = (1, 0, 0, 0)
_SubsurfaceMask("Subsurface Radius", Range(0.0, 1.0)) = 1.0
_SubsurfaceMaskMap("Subsurface Radius Map", 2D) = "white" {}
_TransmissionMask("Transmission Mask", Range(0.0, 1.0)) = 1.0
_TransmissionMaskMap("Transmission Mask Map", 2D) = "white" {}
_Thickness("Thickness", Float) = 1.0
_ThicknessMap("Thickness Map", 2D) = "white" {}
_ThicknessRemap("Thickness Remap", Vector) = (0, 1, 0, 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
@@ -645,9 +656,15 @@ Shader "HDRP/Toon"
#pragma shader_feature_local _ALPHATEST_ON
#pragma shader_feature _SURFACE_TYPE_TRANSPARENT
#pragma shader_feature_local _DISABLE_SSR_TRANSPARENT
#define SHADERPASS SHADERPASS_TRANSPARENT_DEPTH_PREPASS
// If the transparent surface should have reflections, then we should output normal
#if !defined(_DISABLE_SSR_TRANSPARENT)
#define WRITE_NORMAL_BUFFER
#endif
#define SHADERPASS SHADERPASS_DEPTH_ONLY
#define CUTOFF_TRANSPARENT_DEPTH_PREPASS
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Material.hlsl"
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/Lit.hlsl"
#include "Packages/com.unity.render-pipelines.high-definition/Runtime/Material/Lit/ShaderPass/LitDepthPass.hlsl"
@@ -684,6 +701,7 @@ Shader "HDRP/Toon"
#pragma shader_feature_local _ALPHATEST_ON
#pragma shader_feature _SURFACE_TYPE_TRANSPARENT
#pragma shader_feature_local_fragment _ENABLE_FOG_ON_TRANSPARENT
#pragma shader_feature_local _DISABLE_SSR_TRANSPARENT
#pragma multi_compile _ DEBUG_DISPLAY
#pragma multi_compile _ LIGHTMAP_ON
@@ -808,6 +826,7 @@ Shader "HDRP/Toon"
#pragma shader_feature_local _ALPHATEST_ON
#pragma shader_feature _SURFACE_TYPE_TRANSPARENT
#pragma shader_feature_local_fragment _ENABLE_FOG_ON_TRANSPARENT
#pragma shader_feature_local _DISABLE_SSR_TRANSPARENT
#define PUNCTUAL_SHADOW_LOW
@@ -1064,6 +1083,7 @@ Shader "HDRP/Toon"
#pragma shader_feature_local_raytracing _NORMALMAP
#pragma shader_feature_local_raytracing _ALPHATEST_ON
#pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT
#pragma shader_feature_local _DISABLE_SSR_TRANSPARENT
#define SHADERPASS SHADERPASS_RAYTRACING_INDIRECT
@@ -1117,6 +1137,7 @@ Shader "HDRP/Toon"
#pragma shader_feature_local_raytracing _NORMALMAP
#pragma shader_feature_local_raytracing _ALPHATEST_ON
#pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT
#pragma shader_feature_local _DISABLE_SSR_TRANSPARENT
#define SHADERPASS SHADERPASS_RAYTRACING_FORWARD
@@ -1171,6 +1192,7 @@ Shader "HDRP/Toon"
#pragma shader_feature_local_raytracing _NORMALMAP
#pragma shader_feature_local_raytracing _ALPHATEST_ON
#pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT
#pragma shader_feature_local _DISABLE_SSR_TRANSPARENT
#define SHADERPASS SHADERPASS_RAYTRACING_GBUFFER
@@ -1206,6 +1228,7 @@ Shader "HDRP/Toon"
#pragma shader_feature_local_raytracing _NORMALMAP
#pragma shader_feature_local_raytracing _ALPHATEST_ON
#pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT
#pragma shader_feature_local _DISABLE_SSR_TRANSPARENT
#define SHADERPASS SHADERPASS_RAYTRACING_VISIBILITY
#pragma multi_compile _ TRANSPARENT_COLOR_SHADOW
@@ -1241,6 +1264,7 @@ Shader "HDRP/Toon"
#pragma shader_feature_local_raytracing _NORMALMAP
#pragma shader_feature_local_raytracing _ALPHATEST_ON
#pragma shader_feature_raytracing _SURFACE_TYPE_TRANSPARENT
#pragma shader_feature_local _DISABLE_SSR_TRANSPARENT
#define SHADERPASS SHADERPASS_PATH_TRACING