Fix some issues with verify-lods
This commit is contained in:
parent
a5f3e3f539
commit
169a946914
|
|
@ -220,7 +220,7 @@ ConfigVariableDouble lod_fade_time
|
|||
"transitions between its different levels."));
|
||||
|
||||
ConfigVariableBool verify_lods
|
||||
("verify-lods", false,
|
||||
("verify-lods", true,
|
||||
PRC_DESC("When this is true, LODNodes will test when they are rendered to "
|
||||
"ensure that each child's geometry fits entirely within the radius "
|
||||
"defined by its switch-out distance. When it is false, LODNodes "
|
||||
|
|
|
|||
|
|
@ -586,6 +586,7 @@ do_verify_child_bounds(const LODNode::CData *cdata, int index,
|
|||
if (flags == 0) {
|
||||
// This child's radius doesn't even come close to containing
|
||||
// its volume.
|
||||
nassertr(!gbv->is_infinite(), false);
|
||||
sphere.extend_by(gbv);
|
||||
suggested_radius = sphere.get_radius();
|
||||
return false;
|
||||
|
|
@ -621,9 +622,13 @@ do_verify_child_bounds(const LODNode::CData *cdata, int index,
|
|||
// So if any part of this inscribed sphere is outside of the
|
||||
// radius, then the radius is bad.
|
||||
flags = sphere.contains(&box_sphere);
|
||||
if (flags != BoundingVolume::IF_all) {
|
||||
if ((flags & BoundingVolume::IF_all) == 0) {
|
||||
// No good.
|
||||
sphere.extend_by(gbv);
|
||||
if (gbv->is_infinite()) {
|
||||
sphere.extend_by(&box_sphere);
|
||||
} else {
|
||||
sphere.extend_by(gbv);
|
||||
}
|
||||
suggested_radius = sphere.get_radius();
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue