diff --git a/SDK/src/NDK/Systems/RenderSystem.cpp b/SDK/src/NDK/Systems/RenderSystem.cpp index 829d2b398..7b90761b6 100644 --- a/SDK/src/NDK/Systems/RenderSystem.cpp +++ b/SDK/src/NDK/Systems/RenderSystem.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -169,6 +170,7 @@ namespace Ndk Nz::Renderer::SetMatrix(Nz::MatrixType_Projection, Nz::Matrix4f::Ortho(0.f, 100.f, 100.f, 0.f, 1.f, 100.f)); Nz::Renderer::SetMatrix(Nz::MatrixType_View, Nz::Matrix4f::ViewMatrix(lightNode.GetRotation() * Nz::Vector3f::Forward() * 100.f, lightNode.GetRotation())); + m_shadowTechnique.Clear(dummySceneData); m_shadowTechnique.Draw(dummySceneData); } } @@ -233,6 +235,7 @@ namespace Ndk graphicsComponent.AddToRenderQueue(renderQueue); } + m_shadowTechnique.Clear(dummySceneData); m_shadowTechnique.Draw(dummySceneData); } break; @@ -260,6 +263,7 @@ namespace Ndk graphicsComponent.AddToRenderQueue(renderQueue); } + m_shadowTechnique.Clear(dummySceneData); m_shadowTechnique.Draw(dummySceneData); break; } diff --git a/include/Nazara/Graphics/DepthRenderTechnique.hpp b/include/Nazara/Graphics/DepthRenderTechnique.hpp index 0b265ccc3..ac75f7e52 100644 --- a/include/Nazara/Graphics/DepthRenderTechnique.hpp +++ b/include/Nazara/Graphics/DepthRenderTechnique.hpp @@ -24,6 +24,7 @@ namespace Nz DepthRenderTechnique(); ~DepthRenderTechnique() = default; + void Clear(const SceneData& sceneData) const override; bool Draw(const SceneData& sceneData) const override; AbstractRenderQueue* GetRenderQueue() override; diff --git a/src/Nazara/Graphics/DepthRenderTechnique.cpp b/src/Nazara/Graphics/DepthRenderTechnique.cpp index 107043bce..1b2dc03f1 100644 --- a/src/Nazara/Graphics/DepthRenderTechnique.cpp +++ b/src/Nazara/Graphics/DepthRenderTechnique.cpp @@ -48,7 +48,7 @@ namespace Nz m_spriteBuffer.Reset(VertexDeclaration::Get(VertexLayout_XYZ_Color_UV), &m_vertexBuffer); } - bool DepthRenderTechnique::Draw(const SceneData& sceneData) const + void DepthRenderTechnique::Clear(const SceneData& sceneData) const { Renderer::Enable(RendererParameter_DepthBuffer, true); Renderer::Enable(RendererParameter_DepthWrite, true); @@ -57,7 +57,10 @@ namespace Nz // Just in case the background does render depth if (sceneData.background) sceneData.background->Draw(sceneData.viewer); + } + bool DepthRenderTechnique::Draw(const SceneData& sceneData) const + { for (auto& pair : m_renderQueue.layers) { ForwardRenderQueue::Layer& layer = pair.second;