QVTKWidget не отображает цвета на многих лицах при отображении OBJ с помощью mtl - PullRequest
0 голосов
/ 25 января 2020

Моя цель - показать файлы OBJ в QWidget. Код, который я использовал для работы ранее.

    vtkSmartPointer<vtkOBJImporter> importer = vtkSmartPointer<vtkOBJImporter>::New();
    importer->SetFileName(graphics_path_balanced.toStdString().c_str());
    importer->SetFileNameMTL(graphics_path_balanced.append(".mtl").toStdString().c_str());
    importer->Read();
    importer->GetRenderer()->SetBackground(1.0, 1.0, 1.0);
#if VTK_MAJOR_VERSION >= 7 && VTK_MINOR_VERSION > 1
    importer->GetRenderer()->UseFXAAOn();
#endif
    vtkActorCollection* actors_collection = importer->GetRenderer()->GetActors();
    actors_collection->InitTraversal();
    while(vtkActor* actor = actors_collection->GetNextActor()) {
        actor->GetProperty()->SetOpacity(0.5);
    }
    importer->GetRenderWindow()->LineSmoothingOn();
    importer->GetRenderWindow()->PointSmoothingOn();
    importer->GetRenderWindow()->PolygonSmoothingOn();
    _visualization_balanced_viewer->SetRenderWindow(importer->GetRenderWindow());

enter image description here

Кубоиды не прозрачны. Они все solid блоки. Большинство лиц теряют свой цвет и становятся прозрачными. Однако раньше он показывал правильно. Даже если я отключу прозрачность, нет никакой разницы.

Это старый код. Однако кажется, что он был написан с VTK 7.1 с Qt 5. Раньше он работал в Ma c, а также в Arch Linux. Но теперь он не работает ни в одной из этих ОС.

...