1
Fork 0
mirror of https://github.com/redstrate/Novus.git synced 2025-04-25 21:27:45 +00:00

Implement more of g_CameraParameter

This commit is contained in:
Joshua Goins 2024-04-21 13:29:30 -04:00
parent ec47e52f80
commit eb9e5dc094
2 changed files with 14 additions and 14 deletions

View file

@ -85,15 +85,15 @@ private:
// Structure definitions from https://github.com/Shaderlayan/Ouroboros // Structure definitions from https://github.com/Shaderlayan/Ouroboros
struct CameraParameter { struct CameraParameter {
/* m[0] - m[2] */ glm::mat3x4 m_ViewMatrix; // TODO: does it need alignment? glm::mat3x4 m_ViewMatrix; // TODO: does it need alignment?
/* m[3] - m[5] */ glm::mat3x4 m_InverseViewMatrix; glm::mat3x4 m_InverseViewMatrix;
/* m[6] - m[9] */ glm::mat4 m_InverseViewProjectionMatrix;
glm::mat4 m_InverseProjectionMatrix;
glm::mat4 m_ProjectionMatrix;
glm::mat4 m_ViewProjectionMatrix; 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_EyePosition;
glm::vec3 m_LookAtVector;*/ glm::vec3 m_LookAtVector;
}; };
UniformBuffer g_CameraParameter; UniformBuffer g_CameraParameter;

View file

@ -168,15 +168,15 @@ void RenderSystem::render(uint32_t imageIndex, VkCommandBuffer commandBuffer)
glm::mat4 viewMatrix = m_renderer.view; glm::mat4 viewMatrix = m_renderer.view;
glm::mat4 viewProjectionMatrix = projectionMatrix * viewMatrix; glm::mat4 viewProjectionMatrix = projectionMatrix * viewMatrix;
cameraParameter.m_ViewMatrix = viewMatrix; cameraParameter.m_ViewMatrix = glm::transpose(viewMatrix);
cameraParameter.m_InverseViewMatrix = glm::inverse(viewMatrix); cameraParameter.m_InverseViewMatrix = glm::transpose(glm::inverse(viewMatrix));
cameraParameter.m_ViewProjectionMatrix = glm::transpose(viewProjectionMatrix); cameraParameter.m_ViewProjectionMatrix = glm::transpose(viewProjectionMatrix);
cameraParameter.m_InverseViewProjectionMatrix = glm::inverse(viewProjectionMatrix); cameraParameter.m_InverseViewProjectionMatrix = glm::transpose(glm::inverse(viewProjectionMatrix));
cameraParameter.m_InverseProjectionMatrix = glm::inverse(projectionMatrix); cameraParameter.m_InverseProjectionMatrix = glm::transpose(glm::inverse(projectionMatrix));
cameraParameter.m_ProjectionMatrix = projectionMatrix; cameraParameter.m_ProjectionMatrix = cameraParameter.m_ViewProjectionMatrix;
/*cameraParameter.m_MainViewToProjectionMatrix = glm::mat4(1.0f); // ??? cameraParameter.m_MainViewToProjectionMatrix = cameraParameter.m_InverseViewProjectionMatrix;
cameraParameter.m_EyePosition = glm::vec3(5.0f); // placeholder 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)); copyDataToUniform(g_CameraParameter, &cameraParameter, sizeof(CameraParameter));