我的目标是将 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 中工作。但现在它在这两个操作系统中都不起作用。