mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 17:29:18 +02:00
inversed view transform uniform
This commit is contained in:
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
3
gl/ubo.h
3
gl/ubo.h
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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())));
|
||||||
|
|||||||
Reference in New Issue
Block a user