frustum
Frustum culling for efficient 3D rendering.
This module provides both an object-oriented Frustum class for individual tests and a highly optimized, Numba-compiled vectorized function for testing thousands of chunks simultaneously against the camera’s view frustum.
- class frustum.Frustum(camera)[source]
Bases:
objectCalculates the camera’s viewing frustum planes and boundaries dynamically based on the Field of View and Aspect Ratio.
- Parameters:
camera (Any) – The main camera instance tracking the player’s perspective.
- frustum.frustum_cull_fast(chunk_centers, out_mask, camera_position, camera_forward, camera_right, camera_up, tangent_y, tangent_x, factor_y, factor_x)[source]
Numba-optimized vectorized frustum culling.
- Parameters:
chunk_centers (Any) – Nx3 array of chunk center coordinates.
out_mask (Any) – Preallocated boolean array that will be written with visibility flags.
camera_position (Any) – Camera position (3,) array.
camera_forward (Any) – Camera forward vector (3,) array.
camera_right (Any) – Camera right vector (3,) array.
camera_up (Any) – Camera up vector (3,) array.
tangent_y (float) – Tangent of half-vertical FOV.
tangent_x (float) – Tangent of half-horizontal FOV.
factor_y (float) – Precomputed vertical factor used for bounds checks.
factor_x (float) – Precomputed horizontal factor used for bounds checks.
- Returns:
The out_mask array with booleans indicating visibility for each center.
- Return type: