Blowing Bubbles论文阅读

问题

给定一个三角形网格,给出各个点的特征,这些特征需要

  1. 体现各个点的几何属性
  2. 对噪声尽量稳定

基本思路

方法来自于不同分辨率(Multi-resolution)的思想。想象在每个需求解特征的点上吹泡泡,泡泡的边缘和模型相交,形成不同的交线。通过对这些交线数量、长度、外角(体现区域的曲率)等,体现了该点上的特征。因此,接下来先介绍作者使用了哪些特征,再介绍实践中如何求取这些交线。

特征

数量

第一个特征是交线的数量。以Fig7为例,交线可以是一条、两条和多条,它们体现了交线形成的曲面(以下称为交面)的拓扑性质,我们分别进行讨论。

  • 一条线:交面和平面同胚
  • 两条线:交面和管道(tube, handle)同胚
  • 多条线:交面处于多个管道相接(split)的位置

Blowing Bubbles论文阅读_第1张图片

曲率

曲率仅对数量为1的点做计算,它的计算方式如下:

L γ ( p , R i ) = length ⁡ ( γ ( p , R i ) ) / R i L_{\gamma(p, R_{i})}=\operatorname{length}(\gamma(p, R_{i})) / R_{i} Lγ(p,Ri)=length(γ(p,Ri))/Ri

其中, γ ( p , R i ) \gamma(p, R_{i}) γ(p,Ri)是以 p p p为中心, R i R_i Ri为半径的球和模型的交线,所以 L γ ( p , R i ) L_{\gamma(p, R_{i})} Lγ(p,Ri)就是交线长度和半径之比。为什么它的几何意义是曲率呢?因为

K G = 2 π − ∑ i = 1 num. faces  α i A K_{G}=\frac{2 \pi-\sum_{i=1}^{\text {num. faces }} \alpha_{i}}{A} KG=A2πi=1num. faces αi

其中 K G K_G KG是高斯曲率, A A A是交面面积, α i \alpha_i αi是各个面相对中心点的外角,如Fig2所示。

Blowing Bubbles论文阅读_第2张图片
使用交线长度替代外角和是一种简单的近似。

按不同的阈值,我们可以将它分为尖型(Sharp)、平滑型(Rounded)和马鞍型(blend)。

  • Sharp:想象 p p p点处于一个圆锥的顶端,圆锥的顶角为 α \alpha α,如果 α \alpha α小于90度,则认为 p p p点属于Sharp。考虑极限情况 α = π 2 \alpha=\frac{\pi}{2} α=2π,如果此时圆锥的母线长 R R R,则底部半径为 2 2 R \frac{\sqrt{2}}{2}R 22 R,底部周长为 2 π R \sqrt{2}\pi R 2 πR,所以 L γ ( p , R i ) = 2 π L_{\gamma(p, R_{i})}=\sqrt{2}\pi Lγ(p,Ri)=2 π。因此,如果 L γ ( p , R i ) < 2 π L_{\gamma(p, R_{i})} < \sqrt{2}\pi Lγ(p,Ri)<2 π,则属于Sharp。
  • Rounded:想象圆锥不断变扁直至一个平面,则考虑平面这一极端情况, L γ ( p , R i ) = 2 π L_{\gamma(p, R_{i})}=2\pi Lγ(p,Ri)=2π,所以如果 2 π < L γ ( p , R i ) < 2 π \sqrt{2}\pi < L_{\gamma(p, R_{i})} < 2\pi 2 π<Lγ(p,Ri)<2π,则属于Rounded。
  • Blend:想象平面逐渐变成马鞍面,则交线长度继续加长,因此如果 L γ ( p , R i ) > 2 π L_{\gamma(p, R_{i})} > 2\pi Lγ(p,Ri)>2π,则属于Blend。

Fig8给出了这三种情况的一些例子。

Blowing Bubbles论文阅读_第3张图片

相对长度

相对长度仅对数量为2的点做计算,它表示较长的交线和较短的交线之比。如果两条交线长度相近,则这一局部类似于一个圆柱;如果两条交线明显一长一短,则这一局部类似于一个圆锥。这里作者给出的阈值是2,即如果较长边比较短边大于2,就近似于圆锥,否则就近似于圆柱。

Fig9给出了这两种情况的例子。

Blowing Bubbles论文阅读_第4张图片

凹凸性

对于Sharp点,凹凸性可以区别尖刺和深坑;对于Rounded点,凹凸性可以区别隆起和下沉;对于Blend点,凹凸性意义不大;对于管状模型(两条交线或多条交线),凹凸性可以区别物体的内外。最后一句可参考Fig6,handle和donut都可看做是管道,只不过前者的管道在模型内部,而后者的管道在模型外部。凹凸性可以帮助区分这两者。

Blowing Bubbles论文阅读_第5张图片
对于一条交线的情况,凹凸性的计算方式为:设交线的中心为 b b b,交线各点的平均法向(向外)为 N N N,则如果 N ∙ ( b − p ) > 0 N \bullet(b-p)>0 N(bp)>0,则为凹;否则,为凸。Fig11可以从图像上来理解这一点。

Blowing Bubbles论文阅读_第6张图片
对于两条交线或多条交线的情况,按文中的意思,如果管道在内部,则交线所在(最小二乘)平面的法向会指向 p p p点。否则,就背离 p p p点。法向的方向来自于交线方向的右手定则。参考Fig12。这里一个疑问是,交线的方向如何确定?

Blowing Bubbles论文阅读_第7张图片

小结

总结上面的特征,得到如下的表格:
Blowing Bubbles论文阅读_第8张图片

实践方法

选取半径的方法

  • 用户指定半径
  • 如果自动生成半径,则 R m i n R_{min} Rmin设置为最短边长, R m a x R_{max} Rmax设置为整个模型包围盒对角线长度的一半。

数据结构

  • V:Vertex位置坐标
    • 空间复杂度: 3 n V × s i z e o f ( f l o a t ) 3n_V × sizeof(float) 3nV×sizeof(float)
  • TV:Triangle-Vertex关系,即每个三角形面包含的点
    • 空间复杂度: 3 n T × s i z e o f ( i n t ) 3n_T × sizeof(int) 3nT×sizeof(int)
  • TT:Triangle-Triangle关系,即每个三角形(边)相邻的三角形
    • 空间复杂度: 3 n T × s i z e o f ( i n t ) 3n_T × sizeof(int) 3nT×sizeof(int)
  • VT*:Vertex-Triangle*关系,即一个点和任意一个相邻的三角形面
    • 空间复杂度: n V × s i z e o f ( i n t ) n_V × sizeof(int) nV×sizeof(int)

由VT*可以得到VT(一个点和所有相邻三角形面的关系),即先找到任意的那个三角形面,然后通过TT寻找相邻三角形面,再通过TV判断这些面是否包含了这个点。

算法

给定一个点 v v v和半径 R R R,求交线 γ ( v , R ) \gamma(v,R) γ(v,R)

  1. v v v的一个相邻三角形加入队列 Q Q Q
  2. Q Q Q中取出一个三角形 t t t,重复执行以下步骤直至 Q Q Q为空
  3. 测试以 R R R为半径的球是否和 t t t相交:如果 t t t的三个顶点中(不同于 v v v),至少有两个点 p p p q q q满足, ∥ p − v ∥ 2 ≤ R , ∥ q − v ∥ 2 ≥ R \|p-v\|_{2} \leq R,\|q-v\|_{2} \geq R pv2R,qv2R,则 t t t和半径为 R R R的球相交。
    1. 如果相交,则以 t t t作为根三角形。首先取 t t t中的一条边 [ p , q ] [p,q] [p,q],对这条边做参数化 u ( s ) : = s p + ( 1 − s ) q u(s):=s p+(1-s) q u(s):=sp+(1s)q。按照 ∥ u ( s ) − v ∥ 2 2 = R 2 \|u(s)-v\|_{2}^{2}=R^{2} u(s)v22=R2,我们可以计算得到 s s s的值,得到交点 a a a。对于 t t t中的另一条边,得到交点 b b b,则在三角形 t t t上的交线长度近似认为是 R θ R\theta Rθ,其中 θ \theta θ a p ap ap b p bp bp形成的夹角。按照 a a a点和 b b b点相邻的三角形,我们继续这样的计算,直到计算出整个曲线 γ ( v , R ) \gamma(v,R) γ(v,R)为止。
    2. 如果不相交,则将 t t t的相邻三角形加入到 Q Q Q中。

参考Fig14。

Blowing Bubbles论文阅读_第9张图片

结果

对于带噪声的模型,可以调解其半径,得到较好的结果。如Fig19。

Blowing Bubbles论文阅读_第10张图片

个人观点

  • 采用了多分辨率的方法,一定程度上具有更高的鲁棒性。

  • 半径的选取非常重要,对于最佳的半径可能需要手调。

  • 交线真正被用到的信息只有数量、相对长度和平均法向,给定这些特征也是相对地经验化。

  • 感觉只适合简单或细节不重要的模型。

你可能感兴趣的:(图形学)