diff --git a/Engine/Shaders/CSMPipeline/vertex.glsl b/Engine/Shaders/CSMPipeline/vertex.glsl index c4f19b7c..930084df 100644 --- a/Engine/Shaders/CSMPipeline/vertex.glsl +++ b/Engine/Shaders/CSMPipeline/vertex.glsl @@ -1,12 +1,11 @@ #version 460 core layout(location = 0) in vec3 aPos; -layout(std430, binding = 1) readonly buffer Matrices -{ - mat4 modelMatrices[]; +layout(std430, binding = 20) buffer MatricesCopy { + mat4 modelMatricesCopy[]; }; void main() { - gl_Position = modelMatrices[gl_DrawID] * vec4(aPos, 1.0); + gl_Position = modelMatricesCopy[gl_DrawID] * vec4(aPos, 1.0); } \ No newline at end of file diff --git a/Engine/Shaders/OmniShadowPipeline/vertex.glsl b/Engine/Shaders/OmniShadowPipeline/vertex.glsl index 1cf72ed8..2a7e247a 100644 --- a/Engine/Shaders/OmniShadowPipeline/vertex.glsl +++ b/Engine/Shaders/OmniShadowPipeline/vertex.glsl @@ -1,12 +1,11 @@ #version 460 core layout (location = 0) in vec3 aPos; -layout(std430, binding = 1) readonly buffer Matrices -{ - mat4 modelMatrices[]; +layout(std430, binding = 20) buffer MatricesCopy { + mat4 modelMatricesCopy[]; }; void main() { - gl_Position = modelMatrices[gl_DrawID] * vec4(aPos, 1.0); + gl_Position = modelMatricesCopy[gl_DrawID] * vec4(aPos, 1.0); } \ No newline at end of file diff --git a/Engine/src/Pipelines/PipelineCSM.cpp b/Engine/src/Pipelines/PipelineCSM.cpp index fdbdd559..fda314c8 100644 --- a/Engine/src/Pipelines/PipelineCSM.cpp +++ b/Engine/src/Pipelines/PipelineCSM.cpp @@ -82,7 +82,7 @@ void Prisma::PipelineCSM::update(glm::vec3 lightPos) glBindFramebuffer(GL_FRAMEBUFFER, m_fbo); glClear(GL_DEPTH_BUFFER_BIT); glCullFace(GL_FRONT); // peter panning - MeshIndirect::getInstance().renderMeshes(); + MeshIndirect::getInstance().renderMeshesCopy(); m_shaderAnimation->use(); diff --git a/Engine/src/Pipelines/PipelineOmniShadow.cpp b/Engine/src/Pipelines/PipelineOmniShadow.cpp index 69e52fa8..8b49965c 100644 --- a/Engine/src/Pipelines/PipelineOmniShadow.cpp +++ b/Engine/src/Pipelines/PipelineOmniShadow.cpp @@ -87,7 +87,7 @@ void Prisma::PipelineOmniShadow::update(glm::vec3 lightPos) m_shader->setFloat(m_farPlanePos, m_farPlane); m_shader->setVec3(m_lightPos, lightPos); - MeshIndirect::getInstance().renderMeshes(); + MeshIndirect::getInstance().renderMeshesCopy(); m_shaderAnimation->use();