mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
inversed view transform uniform
This commit is contained in:
@@ -65,6 +65,7 @@ void gl::glsl_common_setup()
|
||||
{
|
||||
mat4 projection;
|
||||
mat4 lightview;
|
||||
mat4 inv_view;
|
||||
vec3 scene_extra;
|
||||
float time;
|
||||
};
|
||||
|
||||
3
gl/ubo.h
3
gl/ubo.h
@@ -37,11 +37,12 @@ namespace gl
|
||||
{
|
||||
glm::mat4 projection;
|
||||
glm::mat4 lightview;
|
||||
glm::mat4 inv_view;
|
||||
glm::vec3 scene_extra;
|
||||
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;
|
||||
|
||||
|
||||
@@ -555,7 +555,8 @@ void opengl33_renderer::Render_pass(viewport_config &vp, rendermode const Mode)
|
||||
|
||||
scene_ubs.time = Timer::GetTime();
|
||||
scene_ubs.projection = OpenGLMatrices.data(GL_PROJECTION);
|
||||
scene_ubo->update(scene_ubs);
|
||||
scene_ubs.inv_view = glm::inverse( glm::mat4{ glm::mat3{ m_renderpass.pass_camera.modelview() } } );
|
||||
scene_ubo->update(scene_ubs);
|
||||
scene_ubo->bind_uniform();
|
||||
|
||||
m_colorpass = m_renderpass;
|
||||
@@ -1309,7 +1310,6 @@ void opengl33_renderer::setup_matrices()
|
||||
{
|
||||
OpenGLMatrices.mode(GL_PROJECTION);
|
||||
OpenGLMatrices.load_matrix(m_renderpass.pass_camera.projection());
|
||||
|
||||
// trim modelview matrix just to rotation, since rendering is done in camera-centric world space
|
||||
OpenGLMatrices.mode(GL_MODELVIEW);
|
||||
OpenGLMatrices.load_matrix(glm::mat4(glm::mat3(m_renderpass.pass_camera.modelview())));
|
||||
|
||||
Reference in New Issue
Block a user