Added translaprent support

This commit is contained in:
2025-05-22 22:28:48 +09:00
parent 59b46bce44
commit 5b2eb17148
28 changed files with 357 additions and 214 deletions

View File

@@ -127,9 +127,9 @@ namespace Misaki.HdrpToon
}
}
private bool ShouldReallocateHairShadowBuffer()
private static bool IsRTHandleValid(RTHandle rtHandle)
{
return _hairShadowRTHandle == null || _hairShadowRTHandle.rt == null || !_hairShadowRTHandle.rt.IsCreated() || _needReallocateHairShadow;
return rtHandle != null && rtHandle.rt != null && rtHandle.rt.IsCreated();
}
private void ReallocateHairShadowBuffer()
@@ -156,11 +156,6 @@ namespace Misaki.HdrpToon
_needReallocateHairShadow = false;
}
private bool ShouldReallocateHairBlendingBuffer()
{
return _hairBlendingRTHandle == null || _hairBlendingRTHandle.rt == null || !_hairBlendingRTHandle.rt.IsCreated() || _needReallocateHairBlending;
}
private void ReallocateHairBlendingBuffer()
{
#if UNITY_EDITOR
@@ -262,7 +257,7 @@ namespace Misaki.HdrpToon
return;
}
if (ShouldReallocateHairShadowBuffer())
if (!IsRTHandleValid(_hairShadowRTHandle) || _needReallocateHairShadow)
{
ReallocateHairShadowBuffer();
return;
@@ -272,7 +267,7 @@ namespace Misaki.HdrpToon
{
CoreUtils.SetRenderTarget(ctx.cmd, _hairShadowRTHandle, ClearFlag.Depth);
var result = new RendererListDesc(UtsShaderPassName.hairShadowCasterPassId, ctx.cullingResults, ctx.hdCamera.camera)
var result = new RendererListDesc(UTSPassName.hairShadowCasterPassId, ctx.cullingResults, ctx.hdCamera.camera)
{
renderQueueRange = GetRenderQueueRange(RenderQueueType.AllOpaque),
sortingCriteria = SortingCriteria.CommonOpaque,
@@ -296,7 +291,7 @@ namespace Misaki.HdrpToon
return;
}
if (ShouldReallocateHairBlendingBuffer())
if (!IsRTHandleValid(_hairBlendingRTHandle) || _needReallocateHairBlending)
{
ReallocateHairBlendingBuffer();
return;
@@ -306,7 +301,7 @@ namespace Misaki.HdrpToon
{
CoreUtils.SetRenderTarget(ctx.cmd, _hairBlendingRTHandle, _hairBlendingDepthRTHandle, ClearFlag.Color | ClearFlag.Depth);
var result = new RendererListDesc(UtsShaderPassName.hairBlendingTargetPassId, ctx.cullingResults, ctx.hdCamera.camera)
var result = new RendererListDesc(UTSPassName.hairBlendingTargetPassId, ctx.cullingResults, ctx.hdCamera.camera)
{
renderQueueRange = GetRenderQueueRange(RenderQueueType.AllOpaque),
sortingCriteria = SortingCriteria.CommonOpaque,