VTK 是什么
VTK,Visualization Tool Kit,可视化工具包。
VTK 是一个用于图像处理、三维图形、体绘制(通过模拟光线穿越半透明物体时的能量变化来绘制物体,即采用体光照模型对三维体数据场进行直接显示)、可视化的开源软件系统。
VTK 架构
VTK 库的框架结构
vtkObject -> vtkSource -> vtkFilter -> vtkMapper -> vtkActor -> vtkRenderer
vtkObject
vtkObject 是 VTK 库的基类,它为整个可视化流程提供基本的方法
vtkSource
vtkSource 是 vtkObject 的派生类和 vtkFilter 的父类,它为整个可视化流程的开始定义具体的行为和接口,比如读取数据
vtkFilter
vtkFilter 是 vtkSource 的派生类,对原始数据进行滤波器处理,转化成可以直接应用算法模块的形式
vtkMapper
vtkMapper 是 vtkObject 的派生类,它将 vtkFilter 处理后的应用数据映射为几何数据,相当于为原始数据和图像数据之间定义了接口
vtkActor
vtkActor 用来表示渲染场景下一个特定物体(几何结构和属性)
vtkRenderer
vtkRenderer 为渲染器提供一种抽象规范。渲染器控制场景物体渲染过程,渲染过程则是将物体的几何结构、光和摄像机视角转化到图片中。
最终 vtkActor 通过 vtkRenderer 类将结果在窗口中显示出来。
VTK 图形模型
VTK 图形模型是 3D 图形的抽象,整个图形模型表现了 3D 图形系统的本质特征,主要有 9 类基本对象:
渲染控制器、渲染窗口、渲染器、灯光、摄像机、角色、特性、映射、变换
渲染控制器
渲染控制器(Render master)定义与设备无关的坐标计算方法,创建渲染窗口;
渲染窗口
渲染窗口(render window)管理显示设备上的窗口,一个或多个绘制方法可在渲染窗口上创建一个场景;渲染窗口是用户图形界面,其中包括了设置渲染窗口的大小,产生立体显示效果等方法
渲染器
渲染器(Renderer)是管理光源照相机和绘制对象等的位置、属性等,提供了世界坐标系,观察坐标系及显示坐标系之间的转换
灯光
灯光(Lights)可在场景中照亮绘制对象,可通过调用参数改变控制灯光的状态、照射角度、照射强度、颜色等,并支持点光源和平行光源