1.基本概念
feature line分为flat、concave、convex三种,由integrated curvature的根据阈值判定:
这里,例子如下图
标架场采用《Mixed-integer quadrangulation》中的方法建立
2.Field-Coherent Loops
由标架场引导出field-coherent geodesic path:切线与p点标架夹角小于。为了描述其偏离程度使用以下公式
其中为切向量,为标架之一,为惩罚系数。我们的目标是由点沿着field-coherent geodesic path返回点,即得到闭合曲线。而上述公式是为了避免造成过度偏离现象,如下图
定义曲线之间的距离如下:
其中为与之间的最短field-coherent geodesic path长度。
设loop集合,而,
则离最远的为
3.特征loop
维护一个初始队列用来装loop,feature line 分为两类处理,如下:
- 闭合:如果为flat特征则加入队列;如果为concave,拷贝正反方向两份入队
- 非闭合:如果为flat拓展成一个loop入队,如果为concave,沿两端点分别生成两个loop入队
4.采样最远loop
每次采样最远的loop加入中,其终止条件需满足以下两个:
- Topological integrity :Q中每个loop至少与其他loop相交三次。
- Geometric fit :path的面积与polyon的面积相差不超过阈值
5. 维护采样池
定义,其中为convex feature,通过以下两种方式创建采样池:
- 以固定间隔采样中loop,对其中每个loop,跟踪一个垂直它自己新loop加入采样池,新loop需满足与中loop不正切相交
- 在表面进行泊松分布采样(Poisson-Disk Sampling)获得点集,对于每个跟踪两条新的loop,同样的他们需要满足与中的不正切相交,加入采样池
每当从中选择一条最远loop加入中后,需要对采样池用方法1重新装填新的loop进去。
为提高Topological integrity,从采样池中选取loop不再是简单的选择与中最远的loop,而使用新的规则:设为的子集且不满足Topological integrity条件,我们使采样池中与中相交的loop具有更大的优先度被选择,即除了距离因素外加入相交次数作为优先度来快速提高拓扑完整性。根据以上规则在采样池中选择与最远的loop 加入,然后在采样池中移除所有与正切相交的loop,并重新跟踪它们的源点的两条正交loop(满足与新更新的中的loop不正切相交)
6. 输出
输出由两部分组成:队列与凸特征。其中每个loop都以形式给出,为点,为法向量。
需要注意不是每个非闭合的feature都可以拓展成闭合loop,在拓展feature loop时也可能产生自相交的loop(这种类型舍弃),而那些无法闭合的feature我们把它们称为incomplete loop并加入,在下一个阶段进行处理。
附1.Tracing loops
trace loop使用《Tracing Field-Coherent Quad Layouts 》的方法在一个拓展出来的图上进行Dijkstra 算法,其中图由曲面M上的边和顶点,还有边上的采样得到斯坦纳点(Steiner point)和连接斯坦纳点和顶点的边组成。不同的是,这里的
距离测量:对于集合中的每条loop,在每条loop上的每个点作为源点跑Dijkstra,从而找到最远的(这里很耗时)
传播限制:在做Dijkstra时,搜索路径不能与正切相交
附2.相交说明
- 正切相交判断:曲线相交,标架平行
- 垂直相交判断:曲线相交,标架相交
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!