summaryrefslogtreecommitdiff
path: root/gfx/gl
diff options
context:
space:
mode:
authorDan Goodliffe <dan.goodliffe@octal.co.uk>2022-12-13 12:07:40 +0000
committerDan Goodliffe <dan.goodliffe@octal.co.uk>2022-12-13 12:07:40 +0000
commit6bff7aeb8e613b30323bc973f0506531e148ade3 (patch)
tree2aed6f9218a38e5bb271b257319e6acc2325de1a /gfx/gl
parentCache unView matrix for unprojecting mouse clicks, update only on camera move... (diff)
downloadilt-6bff7aeb8e613b30323bc973f0506531e148ade3.tar.bz2
ilt-6bff7aeb8e613b30323bc973f0506531e148ade3.tar.xz
ilt-6bff7aeb8e613b30323bc973f0506531e148ade3.zip
Maintain a camera's inverse view projection matrix
Diffstat (limited to 'gfx/gl')
-rw-r--r--gfx/gl/camera.cpp1
-rw-r--r--gfx/gl/camera.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/gfx/gl/camera.cpp b/gfx/gl/camera.cpp
index 72b5240..fadbfd7 100644
--- a/gfx/gl/camera.cpp
+++ b/gfx/gl/camera.cpp
@@ -23,4 +23,5 @@ Camera::updateView()
view = glm::lookAt(position, position + forward, up);
unView = glm::lookAt(::origin, forward, up);
viewProjection = projection * view;
+ inverseViewProjection = glm::inverse(viewProjection);
}
diff --git a/gfx/gl/camera.h b/gfx/gl/camera.h
index bcc7469..3182969 100644
--- a/gfx/gl/camera.h
+++ b/gfx/gl/camera.h
@@ -61,5 +61,5 @@ private:
float fov, aspect, near, far;
glm::mat4 projection;
glm::mat4 view, unView;
- glm::mat4 viewProjection;
+ glm::mat4 viewProjection, inverseViewProjection;
};