摘要:首先研究了传统的Loop细分曲面算法,通过分析发现随着细分次数的增多细分算法中三角形网格片数增长过快。针对这一问题提出一种自适应细分曲面算法。算法根据相邻两个三角形面上的法向量的夹角,判断细分网格中较为光滑和非光滑的区域。实验结果表明,算法提高了数据处理速度,并且模型简单易实现。
关键词:细分曲面;Loop细分;自适应细分
中图分类号:TP301 文献标识码:A 文章编号:1009-3044(2013)13-3142-04
1 概述
近年来,计算机硬件和IT技术的不断进步,促使细分曲面技术有了快速发展和广泛应用。细分曲面从产生至今,在基本细分模式上己经拥有很多优秀的算法,包括Loop细分[1] 、Catm-ull-Clark细分[2]和[3] 细分算法[3]等。虽然每种方法都具有自己独特的适应面,具体的计算方式也都各异,但它们都遵循共同的细分思想: 即通过对原始网格模型应用一定的几何计算规则,增加新的几何元素,把初始网格细化成一张更为密集的网格,再通过特定的拓扑连接规则对新生成的几何元素进行连接,从而生成一张新的细分网格,然后不断地迭代进行这一过程,最后的极限状态即为相应的细分曲面。由于细分曲面造型技术规则简单,可以表示和处理任意拓扑曲面,因而在工业设计、动画、科学可视化和仿真模拟等领域有着广泛应用。
然而,细分网格在应用中面临的的难题是细化光滑度与数据量成几何级数剧增的矛盾,针对这一问题,一种可行的办法是采用自适应细分曲面算法实现细分。自适应细分曲面算法是根据一定的光滑性和连续性的要求,判断细分网格中较为光滑的区域和非光滑的区域,从而只对非光滑区域进行细分,以达到降低网格数提高效率的目的。由于存在不同的细分曲面算法,故自适应细分算法的适用性较广。国外Ashish Amresh等人对三角网格自适应细分[4]作了探索,Hamid-Reza提出了一种增量自适应细分[5],该方法可以根据用户的需求只对选定的区域进行细分。另外,近几年来很多三角形网格的自适应细分方法[6-12]已被提出,但这些算法中有些会产生一些退化三角形,使得部分面片处于不同层,破坏了整体细分曲面的连续性,也有些算法原理复杂,难以实现。
本文提出的基于Loop细分中网格边光滑度的自适应细分算法,以相邻两个三角形网格面的法向量夹角为判据,区分细分网格中较为光滑和非光滑的区域,从而达到自适应细分的目的,能够有效的降低细分过程三角网格片数的增加量。
2 Loop细分算法
Loop细分算法[1]最早是由Loop在1987年提出的,它属于逼近模式的面分裂型算法。对于任意网格,通过对已知的控制顶点进行更新计算,并同时在网格边上生成新的顶点(新边点),再采用特定的拓扑连接规则形成一张新的网格。Loop细分曲面算法可以普适任意形状的网格,对于初始非三角形面片网格,可以通过对初始网格进行一次三角剖分再采用Loop细分曲面算法。Loop细分曲面算法对于正则网格所生成的曲面为[C2]连续的,而对于一般的三角网格,细分曲面除了奇异点为[C0]连续外,其余都为[C1]连续的。
4) 在下一级细分中,光滑边的中点取为E-点;如果顶点对应的边均为光滑边,则标记该顶点为不动点,在下一级细分中保持其几何位置不变。当一个面片的所有顶点都为不动顶点时,该面片为不动面片,在后面的细分中,不再对该面片细分。
每一次细分前,都按照上述算法对控制网格进行检测,对于非不动顶点和非光滑边,按照Loop细分的几何规则完成本次细分中新的边点和顶点的计算,并按照其拓扑规则产生新的网格。
3.2裂缝处理
3.3实例分析
4 结论
综上所述,本文提出的算法在进行自适应细分的时能较好地实现降低模型中的存储量和运算量;能准确的分辨模型的较光滑和较粗糙区域。另外,作者在后续研究工作中,将对算法的规则和设计进行适当修改,使其能更广泛应用于其他细分曲面模式中。
参考文献:
[1] Loop C.Smooth Subdivision Surfaces Based on Triangles[D]. Utah,USA: University of Utah,1987.
[2] Catmul E,Clark J.Recursively generated B-spline surfaces Oil topological meshes[J].Computer Aided Design,
1978,l0(6):350-355.
[3] Doo D,Sabin M.Behaviour of recursive division surfaces Deal extra.ordinary points[J].Computer Aided Design, 1978,10(6):156-160.
[4]Amresh A,Farin G,Razdan A.Adaptive Subdivision Yw.Hemes for triangle Mesh-es[M].Arizona State University,October 5.2000.
[5]Hamid-Reza Pakdel, Faramarz Samavati. Incre-mental Adaptive Loop Subdivision[J]. ICCSA2004(3045):237-246.
[6] 李桂清,吴壮志,马维银.自适应细分技术研究进展[J]. 计算机辅助设计与图形学报,2006,18(12):1789-1799.
[7] 朱巍. 细分曲面理论及其应用研究[D].博士学位论文.中国科学计算大学,精密仪器及机械,2011.
[8] 王艳艳,张荣国,王蓉,等. 向量线性相关的三角网格自适应 Loop 细分方法[J]. 工程图学学报,2009(1):91-96.
[9] 吴剑煌,刘伟军,王天然. 面向三角网格的自适应细分[J]. 计算机工程 , 2006 , 32(12):14-16
[10] 李李,王亚平.裁剪曲面自适应三角化剖分[J].计算机应用, 2006(26):2-13.
[11] 赵宏庆,彭国华,叶正麟, 等. 自适应细分方法进行曲面造型[J]. 计算机应用研究,2006(9):72-76.
[12] 钟大平,周来水,周 海. 自适应混合细分算法研究[J]. 机械科学与技术,2004,23(9):1090-1092.
[13] 孙大松,鞠志涛,孙立镌.约束自适应Loop曲面细分[J]. 计算机应用研究,2012,29(9):3506-3508.