Changed the outline layer and hair shadow caster layer from LayerMask to RenderingLayerMask;

This commit is contained in:
Misaki
2024-11-18 01:06:42 +09:00
parent 1f63c6f4cb
commit ae9b32162d
24 changed files with 345 additions and 188 deletions

View File

@@ -19,6 +19,8 @@ public class UTSHairShadowPass : DrawRenderersCustomPass
private RTHandle _outputRTHandle;
private bool _isEnable = false;
public UnityEngine.RenderingLayerMask renderingLayerMask;
protected override void Setup(ScriptableRenderContext renderContext, CommandBuffer cmd)
{
_outputRTHandle?.Release();
@@ -61,7 +63,7 @@ public class UTSHairShadowPass : DrawRenderersCustomPass
sortingCriteria = sortingCriteria,
excludeObjectMotionVectors = false,
stateBlock = stateBlock,
layerMask = layerMask,
renderingLayerMask = renderingLayerMask,
};
CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, ctx.renderContext.CreateRendererList(result));

View File

@@ -6,6 +6,8 @@ using UnityEngine.Rendering.HighDefinition;
[HideInInspector]
public class UTSOutlinePass : DrawRenderersCustomPass
{
public UnityEngine.RenderingLayerMask renderingLayerMask;
protected override void Execute(CustomPassContext ctx)
{
var utsRenderer = ctx.hdCamera.volumeStack.GetComponent<UTSRenderer>();
@@ -37,7 +39,7 @@ public class UTSOutlinePass : DrawRenderersCustomPass
overrideMaterial = overrideMaterial,
overrideMaterialPassIndex = (overrideMaterial != null) ? overrideMaterial.FindPass(overrideMaterialPassName) : 0,
stateBlock = stateBlock,
layerMask = layerMask,
renderingLayerMask = renderingLayerMask,
};
CoreUtils.DrawRendererList(ctx.renderContext, ctx.cmd, ctx.renderContext.CreateRendererList(result));

View File

@@ -1,4 +1,3 @@
using System.IO;
using UnityEngine;
using UnityEngine.Rendering.HighDefinition;
@@ -9,16 +8,14 @@ namespace Unity.Toonshader
#endif
public static class RegisterUTSRenderPass
{
private static readonly UTSRenderPassSetting _renderSetting;
private static readonly UTSRenderPassSettings _renderSetting;
private static readonly UTSOutlinePass _outlinePass;
private static readonly UTSHairShadowPass _hairShadowPass;
static RegisterUTSRenderPass()
{
var assetPath = Path.GetFileNameWithoutExtension(UTSRenderPassSetting.RENDERER_SETTING_ASSET_PATH);
_renderSetting = Resources.Load<UTSRenderPassSetting>(assetPath);
_renderSetting = UTSRenderPassSettings.GetOrCreateSettings();
if (_renderSetting == null)
{
return;
@@ -27,13 +24,13 @@ namespace Unity.Toonshader
_outlinePass = new()
{
name = "UTS Outline",
layerMask = _renderSetting.outlineSetting.layerMask
renderingLayerMask = _renderSetting.outlineSetting.renderingLayer
};
_hairShadowPass = new()
{
name = "UTS Hair Shadow Map",
layerMask = _renderSetting.hairShadowSetting.casterLayerMask,
renderingLayerMask = _renderSetting.hairShadowSetting.CasterRenderingLayer,
targetColorBuffer = CustomPass.TargetBuffer.None,
targetDepthBuffer = CustomPass.TargetBuffer.None,
};
@@ -61,10 +58,10 @@ namespace Unity.Toonshader
public static void NotifyRendererSettingChanged()
{
_outlinePass.enabled = _renderSetting.outlineSetting.enable;
_outlinePass.layerMask = _renderSetting.outlineSetting.layerMask;
_outlinePass.renderingLayerMask = _renderSetting.outlineSetting.renderingLayer;
_hairShadowPass.SetEnable(_renderSetting.hairShadowSetting.enable);
_hairShadowPass.layerMask = _renderSetting.hairShadowSetting.casterLayerMask;
_hairShadowPass.renderingLayerMask = _renderSetting.hairShadowSetting.CasterRenderingLayer;
}
}
}