專利名稱:計算機圖形動畫制作方法和裝置的制作方法
技術領域:
本發(fā)明涉及一種如權利要求1的前序所述的計算機動畫制作方法。
這種方法可從在1997年2月在Eindhoven科技大學公開的D.Dekkers的碩士論文中得到。
隱含表面定義形成了以可變形狀定義表面以便用在計算機圖形中的有力工具。隱含表面通過一個函數(shù)進行定義,該函數(shù)的自變量是表面所在空間中的坐標。在隱含表面上的點是坐標滿足一個涉及該函數(shù)的方程式的點。例如,球面可以由為坐標平方和的函數(shù)來定義,通過要求函數(shù)對于表面上的點應該具有預定正值來實現(xiàn)。另外,更復雜的表面可以由方程式中的組合(例如,相加)函數(shù)來定義。
雖然隱含表面定義是定義表面的有力工具,但這種定義對于在實際上繪制表面、即對于計算包含該表面的景物的圖象是不夠方便的。
Dekkers提出從隱含表面定義計算平面三角形的網(wǎng)格,并用平面三角形繪制該網(wǎng)格。
這是具有吸引力的,因為對于組成平面三角形的網(wǎng)格的表面來說繪制表面的可用硬件被最優(yōu)化了。描述這種三角形的方程式的線性特性使得高速高效率地繪制這種三角形成為可能。
不使用平面三角形的硬件是一個無吸引力的選擇需要非線性方程式的解來找到表面上的點的非線性表面定義不能以這樣的高速進行繪制。此外,大多數(shù)圖形任務主要或只需要平面三角形,所以除了被最優(yōu)化為繪制平面三角形的可用硬件之外還必須提供繪制隱含表面的任何硬件。
隱含表面定義非常適合于以時變形狀定義動畫表面,例如通過采用一個作為兩個子函數(shù)的和的函數(shù)并將其中一個子函數(shù)相對于另一個作為時間的函數(shù)進行變換或旋轉來實現(xiàn)。
這種具有時變形狀的動畫表面的圖象最好能夠實時地計算,即,盡可能快地將這些圖象一個一個地在顯示設備上更換。這例如對于計算機游戲應用是非常便利的,在該應用中,形狀由游戲者交互地進行控制。
然而,從隱含表面定義計算平面三角形網(wǎng)格是非常耗時的。一般需要迭代求解包含該函數(shù)的方程式,因為該函數(shù)是非線性的。另外,必須在表面上分布網(wǎng)格中的角點,以便限制由以平面三角形近似表面而引入的近似誤差,并避免需要繪制太多的平面三角形。
Dekkers提出通過采用網(wǎng)格的角點來減少在動畫制作期間計算平面三角形的網(wǎng)格所需的時間,其中網(wǎng)格的角點已經(jīng)在時間上的第一點為圖象計算出來,作為在與時間上的第一點相近的時間上的第二點為圖象計算相應網(wǎng)格角點的開始點。因此,只需要很少的迭代來獲得更新的提供對表面的足夠近似的角點。還可以從時間上的第一點大量地接收角點的分布。Dekkers提出在迭代中包含角點平行于表面的移動,以達到最優(yōu)分布。
然而,Dekkers的方法仍然是非常耗時的,使得采用隱含表面定義的動畫制作成為計算機圖形的一個昂貴的選擇。
本發(fā)明的一個目的是使得采用隱含表面模型加速計算機動畫制作變?yōu)榭赡堋?br>
依據(jù)本發(fā)明的方法的特征由權利要求1的特征部分記載。
依據(jù)本發(fā)明,將隱含表面定義用來計算近似隱含函數(shù)的非線性坐標賦值函數(shù)的控制點。坐標賦值函數(shù)是一個將表面上的坐標分配給將表面上的位置參數(shù)化的自變量的函數(shù)。坐標賦值函數(shù)的一個例子是例如用于定義一個Bezier形狀的Bernstein多項式的加權求和。
因為非線性坐標賦值函數(shù)在描述曲線形狀上比平面三角形更有力,所以對于以給定精度進行近似的計算所需的控制點要比在由平面三角形網(wǎng)格近似隱含定義表面的情況下要少得多。
隨后,將坐標賦值函數(shù)用來計算平面三角形的網(wǎng)格中的角點。這個計算執(zhí)行起來可以比當直接從隱含表面定義計算角點時要快得多。因為從坐標賦值函數(shù)計算角點也可以運用到其他繪制問題上,所以它在經(jīng)濟上對于提供用于這個計算的專用硬件更有吸引力,使得這個方法更快。
在動畫制作期間,將坐標賦值函數(shù)的在時間上的第一點的控制點用作為計算坐標賦值函數(shù)在時間上的第二點的控制點的開始點。因此,只對控制點執(zhí)行耗時的迭代,而不對平面三角形的網(wǎng)格的所有角點執(zhí)行該迭代。其結果為,減少了迭代所需的計算時間。
在依據(jù)本發(fā)明的一個實施例中,非線性坐標函數(shù)對應于鄰接二次三角形的網(wǎng)格。這是特別適合于平面三角形變換的表面表示。
下面將用附圖以例示性的方式說明本發(fā)明的這些和其他有利方面。
圖1顯示了一個依賴于時間的表面的例子。
圖2顯示了用于繪制隱含定義的表面的裝置。
圖3顯示了用于繪制隱含定義的表面的流程圖。
圖4顯示了在時間上一點的表面的分裂。
隱含表面定義是定義在計算機圖形中使用的形狀表面的有力工具。一個表面的隱含定義一般可以寫成一個方程式的形式F(x,y,z)=C這個方程式定義了具有滿足這個方程式的坐標(x,y,z)的點的集合。這種定義的一個例子是對形成球形表面的一組點的定義。在這種情況下,可以采用函數(shù)F(x,y,z)=(x-x0)2+(y-y0)2+(z-z0)2當C>0時,具有滿足方程式F(x,y,z)=C的坐標(x,y,z)的點的集合是一個球面。
隱含表面定義對于計算機圖形中的應用是令人關注的,因為其形成了定義表面的有力方法。例如,可以從幾個子函數(shù)組合成函數(shù)F(x,y,z),每個子函數(shù)本身隱含地定義了一個基本形狀。這個組合描述了這些基本形狀以在形狀之間的光滑過渡形成的合并。例如,可以定義由采用下列函數(shù)的兩個球面的合并組成的表面F(x,y,z)=F1(x,y,z)+F2(x,y,z)這個函數(shù)F(x,y,z)是由兩個子函數(shù)組成的F1(x,y,z)=A1/{1+(x-x1)2+(y-y1)2+(z-z1)2}F2(x,y,z)=A2/{1+(x-x2)2+(y-y2)2+(z-z2)2}根據(jù)F1(x,y,z)=C和F2(x,y,z)=C,每個子函數(shù)本身可用于分別在具有坐標(x1,y1,z1)和(x2,y2,z2)的位置周圍定義一個球面。合并的函數(shù)定義這些表面的光滑組合。
雖然這個例子采用的是球體,但隱含定義當然可以用于定義任何其他類型的表面。僅僅采用簡單的二次函數(shù)就可以定義類似平面、圓柱、圓錐等形狀及其組合。
在動畫制作期間,具有時變形狀的表面可以僅僅采用具有時變參數(shù)的函數(shù)來生成。例如,通過合并兩個球面而生成的表面可以通過在時間上改變組成函數(shù)的參數(shù)A1,(x1,y1,z1)和A2,(x2,y2,z2)(參數(shù)(x1,y1,z1)和(x2,y2,z2)也被稱為函數(shù)F的控制點)來變形。
圖1顯示了通過分別采用具有中點12、14(例如,分別具有坐標x1,y1,z1和x2,y2,z2)的兩個組成函數(shù)定義的隱含定義表面的交叉部分10的一個例子。圖1還顯示了當由于其中一個中點14已經(jīng)移到點16、該表面在時間上發(fā)展時通過表面的交叉部分18(虛線)。
雖然這種類型的隱含定義是模擬表面的有力工具,但它們不太適合于這些表面的高效直接繪制,即計算包含這樣一個表面的圖象的象素值。這是因為,隱含定義的直接繪制將要求求解方程式F(x,y,z)非常多次。
這可能會產(chǎn)生問題,特別是在必須在實時限制下操作的計算機圖形設備、例如在計算機游戲中將表面形狀改作對表面的用戶響應的函數(shù)的交互設備中。為了克服這些問題,提出了一種間接繪制方法,其中,在進行繪制之前首先將表面的隱含定義變換成一個中間定義。
圖2顯示了一個用于繪制隱含定義表面的計算機圖形設備。該設備包含用于產(chǎn)生隱含表面模型的第一模塊20。第一模塊20與第一變換單元21相連,第一變換單元21用于將隱含表面定義變換成以Bezier三角形表示的表面的定義。第一變換單元21的輸出與第二變換單元22的輸入相連,第二變換單元22用于將以Bezier三角形表示的定義變換成以平面三角形表示的定義。第二變換單元22的輸出與平面三角形繪制單元24的輸入相連,平面三角形繪制單元24將以平面三角形表示的定義變換成表面圖象。平面三角形繪制單元24的輸出與顯示設備25相連。時間更新信號單元28與第一模塊20和第一變換單元21相連。
圖3顯示了描述設備操作的流程圖。流程圖包含第一步驟30,其中,通過選擇數(shù)個適當?shù)暮瘮?shù)和這些函數(shù)的參數(shù)(例如,A1,x1,y1,z1等),產(chǎn)生圖1的類似表面10的表面隱含模型。在流程圖的第二步驟32,采用這些函數(shù)的定義來計算數(shù)個控制點100a-h的坐標,這些坐標例如以二次Bezier三角形定義了表面的近似值。
在Bezier三角形中,表面補片(patch)由將三維坐標(X,Y,Z)分配給表面坐標對(u,v)的坐標賦值函數(shù)G(u,v)=(X(u,v),Y(u,v),Z(u,v))來定義對于函數(shù)G的域內(nèi)的任何表面坐標對(u,v),G定義了X、Y、Z的計算。例如,如果G是Bezier函數(shù),G(u,v)=SumklmRklmukvl(l-u-v)m其中,Rklm用于不同的指數(shù),k,l,m是數(shù)個控制點的坐標向量。
采用坐標賦值函數(shù)比采用隱含定義計算表面上點的坐標要快得多。特別地,如果使用低次(例如二次)多項式坐標賦值函數(shù),則計算會非??欤?,采用前向差分方法計算分配給在uv空間平均間隔的點的XYZ坐標。
在采用Bezier函數(shù)的情況下,第二步驟32從隱含定義確定應該使用多少不同的表面補片來近似隱含定義表面,并且,第二步驟為這些補片中的每一個計算多個這種控制點R的坐標。
在流程圖的第三步驟34,坐標賦值函數(shù)用于計算平面三角形的網(wǎng)格的角點(corner point)坐標,該坐標隨后近似由坐標賦值函數(shù)定義的表面補片。
圖4顯示了這樣一組二維角點。表面10包含控制點100a-h,在這個二維例子中,控制點100a-h定義了代表曲面補片的曲線補片。從控制點100a-h已經(jīng)計算出角點102a-r,角點102a-r定義了連接連續(xù)的成對角點102a-r的直線段;直線段在圖示上代表平面三角形。
在流程圖的第四步驟35,平面三角形的網(wǎng)格的角點坐標被用來計算表面圖象中的象素內(nèi)容。在流程圖的第五步驟36顯示該圖象。
出于第四步驟35的目的,可能需要將取景變換運用到表面上。取景變換包括相對于視點表示坐標系中的表面的變換。這樣的取景變換可以包括將一個轉換向量增加到表面的點的坐標上(以說明所選定視點的位置),并將這些坐標乘以一個旋轉矩陣(以說明攝取視圖的想象照相機的取向)。
取景變換最好運用到控制點100a-h的坐標上,角點的坐標從變換出的控制點100a-h計算。因此,在角點坐標上不需要運用取景變換,這就減少了執(zhí)行圖3的流程圖所需的計算量。
在流程圖的第六步驟38中,更新隱含表面模型,從而使其對應于在在前面的步驟中繪制圖象的第一時間點之后的第二時間點。
返回圖1,圖1顯示了在屬于第二時間點時模型的交叉部分。例如,可以看到,一個球面的中心12已經(jīng)移動到新位置16,從而改變了函數(shù)F(x,y,z),使其對于時間上的第二點隱含定義了一個新表面18。
在第六步驟之后執(zhí)行流程圖的第七步驟39。在第七步驟39,控制點100a-h的坐標R(曾由坐標賦值函數(shù)用來近似表面)現(xiàn)在被用作用于在時間上的第二點近似表面的新控制點160a-h的坐標R’的初始值。從這些初始值R例如通過遞歸關系來計算出新值R’R(n+1)=R(n)-SnSn=a*grad F(R(n))其中,對于某些n(例如,n=1),R(0)=R,R’=R(n)。因此,點R在例如具有正比于(F(R(n))-C)/(grad(F((R(n)))2的“a”的梯度方向上移動到臺階Sn。
另外,可以將多項增加到Sn上,從而使得點100a-h以保持適合于表面的控制點160a-h的分布的方式移動(在相對平坦的區(qū)域的點較少,在強彎曲區(qū)域的點較多)。Dekkers的碩士論文描述了對于平面三角形的角點如何完成這一點,例如,通過將一個與表面相切的向量(垂直于grad(F(R)))增加到Sn來實現(xiàn),從而使得控制點相互排斥,并/或通過將在隱含函數(shù)F的控制點12、14的改變方向上的一個向量增加到Sn以便使坐標賦值函數(shù)的控制點100a-h跟隨著隱含函數(shù)F的一個或更多控制點12、14的移動來實現(xiàn)。類似的方法也可以運用到本發(fā)明的坐標賦值函數(shù)的控制點160a-h。
圖1用箭頭表明了初始控制點100a-h到新控制點160a-h的移動。
在第七步驟39之后,可以得到控制點160a-h的新(近似)坐標集,采用該新的坐標集從第三步驟34開始對第二時間點重復該流程。也就是說,對于第二時間點不對控制點160a-h重復初始計算控制點100a-h的坐標的第二步驟32,而對于第二時間點重復計算平面三角形網(wǎng)格的角點102a-r的坐標的步驟,對于第二時間點重新計算平面三角形網(wǎng)格的角點102a-r的坐標,而不是通過采用前面為第一時間點計算出的角點作為初始近似值來獲得。
雖然圖3的流程圖的大多數(shù)步驟可以由單個通用計算機連續(xù)地執(zhí)行,但最好至少有一些步驟是由不同的設備以流水線方式執(zhí)行的,例如,每次當繪制單元24仍然處理為前面的控制點100a-h計算出的平面三角形時,新控制點160a-h的計算在第一變換單元21開始。
在第七步驟39中計算控制點的新坐標所需的計算量會根據(jù)隱含定義表面的變化量而變化。在特定環(huán)境下,這會導致平面三角形的網(wǎng)格的角點坐標不能足夠快地計算出來以便滿足實時限制的可能性。在這種情況下,采用在第三步驟34中為角點的一部分先前計算出的坐標來代替重新計算所有角點將非常方便。從而獲得了時間,滿足了實時限制。在角點每次被重新計算時,如果被計算的話,這不會引入任何累積差錯。被重新計算的角點數(shù)目可以修改為使得在第七步驟39加上第三步驟34中所需的計算量不超過實時計算所允許的最大值。
權利要求
1.一種計算機圖形動畫制作方法,包括下列步驟-提供時間相關的隱含表面模型;-計算表示隱含表面在時間上的第一點的近似值的點的第一網(wǎng)格;采用第一網(wǎng)格的點作為開始點來計算表示隱含表面在時間上的第二點的近似值的點的第二網(wǎng)格;其特征在于,所述方法包括下列步驟-采用第一和第二網(wǎng)格的點作為第一和第二非線性坐標賦值函數(shù)的控制點;-繪制分別由第一和第二非線性坐標賦值函數(shù)定義的表面。
2.如權利要求1所述的計算機圖形動畫制作方法,其中,繪制步驟包括分別從控制點的第一和第二網(wǎng)格計算平面三角形的第一和第二網(wǎng)格的角點,平面三角形的第一和第二網(wǎng)格近似分別由第一和第二坐標賦值函數(shù)定義的表面,表面由被繪制的平面三角形的所述網(wǎng)格定義。
3.如權利要求2所述的計算機圖形動畫制作方法,其中,將取景變換運用到控制點的第一和第二網(wǎng)格,其中角點是從變換出的控制點計算出的。
4.如權利要求1所述的計算機圖形動畫制作方法,其中,坐標賦值函數(shù)是在Bezier三角形上定義的二次Bezier函數(shù)。
5.如權利要求1所述的計算機圖形動畫制作方法,隱含表面模型通過一個坐標值的函數(shù)來定義,在所述表面上的所有點的坐標都產(chǎn)生相同的函數(shù)值,其中,第二網(wǎng)格的點通過在所述函數(shù)到第一網(wǎng)格的點的局部梯度的方向上增加一項來計算。
6.如權利要求2所述的計算機圖形動畫制作方法,其中,從控制點的第二網(wǎng)格計算平面三角形的第二網(wǎng)格的角點的一部分,從平面三角形的第一網(wǎng)格的角點復制平面三角形的第二網(wǎng)格的角點的剩余部分,調(diào)節(jié)所述部分的大小,以便將所述方法所需的計算量保持為低于在實時限制下允許的最大值。
7.一種計算機圖形設備,包括-用于接收一個時間相關的隱含表面模型的參數(shù)的輸入端;-計算單元,被安排為計算表示隱含表面在時間上的第一點的近似值的點的第一網(wǎng)格,計算單元被安排為采用第一網(wǎng)格的點作為開始點,來計算表示隱含表面在時間上的第二點的近似值的點的第二網(wǎng)格;其特征在于,所述設備包括一個變換單元,被安排為采用第一和第二網(wǎng)格點作為第一和第二非線性坐標賦值函數(shù)的控制點,其中,所述設備包括一個繪制單元,用于繪制分別由第一和第二非線性坐標賦值函數(shù)定義的表面。
8.如權利要求7所述的計算機圖形設備,其中,繪制單元包括-又一個變換單元,被安排為分別從控制點的第一和第二網(wǎng)格計算平面三角形的第一和第二網(wǎng)格的角點,平面三角形的第一和第二網(wǎng)格近似分別由第一和第二坐標賦值函數(shù)定義的表面,-平面三角形繪制單元,用于繪制由平面三角形的所述網(wǎng)格定義的表面。
9.如權利要求8所述的計算機圖形設備,所述設備被安排為將取景變換運用到控制點的第一和第二網(wǎng)格,角點從變換出的控制點計算出來。
10.如權利要求7所述的計算機圖形設備,其中,坐標賦值函數(shù)是在Bezier三角形上定義的二次Bezier函數(shù)。
11.如權利要求7所述的計算機圖形設備,隱含表面模型通過一個坐標值的函數(shù)來定義,在所述表面上的所有點的坐標都產(chǎn)生相同的函數(shù)值,其中,計算單元通過在所述函數(shù)到第一網(wǎng)格的點的局部梯度的方向上增加一項來計算第二網(wǎng)格的點。
12.如權利要求8所述的計算機圖形設備,其中,計算單元從控制點的第二網(wǎng)格計算平面三角形的第二網(wǎng)格的角點的一部分,從平面三角形的第一網(wǎng)格的角點復制平面三角形的第二網(wǎng)格的角點的剩余部分,所述設備調(diào)節(jié)所述部分的大小,以便將所述方法所需的計算量保持為低于在實時限制下允許的最大值。
全文摘要
隱含表面由一個時間相關隱含表面模型定義。從隱含表面模型分別計算出第一和第二非線性坐標賦值函數(shù)的控制點的第一和第二網(wǎng)格。第一和第二非線性坐標賦值函數(shù)分別表示在時間上的第一點和第二點的隱含表面的近似值。第一網(wǎng)格的點用作為計算第二網(wǎng)格的點的近似值的開始值。例如,通過由平面三角形的相應網(wǎng)格進行近似來繪制分別由第一和第二非線性坐標賦值函數(shù)定義的表面。
文檔編號G06T13/20GK1277699SQ99801456
公開日2000年12月20日 申請日期1999年6月17日 優(yōu)先權日1998年7月1日
發(fā)明者J·布瑞恩斯, C·W·A·M·范奧弗維爾德 申請人:皇家菲利浦電子有限公司