VTK修炼之道52:图形基本操作进阶_多分辨率策略(模型抽取的三种方法)

本文深入探讨了VTK中的多分辨率处理,重点介绍了网格抽取的三种方法:vtkDecimatePro、vtkQuadricDecimation和vtkQuadricClustering。vtkDecimatePro在模型抽取中起到关键作用,支持拓扑改变、网格分裂和边界顶点删除功能,通过调整最大误差参数实现高效模型简化。
摘要由CSDN通过智能技术生成

1.多分辨率处理策略

模型抽取(Decimation)和细化(Subdivision)是两个相反的操作,是三角形网格模型多分辨处理中的两个重要操作。使用这两个操作可以在保持模型拓扑结构的同时,得到不同分辨率的网格模型。模型抽取的作用是减少模型中的点数据和单元数据,便于模型的后续处理与交互渲染,这类似于图像数据的降采样。而网格细化则是利用一定的细化规则,在给定的初始网格中插入新的点,从而不断细化出新的网格单元,在极限细化情况下,该网格能够收敛一个光华的曲面。

2.网格抽取(Decimation)

2.1 vtkDecimatePro

VTK中主要有三种网格抽取类:vtkDecimatePro、vtkQuadricDecimation、vtkQuadricClustering。
vtkDecimatePro是最常用的,该处理方法的原理参考文献[1],是用一种边塌陷的方法来删除点和单元,处理速度比较快,而且可以方便的控制网格抽取的幅度,得到不同级别的模型数据。
该类的使用方法,如下:
vtkSmartPoint<vtkDecimatePro> decimate = vtkSmartPointer<vtkDecimatePro>::New();
decimate->SetInput(input);
decimate->SetTargetReduction(0.6);
decimate->update();
vtkDecimatePro接收一个单元为三角网格的vtkPolyData数据,其中函数SetTargetReduction()用于设置变量TargetReduction的大小,将网格面片抽取的比例控制在0~1.这里设置为0.6,说明有60%的三角面片单元将被移除。使用这个函数可以得到不同程度的简化网格模型,不过,为确保函数效果,一般需要满足下面四个条件:
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值