基于Bézier三角形的插值31/2-细分
Bézier Triangle-Based Interpolatory 31/2-Subdivision
-
摘要: 本文提出了一种基于Bézier三角形的插值31/2细分方法. 假设初始三角网格每个顶点都带有一个单位法向量, 首先在每个顶点带法向的三角形上构造一个三次Bézier三角形, 然后取Bézier三角形中心点作为控制网格三角形对应的新面点并将该点在Bézier三角形上的法向取为新面点的法向, 最后由新面点与老顶点一起重新三角化得到细分网格. 针对边界或狭长三角形等奇异情况也给出了处理方法. 由于新顶点的计算只用到了其所对应三角形的顶点和法向信息, 所以该方法简单、易于实现也便于并行加速. 数值实例表明, 该方法可以得到光滑和光顺的细分曲面, 调整初始顶点的法向还可有效改变极限曲面的形状.Abstract: An interpolating 31/2-subdivision method based on Bézier triangle is proposed. Assume every vertex of a triangular mesh is equipped with a unit normal vector, we subdivide the 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 surface can be edited effectively by adjusting the normal direction of the initial vertices.