diff --git a/Sources/Overload/OvEditor/src/OvEditor/Rendering/DebugSceneRenderer.cpp b/Sources/Overload/OvEditor/src/OvEditor/Rendering/DebugSceneRenderer.cpp index 3768326f7..25fe10661 100644 --- a/Sources/Overload/OvEditor/src/OvEditor/Rendering/DebugSceneRenderer.cpp +++ b/Sources/Overload/OvEditor/src/OvEditor/Rendering/DebugSceneRenderer.cpp @@ -173,6 +173,9 @@ class DebugActorRenderPass : public OvRendering::Core::ARenderPass { TracyGpuZone("DebugActorRenderPass"); + // Clear stencil buffer for outline rendering + m_renderer.Clear(false, false, true); + auto& debugSceneDescriptor = m_renderer.GetDescriptor(); if (debugSceneDescriptor.selectedActor) @@ -572,7 +575,7 @@ OvEditor::Rendering::DebugSceneRenderer::DebugSceneRenderer(OvRendering::Context AddFeature(); AddFeature(); - AddPass("Grid", OvRendering::Settings::ERenderPassOrder::Debug); + AddPass("Grid", OvRendering::Settings::ERenderPassOrder::Opaque + 1); AddPass("Debug Cameras", OvRendering::Settings::ERenderPassOrder::Debug); AddPass("Debug Lights", OvRendering::Settings::ERenderPassOrder::Debug); AddPass("Debug Actor", OvRendering::Settings::ERenderPassOrder::Debug); diff --git a/Sources/Overload/OvEditor/src/OvEditor/Rendering/GridRenderPass.cpp b/Sources/Overload/OvEditor/src/OvEditor/Rendering/GridRenderPass.cpp index 6c231aaf9..a53e56c60 100644 --- a/Sources/Overload/OvEditor/src/OvEditor/Rendering/GridRenderPass.cpp +++ b/Sources/Overload/OvEditor/src/OvEditor/Rendering/GridRenderPass.cpp @@ -23,7 +23,7 @@ OvEditor::Rendering::GridRenderPass::GridRenderPass(OvRendering::Core::Composite m_gridMaterial.SetBlendable(true); m_gridMaterial.SetBackfaceCulling(false); m_gridMaterial.SetDepthWriting(false); - m_gridMaterial.SetDepthTest(false); + m_gridMaterial.SetDepthTest(true); } void OvEditor::Rendering::GridRenderPass::Draw(OvRendering::Data::PipelineState p_pso) @@ -47,24 +47,10 @@ void OvEditor::Rendering::GridRenderPass::Draw(OvRendering::Data::PipelineState m_gridMaterial.SetProperty("u_Color", gridDescriptor.gridColor); - // Stencil test to ensure the grid doesn't render over any other scene geometry - pso.stencilTest = true; - pso.stencilOpFail = OvRendering::Settings::EOperation::KEEP; - pso.depthOpFail = OvRendering::Settings::EOperation::KEEP; - pso.bothOpFail = OvRendering::Settings::EOperation::REPLACE; - pso.stencilFuncOp = OvRendering::Settings::EComparaisonAlgorithm::NOTEQUAL; - pso.stencilFuncRef = 1; - pso.stencilFuncMask = 0xFF; - m_renderer.GetFeature() .DrawModelWithSingleMaterial(pso, *EDITOR_CONTEXT(editorResources)->GetModel("Plane"), m_gridMaterial, model); - pso.stencilTest = false; - debugShapeRenderer.DrawLine(pso, OvMaths::FVector3(-gridSize + gridDescriptor.viewPosition.x, 0.0f, 0.0f), OvMaths::FVector3(gridSize + gridDescriptor.viewPosition.x, 0.0f, 0.0f), OvMaths::FVector3(1.0f, 0.0f, 0.0f), 1.0f); debugShapeRenderer.DrawLine(pso, OvMaths::FVector3(0.0f, -gridSize + gridDescriptor.viewPosition.y, 0.0f), OvMaths::FVector3(0.0f, gridSize + gridDescriptor.viewPosition.y, 0.0f), OvMaths::FVector3(0.0f, 1.0f, 0.0f), 1.0f); debugShapeRenderer.DrawLine(pso, OvMaths::FVector3(0.0f, 0.0f, -gridSize + gridDescriptor.viewPosition.z), OvMaths::FVector3(0.0f, 0.0f, gridSize + gridDescriptor.viewPosition.z), OvMaths::FVector3(0.0f, 0.0f, 1.0f), 1.0f); - - // Clear stencil buffer - m_renderer.Clear(false, false, true); }