朱 婧 ,余正生 ,郭玉清
(杭州電子科技大學(xué)圖形圖像研究所,浙江杭州310018)
基于偏微分方程(Partial Differential Equation,PDE)的曲面造型方法最早應(yīng)用于過渡面、自由曲面和N邊域曲面的構(gòu)造[1],以及功能曲面的設(shè)計[2-4]。蒙面的任務(wù)是擬合一張曲面通過一組有序的稱為截面曲線的空間曲線,蒙面法通常被考慮為最合適于交互設(shè)計。蒙面法在大量文章中被采用,特別在計算機(jī)動畫中有廣泛應(yīng)用。文獻(xiàn)5中具體提出了利用蒙面法設(shè)計B樣條曲面的過程。文獻(xiàn)6中提出一種曲面導(dǎo)向的自由變形蒙面曲面生成算法。本文在拓展PDE方法構(gòu)造曲面模型時使用了曲面造型的蒙面算法,借助偏微分方程來構(gòu)造曲面并控制相應(yīng)曲面的形狀變化。
球蒙面曲面構(gòu)造的幾何問題描述為:給定一系列不同的半徑和位置有序列的球,構(gòu)造一個曲面與每個球相切于一個大圓。參數(shù)蒙面曲面S(u,v)可以通過一系列子曲面S(u,v)(i=1,2,…,N)組合生成,其中N是球的總個數(shù),對于每個子曲面,用連接球上大圓的樣條曲面來表示,樣條曲面可由一系列樣條曲線來生成。每條樣條曲線以點(diǎn),以點(diǎn),即:
對于第i部分來說,Ai(u),Bi(u)Ci(u)和Di(u)是4個待定系數(shù),v∈[0,1]是一個球序列方向上的參變量。每張子曲面Si(u,v)由Hermite插值的邊界條件來決定。每個子曲面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是曲面第一基本公式的基本量。
對式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個子曲面的和,可記為:
可以求出式6關(guān)于參數(shù)的偏導(dǎo)數(shù),其中Wk∈ { θi?i}?i。給出主同率關(guān)于參數(shù)Wk的梯度方向,可沿其反方向迭代求出使蒙面曲面主曲率平方最小的角度值。
單一地運(yùn)用曲面的面積積分和主曲率平方積分兩個能量函數(shù)得到的曲面并不理想,給出混合兩個能量函數(shù):
式中,k∈[0,1]是一個常數(shù),用來調(diào)整曲面面積和主曲率平方兩個能量的比重。式7關(guān)于參數(shù)Wk的微分函數(shù)為:
選取k=0.9效果較好,可得到更光滑的曲面。用數(shù)值迭代法求解式8。設(shè)wi(n)為關(guān)于球Bi的參數(shù)wi的第n次迭代,可以沿其梯度遞減的方向前進(jìn)一個步長,即:
式中,Δt是步長,?Jwi(n)是能量函數(shù)J關(guān)于參數(shù)wi(n)的微分式。迭代過程計算的復(fù)雜度取決于球的個數(shù)O(NLM)和曲面上求取積分時用到的點(diǎn)的個數(shù)的大小。設(shè)曲面上的點(diǎn)個數(shù)為LM,其中L是每條樣條曲線上抽樣點(diǎn)的個數(shù),M為每個子曲面的樣條曲線的條數(shù)。對于每次關(guān)于梯度方向的迭代,其計算復(fù)雜度為O(NLM),迭代次數(shù)取決于步長Δt的選取和初始曲面與最終曲面的差異程度。
給定4個球的半徑分別為 3,2,2 和 3 單位長度,球心的坐標(biāo)分別為:c1=[0,0,0]T、c2=[5,0,5]T、c3=[10,0,0]T、c4=[17,0,-5]T。給定各個球的初始的角度參數(shù)分別為 w1=[0,0]T、w2=[0,/4]T、w3=[0,/2]T、w4[0,/4]T。構(gòu)造球蒙面曲面的一個簡單示例,如圖 1 所示,圖1(a)為初始蒙面曲面;圖1(b)為經(jīng)過30次迭代效果,其中L=50,M=20,蒙面曲面已比較光滑并且仍滿足問題的約束條件;圖1(c)為經(jīng)過60次迭代得到的結(jié)果,能量函數(shù)已達(dá)到其極小值且其角度參數(shù)收斂到定值。
圖1 蒙面曲面構(gòu)造實(shí)例
給出了一個對稱布局的球的蒙面曲面的一個示例,如圖2所示,初始條件是非對稱的。圖2(a)初始設(shè)定的蒙面曲面;圖2(b)為經(jīng)過40次迭代得到的優(yōu)化效果;圖2(c)為最后經(jīng)過65次迭代得到最優(yōu)解的效果。由圖可以看出,由于初始序列球是對稱的,最后得到的優(yōu)化蒙面曲面也相應(yīng)地是對稱的。
圖2 對稱布局的球蒙面曲面構(gòu)造實(shí)例
對于不太差的初始角度條件,經(jīng)過大約60次迭代優(yōu)化,可得到一個收斂的解,蒙面曲面的能量函數(shù)也達(dá)到其極小值。雖然上述示例的初始角度值皆為自行設(shè)定,在實(shí)際應(yīng)用中,為找一個好的初始角度條件,可以選用沿連接鄰近球心的矢量的交叉平面的法向作為初始連接圓的法向。需要指出的是,由于本方法的約束條件只要求蒙面曲面與球在連接圓處相切,生成的蒙面曲面可能穿過球,如圖3所示為穿過球的蒙面曲面。圖3(a)為初始曲面;圖3(b)為最終的優(yōu)化結(jié)果。
圖3 穿過球的球蒙面曲面構(gòu)造實(shí)例
對于給定的一系列有次序的3D球,可以構(gòu)造出一個光滑的蒙面曲面。此方法的特點(diǎn)是引進(jìn)了微分方程來優(yōu)化曲面,使得最終的3次多項(xiàng)式樣條曲面的面積函數(shù)與主曲率函數(shù)的一類混合得到極小值,并且曲面符合給定的約束條件。并且通過計算曲面的能量函數(shù)作為評價,對曲面參數(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ī)輔助幾何設(shè)計與非均勻有理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.