QEM 顶点二次度量的优化
理论
QEM(Quadric Error Metrics,四元数误差度量)是一种常用的网格简化技术,它通过计算几何代价来评估边的简化。通过使用 QEM,您可以在简化过程中保留重要的几何特性。
边折叠的基本思想
在 QEM 中,边折叠的目的是将两个顶点合并成一个新顶点,以减少网格的复杂性。每条边都有一个代价(即误差度量),这个代价通常是基于如何保持网格特征的原始形状和细节。边的折叠会改变网格的几何结构,因此需要重新计算与其相关的度量。
计算二次度量
-
原始度量定义:
QEM 为每个顶点维持一个四维度量矩阵(4x4 矩阵),用于表示折叠过程中对几何的误差。这一度量是从与每个顶点相邻的每个面导出的。 -
从面导出度量:
对于每个面 FF,可以计算其四元数误差的二次形式:QF=NF⋅NFT⋅AFQF=NF⋅NFT⋅AF
其中,NFNF 是面的法向量,AFAF 是面的面积,QFQF 是一个 4x4 矩阵。这一过程会为每个顶点累积所有相邻面 FF 的度量:
Qv=∑F∈N(v)QFQv=F∈N(v)∑QF
其中 N(v)N(v) 是与顶点 vv 相邻的所有面。
-
边折叠的二次度量:
在选择边折叠时,要计算通过折叠边 e=(v1,v2)e=(v1,v2) 后得到的新顶点 v′v′ 的误差:Qe=Qv1+Qv2Qe=Qv1+Qv2
对于给定的新顶点 v′v′,应计算其代价:
Cost(v′)=v′TQev′Cost(v′)=v′TQev′
这是一个关于新顶点位置的二次形式,您可以通过求导来找到使成本最小的 v′v′。
-
求解最小值:
为了最小化代价,我们对 Cost(v′)Cost(v′) 进行求导并设置为零,得到:Qev′=0Qev′=0
如果 QeQe 是非奇异的,可以求解出合并后的顶点 v′v′。