Repository navigation
Point cloud display issue with vsg::PagedLOD: cannot make low-res and high-res child node display simultaneously #1755
Point cloud display issue with vsg::PagedLOD: cannot make low-res and high-res child node display simultaneouslySummaryWhen porting our point cloud loader from I'd like to confirm whether this is intended by design, and what the recommended approach is for point clouds that need a always-present coarse layer. Repositories
The OSG version uses overlapping ranges on What we doRoughly (simplified): // OSG - works: low-res and high-res visible at the same time
osg::ref_ptr<osg::PagedLOD> plod = new osg::PagedLOD;
plod->setRangeMode(osg::LOD::DISTANCE_FROM_EYE_POINT);
plod->setRange(0, 0.0f, FLT_MAX);
plod->setRange(1, 0.0f, 1000);
// VSG - low-res child is skipped once high-res is loaded/in range
auto plod = vsg::PagedLOD::create();
pagedLOD->children[0].minimumScreenHeightRatio = 0.5;
pagedLOD->children[1].minimumScreenHeightRatio = 0.0;Visual comparison
The first image is the VSG effect, the second image is the OSG effect. At the same position, the VSG display has fewer points.
|
Replies: 2 comments 3 replies
|
Yes, this is by design. This helps reduce the amount of data and number of comparisons that need to be done which lowers CPU overhead. |
|
Thanks, understood — skipping the low-res child reduces data comparison, lowering CPU overhead. Makes sense as the default. Could this be made configurable? E.g. add a parameter controlling whether the low-res child is still evaluated/rendered when the high-res child satisfies the range condition. Default |


The point of the design is to avoid the extra data and comparisons, so adding data and comparison as an option would rather defeat that.
Potentially you could subclass your own PagedLOD and customize the comparisons.