Я использую VTK в течение месяца, и я заметил, что это лучший инструмент визуализации. Для моего доктора, я пытаюсь визуализировать сотни эллипсоидов и некоторых облаков точки с помощью VTK. До сих пор я хорошо визуализировал эллипсоиды и точечные облака, как показано на прилагаемом рисунке. Однако он должен быть разработан. Без каких-либо эффектов затенения и освещения невозможно отличить отдельные эллипсоиды (показано зеленым цветом). Например, есть несколько эллипсоидов в левом верхнем углу, но их нельзя отличить. Не могли бы вы помочь мне в решении этой проблемы? Как я могу сделать их различимыми? Я с нетерпением жду вашего ответа. Улучшение визуализации геометрических фигур
ответ
Вы можете использовать силуэты для выделения объектов. Ниже вы найдете прилагаемый код, демонстрирующий извлечение и визуализацию силуэтов с использованием класса vtkPolyDataSilhouette
.
vtkSmartPointer<vtkPolyDataSilhouette> silhouette = vtkSmartPointer<vtkPolyDataSilhouette>::New();
silhouette->SetInputData(surface->GetOutput());
silhouette->SetCamera(renderer->GetActiveCamera());
silhouette->SetEnableFeatureAngle(1);
silhouette->SetFeatureAngle(90);
vtkSmartPointer<vtkPolyDataMapper> silhouetteMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
silhouetteMapper->SetInputConnection(silhouette->GetOutputPort());
silhouetteMapper->Update();
vtkSmartPointer<vtkActor> silhouetteActor = vtkSmartPointer<vtkActor>::New();
silhouetteActor->SetMapper(silhouetteMapper);
renderer->AddActor(silhouetteActor);
Другой путь извлечения и визуализации контуров с помощью vtkContourFilter
класса. Здесь вы можете найти пример, как использовать класс: https://itk.org/Wiki/VTK/Examples/Cxx/PolyData/ExternalContour
Я использовал свойство диффузного цвета, и теперь намного лучше. Кстати, я пробовал класс vtkPolyDataSilhouette, но я получил сообщение об ошибке, что класс vtkParametricSuperEllipsoid не поддерживает метод GetOutput() metfod. – user887912
Вы пытались добавить границу? –