VTK入门003——VTK Pipeline

 一、可视化管线

二、数据源

    1.两类数据源

    2.生成数据

//vtkConeSource 是 VTK 库中的一个类,用于生成一个圆锥体的几何形状。
#include <vtkConeSource.h>






// 1.generate data(生成模型)
//一、vtkSmartPointer<vtkConeSource> cone: 这里声明了一个名为 cone 的智能指针,其类型为 vtkSmartPointer<vtkConeSource>。
//智能指针是一种在对象超出范围时自动释放的指针,有助于管理内存和资源(不用delete)。

//二、vtkSmartPointer<vtkConeSource>::New(): 这是一个调用静态成员函数 New() 的方式,用于在堆上创建一个新的 vtkConeSource 实例。
//在 C++ 中,vtkSmartPointer<vtkConeSource>::New() 是用于创建 VTK 对象的常见用法。
//::New():这是一个 VTK 类的静态成员函数,用于在堆上创建一个新的对象实例。在 VTK 中,许多类都具有名为 New() 的静态成员函数,用于创建新的对象。
//New() 函数返回的是一个原始指针,然后被智能指针包装,以实现自动内存管理。
vtkSmartPointer<vtkConeSource> cone = vtkSmartPointer<vtkConeSource>::New();

    3.读取数据

//添加读取文件的头文件
#include <vtkSTLReader.h>




//从文件中读取数据模型
vtkSmartPointer<vtkSTLReader> reader = vtkSmartPointer<vtkSTLReader>::New();
reader->SetFileName("C:/VTKPlatform/Data/42400-IDGH.stl");

三、映射器(mapper)

    继承架构:

    映射器的作用是把抽象的数据映射为图形元素

    vtkPolyDataMapper:在三维空间中用结点和边描述的数据

#include <vtkPolyDataMapper.h>


// 2.mapper
//vtkPolyDataMapper 是 VTK 中的一个类,用于将几何数据映射到渲染器以进行可视化。
//使用 vtkPolyDataMapper 将几何数据源生成的几何信息映射到可供渲染的格式。这个过程中会生成绘制所需的顶点、索引等信息。
vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New();

四、角色(prop)

    继承架构:

#include <vtkActor.h>


// 3.actor
//演员(actor)是 VTK 中用于表示可渲染对象的类,它们与映射器相关联。
vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();

五、渲染器(renderer)

    作用:实现渲染相关的操作

#include <vtkRenderer.h>



//4.renderer
//vtkRenderer 是 VTK 中的一个类,用于创建渲染器对象,它负责渲染可视化结果并提供了控制视图和相机等功能。
//这段代码创建了一个 vtkSmartPointer 智能指针,指向一个新创建的 vtkRenderer 对象。
vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New();
//然后,我们在 renderer 对象上设置了背景颜色。
renderer->SetBackground(.3, .6, .3);

六、变量的连接

// 5.connect them
mapper->SetInputConnection(reader->GetOutputPort());

actor->SetMapper(mapper);

renderer->AddActor(actor);

    数据源的输出(读取数据)连接到映射器(mapper)的输入

    映射器(mapper)连接角色(actor)

    角色(actor)连接渲染器(renderer)

七、渲染器添加到渲染窗口

_pVTKWidget->renderWindow()->AddRenderer(renderer);

    渲染窗口(_pVTKWidger)是一个VTKRenderWindow类

八、(补充)过滤器(filter)

    过滤器是非必须的

    继承架构:

 

    负责缩放的过滤器:

//設置过滤器(filter)
#include <vtkShrinkPolyData.h>




//若包含filter
shrink->SetInputConnection(cone->GetOutputPort());
mapper->SetInputConnection(shrink->GetOutputPort());
actor->SetMapper(mapper);
renderer->AddActor(actor);
缩放前
缩放后

     可以看见圆锥的每个面都被缩小了

 九、总结

    

    

    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值