c – 网格简化:边缘折叠条件
发布时间:2020-12-16 10:53:41 所属栏目:百科 来源:网络整理
导读:我试图通过进行一系列边缘折叠来实现网格简化算法.目前,我正在浏览每个三角形,然后折叠最短的边缘,算法是稳定的(不会超出界限).但超越一点,它开始创造破碎(洞)的文物.确定边缘是否可折叠的正确方法是什么,这样才不会导致非流形伪影(或网格)? 注意:我使用半
我试图通过进行一系列边缘折叠来实现网格简化算法.目前,我正在浏览每个三角形,然后折叠最短的边缘,算法是稳定的(不会超出界限).但超越一点,它开始创造破碎(洞)的文物.确定边缘是否可折叠的正确方法是什么,这样才不会导致非流形伪影(或网格)?
注意:我使用半边数据结构.另外,我不想使用任何外部库,如OpenMesh或CGAL.我有理由不使用它们. 解决方法
边缘崩溃有两个主要条件:
连接 在折叠边的每一侧,只能合并一对边.这可以通过计算两个合并顶点的联合邻居顶点来检查(必须恰好有两个). 橙色和青色边缘之间的三角形不再是多面体. 几何 在边缘坍塌期间,三角形不得翻转.这可以通过计算翻转之前的三角形法线与保持三角形的翻转之间的角度来检查. 这是一个在崩溃期间翻转绿色三角形法线的示例: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |