QEM网格简化算法学习

《Surface Simplification Using Quadric Error Metrics》这篇论文介绍了一种网格简化的算法,通过“edge contraction”(边收缩)的方法来简化网格。边收缩的结果就是将两个顶点合成一个顶点,因此可以按照任意的顶点数目去简化网格。

image-20230908190941719

假设有一个二次函数 Δ(v)=vTQv\Delta(\mathbf{v})=\mathbf{v}^T\mathbf{Q}\mathbf{v}Δ(v)=vTQv 可以描述顶点v\mathbf{v}v的“变形程度”,这篇论文的算法目的就是最小化总体的“变形程度”,即:
minimize∑vvTQv \text{minimize} \quad \sum_{\mathbf{v}} \mathbf{v}^T\mathbf{Q}\mathbf{v} minimizevvTQv
但是由于直接最小化不太现实,因为顶点数目会发生改变,所以这篇论文的算法步骤是这样的:

  1. 对每个顶点计算其初始的 Q\mathbf{Q}Q,满足 vTQv=0\mathbf{v}^T\mathbf{Q}\mathbf{v}=0vTQv=0
  2. 保存所有合法的“点对”,包括所有的边对应的点对,以及距离小于一定阈值的顶点对;
  3. 对于每个合法的点对(v1,v2\mathbf{v}_1,\mathbf{v}_2v1,v2),生成合成的顶点vs\mathbf{v}_svs,这一步边收缩的代价为Δ(vs)=vsT(Q1+Q2)vs\Delta(\mathbf{v}_s)=\mathbf{v}_s^T(\mathbf{Q}_1+\mathbf{Q}_2)\mathbf{v}_sΔ(vs
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值