enable camera frustum culling for bsp rendering
This commit is contained in:
parent
704b14b2a0
commit
ac8ab8d60d
4 changed files with 36 additions and 82 deletions
|
|
@ -486,6 +486,8 @@ void pxl8_bsp_render_solid(
|
|||
if (rendered_faces[face_id]) continue;
|
||||
rendered_faces[face_id] = 1;
|
||||
|
||||
if (!face_in_frustum(bsp, face_id, frustum)) continue;
|
||||
|
||||
pxl8_bsp_render_face(gfx, bsp, face_id, texture_id);
|
||||
}
|
||||
}
|
||||
|
|
@ -500,6 +502,9 @@ void pxl8_bsp_render_wireframe(
|
|||
) {
|
||||
if (!gfx || !bsp) return;
|
||||
|
||||
const pxl8_frustum* frustum = pxl8_3d_get_frustum(gfx);
|
||||
if (!frustum) return;
|
||||
|
||||
i32 camera_leaf = pxl8_bsp_find_leaf(bsp, camera_pos);
|
||||
|
||||
for (u32 leaf_id = 0; leaf_id < bsp->num_leafs; leaf_id++) {
|
||||
|
|
@ -514,6 +519,8 @@ void pxl8_bsp_render_wireframe(
|
|||
u32 face_id = bsp->marksurfaces[surf_idx];
|
||||
if (face_id >= bsp->num_faces) continue;
|
||||
|
||||
if (!face_in_frustum(bsp, face_id, frustum)) continue;
|
||||
|
||||
const pxl8_bsp_face* face = &bsp->faces[face_id];
|
||||
|
||||
for (u32 e = 0; e < face->num_edges; e++) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue