一种基于NURBS曲面控制的多分辨率自由变形算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种基于NURBS曲面控制的多分辨率自由变形算法
林金花;刘晓东;刘国荣
【摘要】提出一种针对非均匀有理B样条(NURBS)曲面的自由变形算法,将Loop 细分技术引入到NURBS曲面的自由变形中,并提出了通过细分层次控制进行精确多分辨率变形的方法.算法首先根据模型的结构特征确定初始控制顶点,然后对逐步细分的控制曲面片建立局部坐标系,计算每层细分生成的曲面控制点局部坐标,最后根据变形偏移量重新计算各细分层次下网格点新做标,进而实现多分辨率变形.通过虚拟环境中小麦叶折断变形实验,验证了所提算法可以应用于由NURBS曲面表示的作物模型的变形操作,在到达某一细分层次时,若控制点数小于某一阚值且自由变形时间增加较小,可以使该例中自由变形具有良好的精确性和实时性.%A free-form deformation (FFD) algorithm for NURBS surfaces is proposed. The Loop subdivision technique is introduced into multi-resolution FFD to achieve precise multi-resolution FFD by controlling the subdivision levels. The initial control vertex is confirmed by the algorithm according to the structural characteristics of the model. The local coordinate system of the gradually-subdivided control earner region is established, and then the camber control point local coordinate generated in the subdivision process of each level is calculated. Finally, the new coordinate of the grid points beneath each subdivision level is recomputed according to the deformation offset amount to achieve the multi-resolution FFD. The broken deformation experiment of a wheat leaf in the virtual environment verifies that this algorithm can be used for the deformation of the object
model defined by NURBS surfaces. It can make the algorithm to has high accuracy and real-time performance.
【期刊名称】《现代电子技术》
【年(卷),期】2011(034)024
【总页数】4页(P123-126)
【关键词】NURBS曲面;自由变形;Loop细分;多分辨率
【作者】林金花;刘晓东;刘国荣
【作者单位】长春工业大学,吉林长春130012;长春工业大学,吉林长春130012;长春工业大学,吉林长春130012
【正文语种】中文
【中图分类】TN911-34;TP391
0 引言
自由变形技术是虚拟农业领域的重要研究课题之一。

人们要真实的模拟农作物的整体和局部特征,对农作物的外观进行动态改变是十分重要的。

在虚拟现实系统中,NURBS方法在形状定义方面有强大的功能和潜力。

1991年国际标准组织ISO颁布的工业产品几何定义的STEP标准,就把NURBS作为惟一定义自由型曲线、曲面的数学方法[1]。

因此,研究NURBS曲面表示的虚拟作物的自由变形是非常有意义的。

尽管国内外的许多专家和学者已在自由变形方面开展了不少有价值的研究工作,但是大都针对外接多面体控制,使得自由曲面的自由变形问题缺乏有效的解决方法。

针对这一问题,Ohtake提出了B样条曲面的变形方法[2],采用了曲面
细分和PCCM技术[3],从一定程度上解决了样条曲面自由变形问题,但是这种方法存在一些不足:算法的参数化过程复杂,控制网格难以贴近曲面;自由变形不够实时精确。

为此,本文提出一种新的针对NURBS曲面的自由变形算法,弥补了这两方面的不足,并可用于对NURBS曲面作物模型进行精确实时的变形模拟。

1 相关概念和理论
1.1 Loop细分规则
Loop细分是1987年由Loop提出的一种基于三角网格的细分曲面算法[4]。

算法在每一次细分过程中将三角形面片一分为四,在三角网格的每条边上分裂出一个新顶点,称为e顶点,原网格的顶点在变换之后称为v顶点,重新连接e顶点和v 顶点便得到细分一次后的4个新三角形面片。

下面对本文采用的细分规则进行详细描述。

(1) 对内部边V0,V1, 如图1(a)所示,设共享此边的2个三角形面为V0,V1,V2和V0,V1,V3,则其对应的e顶点定义为
(2) 对内部顶点V,设其相邻顶点为V0,V1,V2,…,Vn-1,如图1(b)所示,则相应的v顶点定义为其中,
(3) 对边界边V0,V1上的e顶点定义为如图1(c)、(d)所示,边界顶点V上的v顶点定义为其中V0,V1为其相邻顶点。

图1 Loop细分规则
1.2 NURBS曲面
NURBS曲面方程有多种表示方式,这里给出它的有理分式表示形式。

一张k×l次NURBS曲面可表示如下[5]:
式中:di,j(i=0,1,2,…m;j=0,1,2,…,n)是控制顶点阵列;ωi,j是与顶点di,j联系的权因子;Ni,k(i=0,1,2,…,m)和Nj,l(j=0,1,2,…,n)分别为u方向k次和v方
向l次规范B样条基,它们分别由u向和v向的节点矢量
U=(u0,u1,u2,…,um+k+1)与V=(v0,v1,v2,…,vn+l+1)按德布尔递推公式决定。

2 算法实现
算法主要包括3个主要过程:曲面细分,建立曲面片局部坐标系并计算控制点局部坐标,计算各细分层次下网格点新位置实现多分辨率变形。

2.1 曲面细分
NURBS用一组控制顶点阵列来表示一个曲面,也就是说,只要确定一组控制顶点就可以生成一个曲面,并且只要调整控制顶点就可以控制曲面形状。

在本文算法中利用NURBS曲面这一性质,将细分插入的曲面片新控制顶点作为自由变形的控制点,确定局部坐标,进而实现变形。

将曲面分成较为均匀的4片,插入的控制顶点应在相应方向控制顶点序列的中央附近。

初始控制顶点为di,j(i=0,1,2,…,m;j=0,1,2,…,n),在这里,取u方向控制顶点的插入位置为第⎣m/2个与第⎣m/2+1个控制顶点之间,v方向取⎣n/2与第⎣n/2+1个控制顶点之间。

因此,在u方向,插入的新控制顶点du可以写成[6]:
于是:
从而有:
u=u⎣m/2+1+α(u⎣m/2+k+1-u⎣m/2+1)
类似地,在v方向插入新控制顶点dv于控制网格的边上,有:
v=v⎣n/2+1+β(v⎣n/2+l+1-v⎣n/2+1)
曲面细分过程的算法描述如下:
输入为NURBS曲面nline,细分后的4个NURBS曲面存于nline[4]中,输出为
细分后控制顶点集,存于数组nlinepoint[k][l]中。

其中k,l,分别是u方向与v
方向B样条基函数的幂次。

步骤如下:
(1) 在nline控制网格的和上插入控制顶点du,dv。

(2) 计算插入控制点后u, v方向控制顶点的插入新位置,即du1,dv1。

(4) 重复插入节点,插入次数为k和l中最大值,得到控制顶点集数组
nlinepoint[k][ l] 和NURBS曲面数组nline[4]。

2.2 建立曲面片局部坐标系
上阶段曲面细分将整张NURBS曲面一分为四,以4个曲面片的相交控制点为原
点建立局部坐标系,再将其他控制点参数化到局部坐标系中,得到变形控制点的局部坐标。

具体方法如下:
取NURBS曲面上相交控制点p(uq,vq)作为曲面控制点(设为Q点)的局部坐标系
原点O,如图2所示。

坐标轴为:
把x,y,z单位化。

这样就建立了局部坐标系(p(uq,vq),x,y,z)。

Q点的局部坐标(u,v,w)通过解线性方程Q=p(uq,vq)+ux+vy+wz得到。

Q点的局部坐标可以表示为五分量的形式,即[7]:εQ={uq,vq,u,v,w}。

图2 计算局部坐标
2.3 NURBS曲面多分辨率变形
在Ohtake的算法中,自由变形的最终效果取决于物体点在自由曲面中最近面的距离计算结果,若距离越近,变形越精确,这样使得在某些情况下自由变形不够精确。

因为由细分曲面转化拼接成的自由曲面很难像NURBS曲面那样有较好的紧密性。

为了弥补自由曲面拼接紧密性的不足,本文算法采用NURBS曲面建模并在达到各细分层次时以相交控制点作为局部坐标原点,当控制点数小于某一阈值dm时,
认为达到了该细分层次下的最佳变形效果。

NURBS曲面的多分辩率变形通过
N_Deformation(nurbs)函数实现,算法如图3所示[8]。

图3 曲面变形算法
3 实验与分析
3.1 实验平台
操作系统为Windows XP;开发语言为C++/C;开发工具为Microsoft Visual
C++ 6.0;三维图形编程接口为OpenGL/GLUT;CPU类型/主频为Intel Pentium 4/2.66 GHz;内存为2 GB。

3.2 结果分析
本文算法的变形原始模型如图4所示,小麦叶模型和折断点区域图。

小麦叶通过
主线方法建模而成,折断点可以人为控制选取,模拟由于外力作用使得小麦叶发生折断现象。

其中,小麦叶采用NURBS曲面片建模,每一片小麦叶的控制点数目为175,折断区域的控制点数目为41。

图4 小麦叶与折断变形区域
为了取最佳的细分层次level和采样点阈值d的值,使整个变形过程有较好的实时性和精确性,我们进行以下实验:针对小麦叶的原始模型选取如图4所示的折断
点区域不变,取不同的level值对初始控制网格进行细分,并记录下来平均自由变形时间t和每一细分层次下的近似采样点数dm的值。

当level在3~8之间取值时,平均自由变形时间t和层次采样点数dm如表1所示。

表1 level取值不同对t和dm的影响levelt /sdm(×103)31.1290.022
041.1500.022 051.2070.022 061.4160.023 071.7290.025 082.0650.029 092.4200.034 0107.4390.039 0
由表1可以看出,一方面,随着细分层次level的增大,平均自由变形时间在增加,
并且增加的倍数越来越多;另一方面,层次采样点数dm的值变化越来越小。


据本文算法d的计算过程可知,level的增加使控制点更加密集,dm也就越来越
接近原始模型网格点。

这样使得自由变形的结果就越精确。

根据以上分析,实时性和精确性不可能同时达到最理想。

在对实时性要求较高的场合中,level可取偏小
的值;对精确性要求较高时,level取偏大的值。

在表1中,将level为9时的dm值看作是采样点阈值,注意到当level为5时,dm与阈值已相差不大,并且平均自由变形时间较小。

此时,dm的误差为0.01,考虑到其他一些不确定因素,误差取0.02.因此,在level取5,误差取0.02时,采用本文算法可以使本例中自由变形具有良好的效果[9]。

本文算法与Ohtake的算法相比,具有较好的精确性和实时性,这是因为:
(1) 采用NURBS曲面作为模型的初始控制网格,首先插入具有清晰几何意义的控
制顶点,并通过建立局部坐标系,使之与模型更加贴近,从而使变形更加精确;(2) 采用了简单有效的Loop细分曲面方法,可以快速的确定各细分层次下的控制
点集;
(3) 通过控制细分层次进行精确多分辩率变形,避免了由于样条曲面间不紧密而造成的变形结果不精确。

4 结语
本文提出了一种针对NURBS曲面的自由变形算法。

该算法将Loop细分技术引入到曲面变形中,通过对曲面细分生成的相交控制点建立局部坐标系,计算控制点坐标进行自由变形,并提出了通过曲面细分层次控制进行多分辨率自由变形的方法。

算法可以应用于虚拟场景中由NURBS曲面建模的物体的自由变形,在对精确性和实时性要求比较高的场合,对增强虚拟现实系统的逼真感有良好的效果。

但是本文算法也有一定的局限性,只能应用于NUBRS曲面的自由变形,还有待进一步完善,以便更好的应用于其他自由曲面。

参考文献
[1] GRIESSMAIR J, PURGSTHOFER W. Deformation of so-lids with trivariate B-spline [C]// Proc. of Eurographics'89. North-Holland: Elsevier Sicence Publishers, 1989:137-148.
[2] OHTAKE Y, BELYAEV A, ALEXA M, et al. Multi-level partition of unity implicits [J]. ACM Transactions on Graphics, 2003, 22 (3): 463-470.
[3] PETERS Jorg. Patching Catmull-Clark meshes [C]// Proceedings of ACM 2000 SIGGRAPH. USA: ACM, 2000: 255-258.
[4] LOOP C T. Smooth subdivision surfaces based on triangles [D]. Utah, USA: Department of Mathematics, University of Utah , 1987: 33-54.
[5] 施法中.计算机辅助设计与非均匀有理B样条[M].北京:高等教育出版社,2001.
[6] 陆亚文,李际军.一种基于快速拟合的NURBS曲面实体建模方法[J].计算机仿真,2008,20(10):105-109.
[7] 武文.一种NURBS曲面转化为Bezier曲面片的改进算法[J].电子科技大学学报,2009(1):51-54.
[8] 翼世军,王阳,吕汉明.三角形网格多面体空间四边界区域的数据参数化[J].吉
林大学学报,2009(2):458-462.
[9] SAUL L K, WEINBERGER K Q, HAM J H, et al. Spectral methods for dimensionality reduction: Semisupervised Learning [M]. Cambridge: MIT Press, 2010.。

相关文档
最新文档