From bc7337ca0d3acdfaa5d474bd07488744293925f9 Mon Sep 17 00:00:00 2001 From: notargs Date: Tue, 9 May 2023 15:50:18 +0900 Subject: [PATCH] =?UTF-8?q?Transparent=E3=81=AAOutline=E3=81=AE=E6=8F=8F?= =?UTF-8?q?=E7=94=BB=E3=81=AB=E5=AF=BE=E5=BF=9C=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MToon10/Runtime/MToonOutlineRenderFeature.cs | 13 +++++++------ .../VRM10/MToon10/Runtime/MToonOutlineRenderPass.cs | 9 +++++++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Assets/VRMShaders/VRM10/MToon10/Runtime/MToonOutlineRenderFeature.cs b/Assets/VRMShaders/VRM10/MToon10/Runtime/MToonOutlineRenderFeature.cs index 5320b2fd6..28b610f8d 100644 --- a/Assets/VRMShaders/VRM10/MToon10/Runtime/MToonOutlineRenderFeature.cs +++ b/Assets/VRMShaders/VRM10/MToon10/Runtime/MToonOutlineRenderFeature.cs @@ -1,23 +1,24 @@ #if MTOON_URP +using UnityEngine.Rendering; using UnityEngine.Rendering.Universal; namespace VRMShaders.VRM10.MToon10.Runtime { public sealed class MToonOutlineRenderFeature : ScriptableRendererFeature { - private MToonOutlineRenderPass _pass; + private MToonOutlineRenderPass _opaquePass; + private MToonOutlineRenderPass _transparentPass; public override void Create() { - _pass = new MToonOutlineRenderPass - { - renderPassEvent = RenderPassEvent.AfterRenderingOpaques - }; + _opaquePass = new MToonOutlineRenderPass(RenderPassEvent.AfterRenderingOpaques, RenderQueueRange.opaque); + _transparentPass = new MToonOutlineRenderPass(RenderPassEvent.BeforeRenderingTransparents, RenderQueueRange.transparent); } public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) { - renderer.EnqueuePass(_pass); + renderer.EnqueuePass(_opaquePass); + renderer.EnqueuePass(_transparentPass); } } } diff --git a/Assets/VRMShaders/VRM10/MToon10/Runtime/MToonOutlineRenderPass.cs b/Assets/VRMShaders/VRM10/MToon10/Runtime/MToonOutlineRenderPass.cs index 5fedcc594..9aa172f23 100644 --- a/Assets/VRMShaders/VRM10/MToon10/Runtime/MToonOutlineRenderPass.cs +++ b/Assets/VRMShaders/VRM10/MToon10/Runtime/MToonOutlineRenderPass.cs @@ -9,6 +9,14 @@ namespace VRMShaders.VRM10.MToon10.Runtime private const string ProfilerTag = nameof(MToonOutlineRenderPass); private readonly ProfilingSampler _profilingSampler = new ProfilingSampler(ProfilerTag); + private readonly RenderQueueRange _renderQueueRange; + + public MToonOutlineRenderPass(RenderPassEvent renderPassEvent, RenderQueueRange renderQueueRange) + { + _renderQueueRange = renderQueueRange; + this.renderPassEvent = renderPassEvent; + } + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { var cmd = CommandBufferPool.Get(); @@ -27,6 +35,7 @@ namespace VRMShaders.VRM10.MToon10.Runtime PerObjectData.ShadowMask }; var filteringSettings = FilteringSettings.defaultValue; + filteringSettings.renderQueueRange = _renderQueueRange; var renderStateBlock = new RenderStateBlock(RenderStateMask.Nothing); context.DrawRenderers(renderingData.cullResults, ref drawingSettings, ref filteringSettings, ref renderStateBlock);