vtk管线
一、概念
渲染引擎负责数据可视化表达。
可视化管线用于获取(或创建)数据,处理数据,以及把数据写入文件或传递給渲染引擎。
移动立方体法:在三维标量场数据中提取等值面
惰性赋值:根据每个对象的内部修改时间来决定什么时候执行管线,只有当用户或者程序发出 请求数据 ,管线才被执行。
当调用render(),Actor收到渲染请求后 去请求Mapper,Mapper去请求Filter的数据,Filter最好请求Source给它数据。
二、总结
通过形象的例子来说明可视化管线的组成。
一个剧院中通常有灯光,观众,演员,舞台。每个演员各有特色,都有各自的属性。完成了整个演出。
比如vtkRenderWindow是剧院,那么vtkLight就是灯光,vtkCamera是观众,vtkActor是演员,vtkRenderer是舞台。
vtkActor 的属性由vtkProperty表示。(比如颜色,材质,不透明度)
每个vtkActor的数据和渲染信息存储在vtkMapper中。将原始数据转为渲染用的图元。
三、遇到的报错
"SetInput": 不是 "vtkPolyDataNormals" 的成员
我的vtk是9.7版本,很多代码按照张晓东书上的代码运行,会报错。比较集中一个错误就是,很多类老版本是有SetInput这个成员函数的。我这个版本没有,新版本的是SetInputData