VTK学习(十三)图形渲染管线

来源:互联网 发布:支持windows的开发板 编辑:程序博客网 时间:2024/06/07 15:01
#include "vtkAutoInit.h" VTK_MODULE_INIT(vtkRenderingOpenGL2); // VTK was built with vtkRenderingOpenGL2VTK_MODULE_INIT(vtkInteractionStyle);#include <vtkConeSource.h>#include <vtkPolyData.h>#include <vtkSmartPointer.h>#include <vtkPolyDataMapper.h>#include <vtkActor.h>#include <vtkRenderWindow.h>#include <vtkRenderer.h>#include <vtkRenderWindowInteractor.h>#include <iostream>int main(int argc, char *argv[]){vtkSmartPointer<vtkConeSource>coneSource = vtkSmartPointer<vtkConeSource>::New();coneSource->Update();vtkSmartPointer<vtkPolyData>cone = coneSource->GetOutput();int nPoints = cone->GetNumberOfPoints();int nCells = cone->GetNumberOfCells();std::cout << "Point number:" << nPoints << std::endl;std::cout << "Cell number" << nCells << std::endl;vtkSmartPointer<vtkPolyDataMapper>mapper = vtkSmartPointer<vtkPolyDataMapper>::New();mapper->SetInputData(cone);vtkSmartPointer<vtkActor>actor = vtkSmartPointer<vtkActor>::New();actor->SetMapper(mapper);vtkSmartPointer<vtkRenderer>renderer = vtkSmartPointer<vtkRenderer>::New();renderer->AddActor(actor);vtkSmartPointer<vtkRenderWindow>renderWindow = vtkSmartPointer<vtkRenderWindow>::New();renderWindow->AddRenderer(renderer);vtkSmartPointer<vtkRenderWindowInteractor>renderWindowInteractor =vtkSmartPointer<vtkRenderWindowInteractor>::New();renderWindowInteractor->SetRenderWindow(renderWindow);renderWindow->Render();renderWindowInteractor->Start();return 0;}

VTK通过GetNumberOfPoints()和GetNumberOfCells分别获取图形数据点数和单元数目。

图形渲染管线vtkPolyDataMapper,vtkActor,vtkRenderer,vtkRenderWindow,vtkRenderWindowInteractor。对于vtkPolyData类型的数据渲染管线,需要定义vtkPolyDataMapper对象,用于接收vtkPolyData图形数据以实现图形数据到渲染图元的转换。


该椎体由七个空间点和7个单元的数据组成,这里只定义了空间椎体,没有给点或者单元数据设置属性信息。