mirror of
https://github.com/redstrate/Novus.git
synced 2025-06-06 13:17:46 +00:00
Fix view position in Dawntrail renderer
This commit is contained in:
parent
05ab7dfc21
commit
fe2e1a83ae
2 changed files with 6 additions and 4 deletions
|
@ -4,6 +4,7 @@
|
|||
#pragma once
|
||||
|
||||
// Structure definitions from https://github.com/Shaderlayan/Ouroboros
|
||||
// TODO: I really need to update these names, they're all wrong for DT?
|
||||
struct CameraParameter {
|
||||
glm::mat3x4 m_InverseViewMatrix;
|
||||
glm::mat3x4 m_ViewMatrix; // TODO: does it need alignment?
|
||||
|
@ -18,7 +19,7 @@ struct CameraParameter {
|
|||
glm::mat4 m_unknownMatrix; // used in a vertex shader in characterlegacy.shpk
|
||||
glm::vec4 m_unknown2[11];
|
||||
// Dawntrail: something accesses the z and w of this
|
||||
glm::vec4 m_unknown3;
|
||||
glm::mat4 m_unknown4; // noooo idea
|
||||
};
|
||||
|
||||
const int JOINT_MATRIX_SIZE_ARR = 64;
|
||||
|
|
|
@ -282,7 +282,8 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, Camera &camera, Scene &
|
|||
const glm::mat4 viewProjectionMatrix = camera.perspective * camera.view;
|
||||
|
||||
// unknown
|
||||
cameraParameter.m_unknownMatrix = glm::transpose(camera.perspective);
|
||||
cameraParameter.m_unknownMatrix = glm::mat4(1.0f);
|
||||
cameraParameter.m_unknown4 = glm::mat4(1.0f);
|
||||
|
||||
cameraParameter.m_ViewMatrix = glm::transpose(camera.view);
|
||||
cameraParameter.m_InverseViewMatrix = cameraParameter.m_unknownMatrix;
|
||||
|
@ -293,14 +294,14 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, Camera &camera, Scene &
|
|||
cameraParameter.m_InverseProjectionMatrix = glm::transpose(glm::inverse(viewProjectionMatrix));
|
||||
cameraParameter.m_ProjectionMatrix = glm::transpose(viewProjectionMatrix);
|
||||
|
||||
cameraParameter.m_MainViewToProjectionMatrix = glm::transpose(camera.perspective);
|
||||
cameraParameter.m_MainViewToProjectionMatrix = glm::transpose(viewProjectionMatrix);
|
||||
cameraParameter.m_EyePosition = glm::vec4(camera.position, 0.0f);
|
||||
cameraParameter.m_LookAtVector = glm::vec4(0.0f); // placeholder
|
||||
|
||||
m_device.copyToBuffer(g_CameraParameter, &cameraParameter, sizeof(CameraParameter));
|
||||
|
||||
WorldViewMatrix worldViewMatrix;
|
||||
worldViewMatrix.m_WorldViewMatrix = cameraParameter.m_ViewMatrix;
|
||||
worldViewMatrix.m_WorldViewMatrix = glm::mat4(1.0f);
|
||||
worldViewMatrix.m_EyePosition = glm::vec4(camera.position, 0.0f);
|
||||
|
||||
m_device.copyToBuffer(g_WorldViewMatrix, &worldViewMatrix, sizeof(WorldViewMatrix));
|
||||
|
|
Loading…
Add table
Reference in a new issue