16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-22 19:49:19 +02:00

inversed view transform uniform

This commit is contained in:
tmj-fstate
2019-11-29 16:20:21 +01:00
parent f9febd5887
commit 194400e1af
3 changed files with 5 additions and 3 deletions

View File

@@ -65,6 +65,7 @@ void gl::glsl_common_setup()
{ {
mat4 projection; mat4 projection;
mat4 lightview; mat4 lightview;
mat4 inv_view;
vec3 scene_extra; vec3 scene_extra;
float time; float time;
}; };

View File

@@ -37,11 +37,12 @@ namespace gl
{ {
glm::mat4 projection; glm::mat4 projection;
glm::mat4 lightview; glm::mat4 lightview;
glm::mat4 inv_view;
glm::vec3 scene_extra; glm::vec3 scene_extra;
float time; float time;
}; };
static_assert(sizeof(scene_ubs) == 144, "bad size of ubs"); static_assert(sizeof(scene_ubs) == 208, "bad size of ubs");
const size_t MAX_PARAMS = 3; const size_t MAX_PARAMS = 3;

View File

@@ -555,6 +555,7 @@ void opengl33_renderer::Render_pass(viewport_config &vp, rendermode const Mode)
scene_ubs.time = Timer::GetTime(); scene_ubs.time = Timer::GetTime();
scene_ubs.projection = OpenGLMatrices.data(GL_PROJECTION); scene_ubs.projection = OpenGLMatrices.data(GL_PROJECTION);
scene_ubs.inv_view = glm::inverse( glm::mat4{ glm::mat3{ m_renderpass.pass_camera.modelview() } } );
scene_ubo->update(scene_ubs); scene_ubo->update(scene_ubs);
scene_ubo->bind_uniform(); scene_ubo->bind_uniform();
@@ -1309,7 +1310,6 @@ void opengl33_renderer::setup_matrices()
{ {
OpenGLMatrices.mode(GL_PROJECTION); OpenGLMatrices.mode(GL_PROJECTION);
OpenGLMatrices.load_matrix(m_renderpass.pass_camera.projection()); OpenGLMatrices.load_matrix(m_renderpass.pass_camera.projection());
// trim modelview matrix just to rotation, since rendering is done in camera-centric world space // trim modelview matrix just to rotation, since rendering is done in camera-centric world space
OpenGLMatrices.mode(GL_MODELVIEW); OpenGLMatrices.mode(GL_MODELVIEW);
OpenGLMatrices.load_matrix(glm::mat4(glm::mat3(m_renderpass.pass_camera.modelview()))); OpenGLMatrices.load_matrix(glm::mat4(glm::mat3(m_renderpass.pass_camera.modelview())));