基于Bézier三角形的插值√3-细分
Bézier Triangle-Based Interpolatory √3 -Subdivision
-
摘要: 为了更高效地构造高质量的细分曲面, 提出一种基于 Bézier 三角形的插值√3细分算法. 首先在初始三角网格的每个三角形上, 构造一个插值顶点和法向的三次 Bézier 三角形; 然后取 Bézier 三角形中心点作为控制网格三角形对应的新面点, 并将该点在 Bézier 三角形上的法向取为新面点的法向; 最后由新面点与老顶点一起重新三角化得到细分网格. 针对边界或狭长三角形等奇异情况也给出了处理方法. 由于新顶点的计算只用到了其所对应三角形的顶点和法向信息, 所以该算法简单、易于实现也便于并行加速. 数值实例结果表明, 所提算法可以得到光滑和光顺的细分曲面, 调整初始顶点的法向还可以有效地改变极限曲面的形状.Abstract: In order to construct high quality subdivision surfaces efficiently, an interpolating √3 -subdivision method based on Bézier triangle is proposed. We subdivide a triangle mesh in three main steps: construct a cubic Bézier triangle interpolating the vertices and vertex normals of every triangle on the control mesh; compute the center point and center normal vector for every Bézier triangle; re-triangulate the newly computed center points and old vertices. A method to subdivide boundary triangles or singular triangles with thin shapes is also proposed. Since every new face vertex and new vertex normal is only computed based on the vertices and vertex normal of a local triangle, this method is very easy to implement and it is also possible to accelerate the subdivision by parallel computing. Numerical examples show that the proposed method can produce smooth and fair-looking subdivision surfaces. Moreover, the shape of the limit surfaces can be edited effectively by adjusting the normal direction of the initial vertices.