论文部分内容阅读
在计算机图形学和计算机辅助设计中,用多边形网格可以表示复杂的三维实体。随着三维扫描和曲面重建技术的发展,我们能很方便地得到这些实体表面的多边形网格表示,但所得到的表面含噪声。在形状设计领域,在散乱点拟合和光滑形状、纹理映射等应用领域,都有对平滑曲面的极大需求。因此,三维网格模型的平滑研究已成为三维模型处理的一个重要方向。 本文深入研究了目前几类主流网格模型平滑(光顺)算法:其中,Laplacian平滑算法通过将网格顶点移动到其邻域顶点的平均值处进行平滑操作,是一种简单、快速且使用广泛的平滑算法,但会使网格模型产生明显的收缩变形。另一种方法是Desbrun等提出的Curvature平滑算法,将网格顶点沿其法矢方向以平均曲率的大小移动来调整网格顶点,取得了较好的效果。Taubin将信号处理的知识引入Laplacian算法中,提出—种加权Laplacian算子的算法,通过增加—个负收缩因子将Laplacian平滑引起的收缩再放大回去,在一定程度上控制了调整后模型的变形。除此之外,刘新国、Karbacher、Kuriyama等将这两种主要的算法进行了一些改进。 在对上述算法研究的基础上,本文使用可视化工具包(VTK VisualiTation Toolkit)技术,在C++语言的开发平台上,编程实现了拉普拉斯平滑(Laplacian算法)、Taubin平滑和平均曲率平滑(Curvature算法)这三种平滑最基本的算法,并从各种算法的原始机理、运行效率以及误差率三方面入手,对每种算法的优缺点进行对比分析,使用大量实验数据进行验证。最后,融合分析及验证的结果,提出一种基予顶点的不同属性选择不同平滑算法的改进策略,解决以往单纯使用一种算法而出现的弊端,希望能够在平滑效率和平滑效果两方面达到一种均衡。经过实验,证明了改进的有效性。