summaryrefslogtreecommitdiff
path: root/src/gfx/state.rs
diff options
context:
space:
mode:
authorLizzy Fleckenstein <eliasfleckenstein@web.de>2023-05-15 18:14:14 +0200
committerLizzy Fleckenstein <eliasfleckenstein@web.de>2023-05-15 18:14:14 +0200
commit6f887d475d32f32ebdd1f914f5067031b12d025d (patch)
tree95800ba09223eb2107d95181bee53dde7733749e /src/gfx/state.rs
parentf1e5cdf25d1fd905fa307232124c361851b51758 (diff)
downloadmt_client-6f887d475d32f32ebdd1f914f5067031b12d025d.tar.xz
Frustum culling
Diffstat (limited to 'src/gfx/state.rs')
-rw-r--r--src/gfx/state.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gfx/state.rs b/src/gfx/state.rs
index 43ac41c..1af6653 100644
--- a/src/gfx/state.rs
+++ b/src/gfx/state.rs
@@ -1,5 +1,6 @@
use super::util::MatrixUniform;
use cgmath::{prelude::*, Deg, Matrix4, Rad};
+use collision::Frustum;
use fps_camera::{FirstPerson, FirstPersonSettings};
use std::time::Duration;
@@ -11,6 +12,7 @@ pub struct State {
pub fov: Rad<f32>,
pub view: Matrix4<f32>,
pub proj: Matrix4<f32>,
+ pub frustum: Frustum<f32>,
pub camera: FirstPerson,
pub camera_uniform: MatrixUniform,
pub camera_bind_group_layout: wgpu::BindGroupLayout,
@@ -100,6 +102,7 @@ impl State {
fov: Deg(90.0).into(),
proj: Matrix4::identity(),
view: Matrix4::identity(),
+ frustum: Frustum::from_matrix4(Matrix4::identity()).unwrap(),
camera,
camera_uniform,
camera_bind_group_layout,
@@ -174,6 +177,7 @@ impl State {
0.1,
100000.0,
);
+ self.frustum = Frustum::from_matrix4(self.proj).unwrap();
}
pub fn update(&mut self, dt: Duration) {