朱 婧 ,余正生 ,郭玉清
(杭州電子科技大學(xué)圖形圖像研究所,浙江杭州310018)
基于偏微分方程(Partial Differential Equation,PDE)的曲面造型方法最早應(yīng)用于過(guò)渡面、自由曲面和N邊域曲面的構(gòu)造[1],以及功能曲面的設(shè)計(jì)[2-4]。蒙面的任務(wù)是擬合一張曲面通過(guò)一組有序的稱為截面曲線的空間曲線,蒙面法通常被考慮為最合適于交互設(shè)計(jì)。蒙面法在大量文章中被采用,特別在計(jì)算機(jī)動(dòng)畫(huà)中有廣泛應(yīng)用。文獻(xiàn)5中具體提出了利用蒙面法設(shè)計(jì)B樣條曲面的過(guò)程。文獻(xiàn)6中提出一種曲面導(dǎo)向的自由變形蒙面曲面生成算法。本文在拓展PDE方法構(gòu)造曲面模型時(shí)使用了曲面造型的蒙面算法,借助偏微分方程來(lái)構(gòu)造曲面并控制相應(yīng)曲面的形狀變化。
球蒙面曲面構(gòu)造的幾何問(wèn)題描述為:給定一系列不同的半徑和位置有序列的球,構(gòu)造一個(gè)曲面與每個(gè)球相切于一個(gè)大圓。參數(shù)蒙面曲面S(u,v)可以通過(guò)一系列子曲面S(u,v)(i=1,2,…,N)組合生成,其中N是球的總個(gè)數(shù),對(duì)于每個(gè)子曲面,用連接球上大圓的樣條曲面來(lái)表示,樣條曲面可由一系列樣條曲線來(lái)生成。每條樣條曲線以點(diǎn),以點(diǎn),即:
對(duì)于第i部分來(lái)說(shuō),Ai(u),Bi(u)Ci(u)和Di(u)是4個(gè)待定系數(shù),v∈[0,1]是一個(gè)球序列方向上的參變量。每張子曲面Si(u,v)由Hermite插值的邊界條件來(lái)決定。每個(gè)子曲面Si(u,v)由系數(shù)Ai(u),Bi(u)Ci(u)和Di(u)決定,而這些系數(shù)是關(guān)于Pi(u),Pi+1(u)和法向Ni,Ni+1的函數(shù)。
根據(jù)微分幾何,曲面的面積公式為:
式中,E=SuSu,F(xiàn)=SuSv,G=SvSv是曲面第一基本公式的基本量。
對(duì)式3出關(guān)于參數(shù)Wk的偏導(dǎo)數(shù),其中Wk∈ { θi?i}?i。給出了面積關(guān)于參數(shù)W大的梯度方向,可以沿其反方向迭代找出使蒙面曲面面積最小的角度值。
在三維空間中,可采用多種曲率比如主曲率和高斯曲率。主曲率與曲面面積公式的變化比較接近。主曲率公式為:
式中,E,F(xiàn)和G前面已經(jīng)給出,e,f,g和是曲面的第二基本公式的基本量:
式中,M是曲面的單位法向量。由于S(u,v)可以表示為N-1個(gè)子曲面的和,可記為:
可以求出式6關(guān)于參數(shù)的偏導(dǎo)數(shù),其中Wk∈ { θi?i}?i。給出主同率關(guān)于參數(shù)Wk的梯度方向,可沿其反方向迭代求出使蒙面曲面主曲率平方最小的角度值。
單一地運(yùn)用曲面的面積積分和主曲率平方積分兩個(gè)能量函數(shù)得到的曲面并不理想,給出混合兩個(gè)能量函數(shù):
式中,k∈[0,1]是一個(gè)常數(shù),用來(lái)調(diào)整曲面面積和主曲率平方兩個(gè)能量的比重。式7關(guān)于參數(shù)Wk的微分函數(shù)為:
選取k=0.9效果較好,可得到更光滑的曲面。用數(shù)值迭代法求解式8。設(shè)wi(n)為關(guān)于球Bi的參數(shù)wi的第n次迭代,可以沿其梯度遞減的方向前進(jìn)一個(gè)步長(zhǎng),即:
式中,Δt是步長(zhǎng),?Jwi(n)是能量函數(shù)J關(guān)于參數(shù)wi(n)的微分式。迭代過(guò)程計(jì)算的復(fù)雜度取決于球的個(gè)數(shù)O(NLM)和曲面上求取積分時(shí)用到的點(diǎn)的個(gè)數(shù)的大小。設(shè)曲面上的點(diǎn)個(gè)數(shù)為L(zhǎng)M,其中L是每條樣條曲線上抽樣點(diǎn)的個(gè)數(shù),M為每個(gè)子曲面的樣條曲線的條數(shù)。對(duì)于每次關(guān)于梯度方向的迭代,其計(jì)算復(fù)雜度為O(NLM),迭代次數(shù)取決于步長(zhǎng)Δt的選取和初始曲面與最終曲面的差異程度。
給定4個(gè)球的半徑分別為 3,2,2 和 3 單位長(zhǎng)度,球心的坐標(biāo)分別為:c1=[0,0,0]T、c2=[5,0,5]T、c3=[10,0,0]T、c4=[17,0,-5]T。給定各個(gè)球的初始的角度參數(shù)分別為 w1=[0,0]T、w2=[0,/4]T、w3=[0,/2]T、w4[0,/4]T。構(gòu)造球蒙面曲面的一個(gè)簡(jiǎn)單示例,如圖 1 所示,圖1(a)為初始蒙面曲面;圖1(b)為經(jīng)過(guò)30次迭代效果,其中L=50,M=20,蒙面曲面已比較光滑并且仍滿足問(wèn)題的約束條件;圖1(c)為經(jīng)過(guò)60次迭代得到的結(jié)果,能量函數(shù)已達(dá)到其極小值且其角度參數(shù)收斂到定值。
圖1 蒙面曲面構(gòu)造實(shí)例
給出了一個(gè)對(duì)稱布局的球的蒙面曲面的一個(gè)示例,如圖2所示,初始條件是非對(duì)稱的。圖2(a)初始設(shè)定的蒙面曲面;圖2(b)為經(jīng)過(guò)40次迭代得到的優(yōu)化效果;圖2(c)為最后經(jīng)過(guò)65次迭代得到最優(yōu)解的效果。由圖可以看出,由于初始序列球是對(duì)稱的,最后得到的優(yōu)化蒙面曲面也相應(yīng)地是對(duì)稱的。
圖2 對(duì)稱布局的球蒙面曲面構(gòu)造實(shí)例
對(duì)于不太差的初始角度條件,經(jīng)過(guò)大約60次迭代優(yōu)化,可得到一個(gè)收斂的解,蒙面曲面的能量函數(shù)也達(dá)到其極小值。雖然上述示例的初始角度值皆為自行設(shè)定,在實(shí)際應(yīng)用中,為找一個(gè)好的初始角度條件,可以選用沿連接鄰近球心的矢量的交叉平面的法向作為初始連接圓的法向。需要指出的是,由于本方法的約束條件只要求蒙面曲面與球在連接圓處相切,生成的蒙面曲面可能穿過(guò)球,如圖3所示為穿過(guò)球的蒙面曲面。圖3(a)為初始曲面;圖3(b)為最終的優(yōu)化結(jié)果。
圖3 穿過(guò)球的球蒙面曲面構(gòu)造實(shí)例
對(duì)于給定的一系列有次序的3D球,可以構(gòu)造出一個(gè)光滑的蒙面曲面。此方法的特點(diǎn)是引進(jìn)了微分方程來(lái)優(yōu)化曲面,使得最終的3次多項(xiàng)式樣條曲面的面積函數(shù)與主曲率函數(shù)的一類混合得到極小值,并且曲面符合給定的約束條件。并且通過(guò)計(jì)算曲面的能量函數(shù)作為評(píng)價(jià),對(duì)曲面參數(shù)進(jìn)行迭代使其逐漸收斂,優(yōu)化得到的蒙面曲面比較光滑。
[1]Bloor M I G,Wilson M J.Using Partial Differential Equations to Generate Free-Form Surfaces[J].Computer Aided Design,1990,22(4):221-234.
[2]Lowe T W,Bloor M I G,Wilson M J.Functionality in Blend Design[J].Computer Aided Design,1990,22(10):655-665.
[3]Lowe T W,Bloor M I G,Wilson M J.The Automatic Functional Design of Hull Surface Geometry[J].Computer Aided Design,1994,38(4):319-328.
[4]Dekanski C,Bloor M I G,Wilson M J.Computer-Aided Functional Design of marine Propeller[J].Computer Aided Design,1996,40(2):117-124.
[5]施法中.計(jì)算機(jī)輔助幾何設(shè)計(jì)與非均勻有理B樣條[M].北京:高等教育出版社,2003:294-298.
[6]Singh K,Kokkevis E.Skinning characters using surface oriented free-from deformations[J].Graphics interface,2000,20(1):35-42.