该算法来源: 《A Simple, Fast, and Effective Polygon Reduction Algorithm》by Stam Melax.
原文链接:https://dev.gameres.com/Program/Visual/3D/PolygonReduction.pdf
H.Hoppe Progressive Meshes
多数减面算法都是 H.Hoppe Progressive Meshes的改进或变形而来。 Progressive Meshes是由 Hugues Hoppe 1996年发表在ACM SIGGRAPH(国际图形图像协会)的一篇论文。
WebPage: http://hhoppe.com/proj/pm/
Parper: http://hhoppe.com/pm.pdf
Github: https://github.com/hhoppe/Mesh-processing-library/tree/master/MeshSimplify
该算法通过重复使用一个简单的边坍塌操作来降低模型的复杂度,如图2:
u,v 是即将被操作的两点:
- 首先删除以uv为边的三角形
- 更新剩余三角形的顶点,用顶点u代替v
- 移除顶点u
重复以上过程,直到当前剩余顶点数达到预期数量。该过程会移除一个顶点( u ),两个三角形,三条边。
假设有图3所示多边形,通过上述过程即可完成减面操作: