Create LODs with vtkExtractHierarchicalBins

Hi :slightly_smiling_face:

I have a pointcloud in a vtkPoints. I am trying to create LODs of my pointcloud with vtkHierarchicalBinningFilter and vtkExtractHierarchicalBins but when I rendered different levels or bins I have unexpected result. The result does not correspond to the bounding give by vtkHierarchicalBinningFilter. Here is a part of my code :

vtkNew<vtkPointSet> pointSet;
pointSet->SetPoints(m_points);
pointSet->GetPointData()->SetScalars(m_colors);

vtkNew<vtkExtractHierarchicalBins> extractHierarchy;
vtkNew<vtkHierarchicalBinningFilter> hierarchicalBinningFilter;

hierarchicalBinningFilter->AutomaticOff();
hierarchicalBinningFilter
    ->SetBounds(-1.878000, 1.802000, -2.041000, 1.917000, -7.485000, 8.652000);
hierarchicalBinningFilter->SetDivisions(2, 2, 2);
hierarchicalBinningFilter->SetNumberOfLevels(3);
hierarchicalBinningFilter->SetInputData(pointSet);
hierarchicalBinningFilter->Update();

extractHierarchy->SetLevel(3);
extractHierarchy->SetBin(-1);
extractHierarchy->SetInputData(pointSet);
extractHierarchy->SetBinningFilter(hierarchicalBinningFilter);
extractHierarchy->Update();

m_glyphFilterp->SetInputConnection(extractHierarchy->GetOutputPort());
m_glyphFilterp->Update();

m_mapperp->SetInputConnection(m_glyphFilterp->GetOutputPort());
m_mapperp->Update();
m_actorp->SetMapper(m_mapperp);
m_actorp->GetProperty()->SetPointSize(2);

m_vtkrenderer->renderer()->AddActor(m_actorp);

Does someone ever tried those classes ? Maybe I am not using correctly the vtkExtractHierarchicalBins class. SetBin() has no effect on the rendering. Nothing works as expected.

Thanks for your help

1 Like