From eb9e5dc0946fe700f6d508ef2ca7aecb1ee6c175 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sun, 21 Apr 2024 13:29:30 -0400 Subject: [PATCH] Implement more of g_CameraParameter --- renderer/include/rendersystem.h | 14 +++++++------- renderer/src/rendersystem.cpp | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/renderer/include/rendersystem.h b/renderer/include/rendersystem.h index 99fdb79..e794465 100644 --- a/renderer/include/rendersystem.h +++ b/renderer/include/rendersystem.h @@ -85,15 +85,15 @@ private: // Structure definitions from https://github.com/Shaderlayan/Ouroboros struct CameraParameter { - /* m[0] - m[2] */ glm::mat3x4 m_ViewMatrix; // TODO: does it need alignment? - /* m[3] - m[5] */ glm::mat3x4 m_InverseViewMatrix; - /* m[6] - m[9] */ glm::mat4 m_InverseViewProjectionMatrix; - glm::mat4 m_InverseProjectionMatrix; - glm::mat4 m_ProjectionMatrix; + glm::mat3x4 m_ViewMatrix; // TODO: does it need alignment? + glm::mat3x4 m_InverseViewMatrix; glm::mat4 m_ViewProjectionMatrix; - /*glm::mat4 m_MainViewToProjectionMatrix; + glm::mat4 m_InverseViewProjectionMatrix; + glm::mat4 m_InverseProjectionMatrix; + glm::mat4 m_ProjectionMatrix; // FIXME: ourburos is wrong, this is actually viewProjection + glm::mat4 m_MainViewToProjectionMatrix; glm::vec3 m_EyePosition; - glm::vec3 m_LookAtVector;*/ + glm::vec3 m_LookAtVector; }; UniformBuffer g_CameraParameter; diff --git a/renderer/src/rendersystem.cpp b/renderer/src/rendersystem.cpp index 2fdfa87..f89643e 100644 --- a/renderer/src/rendersystem.cpp +++ b/renderer/src/rendersystem.cpp @@ -168,15 +168,15 @@ void RenderSystem::render(uint32_t imageIndex, VkCommandBuffer commandBuffer) glm::mat4 viewMatrix = m_renderer.view; glm::mat4 viewProjectionMatrix = projectionMatrix * viewMatrix; - cameraParameter.m_ViewMatrix = viewMatrix; - cameraParameter.m_InverseViewMatrix = glm::inverse(viewMatrix); + cameraParameter.m_ViewMatrix = glm::transpose(viewMatrix); + cameraParameter.m_InverseViewMatrix = glm::transpose(glm::inverse(viewMatrix)); cameraParameter.m_ViewProjectionMatrix = glm::transpose(viewProjectionMatrix); - cameraParameter.m_InverseViewProjectionMatrix = glm::inverse(viewProjectionMatrix); - cameraParameter.m_InverseProjectionMatrix = glm::inverse(projectionMatrix); - cameraParameter.m_ProjectionMatrix = projectionMatrix; - /*cameraParameter.m_MainViewToProjectionMatrix = glm::mat4(1.0f); // ??? + cameraParameter.m_InverseViewProjectionMatrix = glm::transpose(glm::inverse(viewProjectionMatrix)); + cameraParameter.m_InverseProjectionMatrix = glm::transpose(glm::inverse(projectionMatrix)); + cameraParameter.m_ProjectionMatrix = cameraParameter.m_ViewProjectionMatrix; + cameraParameter.m_MainViewToProjectionMatrix = cameraParameter.m_InverseViewProjectionMatrix; cameraParameter.m_EyePosition = glm::vec3(5.0f); // placeholder - cameraParameter.m_LookAtVector = glm::vec3(0.0f); // placeholder*/ + cameraParameter.m_LookAtVector = glm::vec3(0.0f); // placeholder copyDataToUniform(g_CameraParameter, &cameraParameter, sizeof(CameraParameter));