pub struct ViewFrustum {
pub pos: [f32; 3],
pub right: [f32; 3],
pub down: [f32; 3],
pub forward: [f32; 3],
pub half_w: f32,
pub half_h: f32,
pub far: f32,
}Expand description
View frustum for CPU instance culling, in world space. Built each
frame from the world camera. half_w/half_h are the tangents of
the half-FOV (so the side planes are |x| <= half_w * z etc. in
camera space).
Fields§
§pos: [f32; 3]Eye position, world voxel units.
right: [f32; 3]Unit basis toward screen-right (right-handed with down/forward).
down: [f32; 3]Unit basis toward screen-down (+z is down in voxlap space).
forward: [f32; 3]Unit view direction; the near side of the frustum is the plane
z = 0 in this camera space.
half_w: f32tan(fov_x / 2): a camera-space point is inside the side planes
when |x| <= half_w * z.
half_h: f32tan(fov_y / 2): inside the top/bottom planes when
|y| <= half_h * z.
far: f32Far-plane distance along forward, world units — instances whose
bounding sphere lies wholly beyond it are culled.
Trait Implementations§
Source§impl Clone for ViewFrustum
impl Clone for ViewFrustum
Source§fn clone(&self) -> ViewFrustum
fn clone(&self) -> ViewFrustum
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for ViewFrustum
Auto Trait Implementations§
impl Freeze for ViewFrustum
impl RefUnwindSafe for ViewFrustum
impl Send for ViewFrustum
impl Sync for ViewFrustum
impl Unpin for ViewFrustum
impl UnsafeUnpin for ViewFrustum
impl UnwindSafe for ViewFrustum
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more