Skip to content

Commit

Permalink
Tighter light culling - fix directional lights colinear case
Browse files Browse the repository at this point in the history
Exactly the same fix as done already for non-directional lights.
  • Loading branch information
lawnjelly committed May 10, 2024
1 parent 2a347ab commit b09bc22
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions servers/visual/visual_server_light_culler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -227,9 +227,11 @@ bool VisualServerLightCuller::add_light_camera_planes_directional(const LightSou
// Create a third point from the light direction.
Vector3 pt2 = pt0 - p_light_source.dir;

// Create plane from 3 points.
Plane p(pt0, pt1, pt2);
add_cull_plane(p);
if (!_is_colinear_tri(pt0, pt1, pt2)) {
// Create plane from 3 points.
Plane p(pt0, pt1, pt2);
add_cull_plane(p);
}
}

// Last to 0 edge.
Expand All @@ -243,9 +245,11 @@ bool VisualServerLightCuller::add_light_camera_planes_directional(const LightSou
// Create a third point from the light direction.
Vector3 pt2 = pt0 - p_light_source.dir;

// Create plane from 3 points.
Plane p(pt0, pt1, pt2);
add_cull_plane(p);
if (!_is_colinear_tri(pt0, pt1, pt2)) {
// Create plane from 3 points.
Plane p(pt0, pt1, pt2);
add_cull_plane(p);
}
}

#ifdef LIGHT_CULLER_DEBUG_LOGGING
Expand Down

0 comments on commit b09bc22

Please sign in to comment.