fix matrices more properly

This commit is contained in:
Ivan Avdeev 2021-01-25 09:32:33 -08:00
parent 5d0146e17a
commit b9841ed6a8
2 changed files with 5 additions and 20 deletions

View File

@ -1,9 +1,6 @@
#version 450
layout(set=0,binding=0) uniform UBO {
mat4 worldview;
mat4 projection;
mat4 vkfixup;
mat4 mvp;
} ubo;
@ -13,5 +10,5 @@ layout(location=0) out vec3 vPos;
void main() {
vPos = aPos.xyz;
gl_Position = transpose(ubo.vkfixup) * transpose(ubo.mvp) * vec4(aPos.xyz, 1.);
gl_Position = ubo.mvp * vec4(aPos.xyz, 1.);
}

View File

@ -34,9 +34,6 @@ static struct {
} gmap;
typedef struct {
matrix4x4 worldview;
matrix4x4 projection;
matrix4x4 vkfixup;
matrix4x4 mvp;
} uniform_data_t;
@ -275,8 +272,7 @@ void VK_MapRender( void )
{
{
uniform_data_t *ubo = gmap.uniform_buffer.mapped;
matrix4x4 worldview={0}, projection={0}, mvp={0}, tmp={0};
//uniform_data_t uniform_data = {0};
matrix4x4 worldview={0}, projection={0}, mvp={0}, viewproj={0};
// Vulkan has Y pointing down, and z should end up in (0, 1)
const matrix4x4 vk_proj_fixup = {
@ -288,18 +284,10 @@ void VK_MapRender( void )
R_SetupModelviewMatrix( worldview );
R_SetupProjectionMatrix( projection );
memcpy(&ubo->worldview, worldview, sizeof(matrix4x4));
memcpy(&ubo->projection, projection, sizeof(matrix4x4));
Matrix4x4_Concat( mvp, projection, worldview);
memcpy(&ubo->mvp, mvp, sizeof(matrix4x4));
memcpy(&ubo->vkfixup, vk_proj_fixup, sizeof(matrix4x4));
//Matrix4x4_Concat( mvp, projection, worldview);
//Matrix4x4_Concat( mvp, tmp, worldview );
//Matrix4x4_Concat( tmp, vk_proj_fixup, mvp);
//memcpy(gmap.uniform_buffer.mapped, tmp, sizeof(tmp));
//memcpy(gmap.uniform_buffer.mapped, mvp, sizeof(tmp));
//memcpy(gmap.uniform_buffer.mapped, tmp, sizeof(tmp));
Matrix4x4_Concat( viewproj, projection, worldview);
Matrix4x4_Concat( mvp, vk_proj_fixup, viewproj );
Matrix4x4_ToArrayFloatGL( mvp, (float*)ubo->mvp );
/*
vkCmdUpdateBuffer(vk_core.cb, gmap.uniform_buffer.buffer, 0, sizeof(uniform_data), &uniform_data);