要想入门vtk,了解vtk的可视化流程是非常有必要的。
VTK可视化流程
VTK可视化流程主要分为数据处理和渲染两个过程,有一张不错的可视化流程图把这个过程理解为一个舞台剧。
VTK+VS运行圆锥示例
先来运行一个简单的示例代码来理解VTK运作的过程,也可以运行这个案例来测试自己的VTK是否配置成功。
#include <vtkAutoInit.h>
#include<vtkActor.h>
#include<vtkSmartPointer.h>
#include<vtkPolyDataMapper.h>
#include<vtkConeSource.h>
#include<vtkRenderer.h>
#include<vtkRenderWindow.h>
#include<vtkCamera.h>
#include<vtkNamedColors.h>// VTK_MODULE_INIT是用于自动初始化所需模块/库的宏
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);int main() {// DataObject部分// VTK自带的vtkConeSoure类,圆锥类vtkSmartPointer<vtkConeSource> cone = vtkSmartPointer<vtkConeSource>::New();cone->SetHeight(3.0);//圆锥高度cone->SetRadius(1.0);//圆锥半径cone->SetResolution(10);//圆锥面数// 数据映射部分// 进行数据映射,转化为可被渲染引擎可视化表达的数据vtkSmartPointer<vtkPolyDataMapper> coneMapper = vtkSmartPointer<vtkPolyDataMapper>::New();coneMapper->SetInputConnection(cone->GetOutputPort());// Rendering部分// 映射生成几何数据vtkActorvtkSmartPointer<vtkActor> coneActor = vtkSmartPointer<vtkActor>::New();coneActor->SetMapper(coneMapper);// 把几何数据添加到环境中进行渲染vtkSmartPointer<vtkRenderer> coneRender = vtkSmartPointer<vtkRenderer>::New();coneRender->AddActor(coneActor);// 把渲染好的放到展示窗口中vtkSmartPointer<vtkRenderWindow> renWindow = vtkSmartPointer<vtkRenderWindow>::New();renWindow->AddRenderer(coneRender);renWindow->SetSize(300, 300);// 展示窗口大小for (auto i = 0; i < 360; ++i){renWindow->Render();// 窗口渲染显示coneRender->GetActiveCamera()->Azimuth(1);// 旋转相机}return EXIT_SUCCESS;
}
运行成功后会有一个自动旋转的圆锥: