0

我的目标是将 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());

在此处输入图像描述

长方体不透明。它们都是实心块。大多数面孔失去颜色并变得透明。但是它以前可以正确显示。即使我关闭不透明度也没有区别。

这是一个旧代码。然而,它似乎是用 VTK 7.1 和 Qt 5 编写的。它曾经在 Mac 和 Arch Linux 中工作。但现在它在这两个操作系统中都不起作用。

4

0 回答 0