1基于Garland的边收缩算法的一种实现0引言随着科学技术的进步,在计算机图形学、虚拟现实、地理信息系统、医学图像系统等领域所构造和使用的模型越来越精细、越来越复杂
这些复杂的模型不但对计算机的存储容量、处理速度提出了很高的要求、而且成为实时绘制、网络传输的瓶颈
因此模型简化成为非常重要的研究课题
模型简化是指在保持原模型几何形状基本不变的前提下,采用适当的算法减少该模型的面片数、顶点数和边数
近年来,出现了很多有代表性的模型简化算法,其中Galand的基于二次误差度量的边收缩算法是目前最常采用且有效的算法
其基本思想是以顶点到相关三角形平面的距离的平方和为误差度量,通过重复的边收缩操作对模型进行简化
1算法分析与设计1
1基本概念:定义1三角网格是由三位空间中的三角形通过边和顶点连接而成的分段线性曲面
三角网格M可由顶点集V={v1,v2
vm}和三角集合F={f1
fn}组成的二元组M=(V,F)来表示定义2对M种任一顶点vi,与顶点vi相关的三角形集合记作Planes(i),与边(vi,vj)关联的三角形集合记作Planes(i,j),所有与vi关联的边构成的集合Edge(i)
2基于二次误差度量的边收缩算法基于二次误差度量的边收缩算法是通过不断选择模型中的一条边进行收缩,达到对模型的简化
每收缩一条非边界边,模型减少2个三角形、1个顶点、三条边;收缩一条边界边,模型减少1个三角形、1个顶点、俩条边
1误差度量简化模型必须与原网格尽量相似,这取决于边收缩的顺序和边收缩后生成的新点的位置
如何选择合适的边进行收缩及如何生成新的顶点,有一个选择误差度量标准的问题
Garland算法以点到平面的距离为误差度量标准
设对边(vi,vj)进行收缩,则与(vi,vj)边相关联的三角形集合Planes(i,j)构成了原模型上的一个区域,设边收缩后生成的新