VTK 学习笔记
2024-03-06 14:50:44 0 举报
注意:上面内容都是本人研发过程中的体会,也是经过验证的内容总结,希望能帮到新人小白;VTK(Visualization Toolkit)是一个用于处理、可视化和渲染3D数据的开源库。在这个学习笔记中,我们将涵盖VTK的核心概念和功能,包括数据模型、过滤器、映射器和 actors 等。通过实例和代码,你将学会如何在自己的应用中使用VTK,以及如何利用其强大的功能来处理和分析3D数据。这份笔记不仅适合初学者,同时也适合那些希望深入了解VTK的高阶用户。
作者其他创作
大纲/内容
结构的对象类
VtkRenderWindow
VtkRenderWindowInteractors
VtkRender
VtkProPer3D
VtkActor
vtkActor2D
vtkVolume
vtkAssembly
VtkAssemblyPath
vtkFollower
VtkLODActor
VtkCamera
vtkLight
vtkMapper
VtkLookuPTable
VtkTransForm
VtkProperty,vktPrperty2D
VtkProp3D
VtkProp2D
数据对象vktDataObject
数据对象种类
均匀网格 VtkImageData
线性网格 Rectilinear
结构网格 (VtkStructuredGrid)
离散点(VtkPolyData->UnstructuredPoint)
多边形(VtkPolyData)
非结构网格(VtkUnstructuredGrid)
可视化模型
VtkDataObject 数据对象组成
几何
拓扑结构
点集
单元集
属性数据
Salar(标量)
Vector
Normal
Texture Coordinate
Matrix
分类方式
vtkFieldData()(是对几何/拓扑信息的补充
VtkPointData() / GetProperty()->getPointData()
vtkCellData()/ GetProperty()->getCellData()
信息结构的存储,使用vtkDataArray 及其子类(非属性数据)
如vtkPolyData中的vtkCellArray 存储其拓扑结构...
VtkProcessObject 过滤器
映射器对象
物体鼠标操作(vtkAbstractPicker)
vtkWorldPointPicker
vtkAbstractPropPicker
VtkPropPicker
vtkPicker
vktPointPicker
vtkCellPicker
全局模块
vtkOutWindows
通过设置关闭一些警告窗口
一些类的说明
vtk一些心得规则
结构--> mapper: 数据->图形数据
vtk只要创建了一个初始对象,那么依据这个对象 创建的一系列后续的数据,都不会复制该对象
流行边/非流行
一个边被两个面所共享
非流行:三个/三个以上面共享
关于数据降采样
网格抽取?细化也可以做吗?
标量,矢量.纹理坐标,三维矩阵之间的另一种表述
K 阶 ->k维度的
Vtk矩阵变化
一个是数据本身改变了/一种是只改变其渲染视角
vtkTransFromfiler, 进行的是数据的变化
着色的时候,使用方式
重要: vtkCellArray 可以添加任何 结构化和非结构化单元..(重要)
添加点后,添加vtkcell ,而这个cell,包含点,线段vtkLine,三角形vtkTriangle,多边形 vtkPolygon等
添加各种cell方式
源码解读代码
关于降采样
vtkCellLinks
是cellArray一个补充,构建复杂的cell,通过点. 可以确定cell周边的一些数据,方便查询?
计算模块
多边形网格转换成三角形网格数据
vtjTriangleFiler
VtkMath
计算向量的模长等操作
vtkLine
计算点和线之间距离/线和线之间的距离
vtkTriangel
面积/外接圆/法向量计算/点和三角形位置关系
vtkPolygen
法向量/重心/面积/点和多边形位置判断/点和多边形距离/多边形和多边形相交判断
我在做赤平投影的时候,将圆转换成了多边形
vtkTeran
四面体体积/重心计算
功能模块
获取包围盒子
GetBound()
可视化包围盒子
vtkOutLineFiler
计算法向量
vtkPolyDataormals
测地距离
vtkDijkstraGraphGeodescPath
显示法向量(点/单元)
通过符号化 Glyphing 来显示
模型更加光滑,需要加入法向量
设置点的一致性
SetConsistency
自动调整法向量方向
SetAutoOrientNormals() / SetFlipNormal()(一般情况下,不需要手动设置)
vtkPolyDataNormals() 默认开启锐边界/会导致其看上去割裂 : 使用vtkPolyDataNormals::SetSplitting()函数关闭
计算曲率
vtkCurvatures
将一个颜色映射表转化为一个Actor对象
vtkScalarBarActor
分别边的类型以及提取
vtkFeatureEdges
补洞的类以及计算方式
vtkFillHolesFilter
有些闭合回路不需要三角化, 通过控制需要修补的漏洞的面积最大值来进行判断
补洞之后,一些点的顺序发生变化.所以需要VtkPolydataNormal 进行点一致化->法向一致化
选择一片区域,包含多个对象,用连通域的方式进行区分判断
vtkPolyDataConnectivityFilter
多个数据(vtkPolydata)的合并
vtkAppendPolydata
金字塔采样
vtk中模型的x细化和粗化
处理大模型: vtkQuadricDecimation(只接受三角网格),如果是多边形,需要用vtkTriangleFilter 来处理成三角面片
如果对一个二维图形边界进行闭合,使用vtkDelaunay2D
注意: 顺时针:多多边形进行外部剖分.逆时针,进行内部剖分
等值面生成算法
等值面生成算法
0 条评论
下一页