亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

曲面圖像處理裝置及曲面圖像處理方法

文檔序號(hào):6420674閱讀:232來源:國(guó)知局
專利名稱:曲面圖像處理裝置及曲面圖像處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種3維計(jì)算機(jī)繪畫(graphics)領(lǐng)域中、使用由非均勻有理B樣條(NURBSNon Uniform Rational B-Spline)函數(shù)描述的圖像信息來描繪3維對(duì)象(object)的曲面圖像處理裝置及其方法。
背景技術(shù)
在近年來的圖像處理領(lǐng)域中,隨著計(jì)算機(jī)性能的顯著提高,處理可表現(xiàn)復(fù)雜形狀的自由曲面的CAGD(Computer Aided GeometricDesign)系統(tǒng)或幾何學(xué)模型系統(tǒng)增多。雖然存在幾個(gè)用于形成自由曲面的表現(xiàn)方法,但其中,NURBS曲線或NURBS曲面具有可用少數(shù)控制點(diǎn)來表現(xiàn)平滑曲面的優(yōu)點(diǎn)。并且,除控制點(diǎn)外,重量、用于操作節(jié)點(diǎn)(knot)等形狀的參數(shù)多,可以使形狀局部變化,另外,因?yàn)榫哂幸部山y(tǒng)一表現(xiàn)圓弧或直線、拋物線等圓錐曲線的好的表現(xiàn)能力,所以需要用NURBS數(shù)據(jù)制作的圖像模塊的繪制(rendering)技術(shù)。
下面,將使用該NURBS數(shù)據(jù)的繪制技術(shù)中的問題分為4個(gè)(A)-(D),順序就各問題進(jìn)行說明。
首先,作為(A),就使用NURBS數(shù)據(jù)來生成曲面圖像的處理整體中的背景技術(shù)進(jìn)行說明。
圖3(a)及(b)是表示NURBS曲線及NURBS曲面例的圖。NURBS曲線31是將參數(shù)u設(shè)為媒介變量的參數(shù)曲線,由多個(gè)控制點(diǎn)列32、各控制點(diǎn)的重量w、和作為表示伴隨參數(shù)u的變化的各控制點(diǎn)影響力變化的節(jié)點(diǎn)列的節(jié)點(diǎn)矢量來操作曲線形狀。另外,NURBS數(shù)據(jù)的各控制點(diǎn)32不限于NURBS曲線31上的點(diǎn)。
NURBS曲面33是將參數(shù)u、v作為媒介變量的參數(shù)曲面,其曲面形狀與NURBS曲線31一樣,由用34表示的控制點(diǎn)列、重量、和作為節(jié)點(diǎn)列的節(jié)點(diǎn)矢量來操作。
一般,NURBS曲面S(u、v)由(式1)來表示。
式1S(u,v)=m-1i=0n-1j=0Bi,m(u)Bj,n(v)wijQijm-1i=0n-1j=0Bi,m(u)Bj,n(v)wij----(1)]]>(式1)中,w表示重量,Q表示控制點(diǎn)。另外,(式1)中,將函數(shù)B稱為B樣條基底函數(shù),若用de Boor-Cox的漸近式來表現(xiàn)該B樣條基底函數(shù),則成立(式2)、(式3)。
式2 式3Bi,k(t)=t-titi+k-1tiBi,k-1(t)+ti+k-tti+K-ti+1Bi+1,k-1(t)----(3)]]>(式2)、(式3)中,k表示次數(shù),t表示參數(shù),ti表示節(jié)點(diǎn)。
以前,在NURBS數(shù)據(jù)的圖像處理中,關(guān)于這些算式的運(yùn)算量非常多,存在可由要求實(shí)時(shí)性的圖像處理系統(tǒng)表現(xiàn)的NURBS數(shù)據(jù)量有限的問題。并且,在將使用NURBS數(shù)據(jù)的圖像處理硬件化的情況下,電路規(guī)模變大,妨礙小型化。
因此,在以3維NURBS曲面為條件下,公開了為了削減運(yùn)算量而在預(yù)處理階段進(jìn)行如下處理的曲面圖像處理裝置(例如參照特開2001-218977號(hào)公報(bào)(第7-23頁))。
在該曲面圖像處理裝置中,不遞歸地計(jì)算(式2)、(式3)的漸近式,而是一般將這些漸近式展開為3次式,通過代入節(jié)點(diǎn)矢量,算出用于求出B樣條基底函數(shù)的系數(shù)矩陣(4×4)。對(duì)定義NURBS曲面的所有控制點(diǎn)列算出這些系數(shù)矩陣。另一方面,在實(shí)時(shí)處理中,邊使參數(shù)u、v變化,邊使用控制點(diǎn)數(shù)據(jù)和系數(shù)矩陣來計(jì)算NURBS曲面上的各點(diǎn)。
另外,在該曲面圖像處理裝置中,為了進(jìn)一步高速化運(yùn)算處理,導(dǎo)入將系數(shù)矩陣和將各參數(shù)u、v的差分Δu、Δv設(shè)為要素的矩陣相乘所得到的差分矩陣,在實(shí)時(shí)處理中,邊使參照u、v變化,邊使用控制點(diǎn)數(shù)據(jù)和差分矩陣及節(jié)點(diǎn)矢量來遞歸計(jì)算NURBS曲面上的各點(diǎn)。
下面,作為(B),說明使用NURBS曲面來進(jìn)行多邊形分割情況下的背景技術(shù)。
最初,對(duì)貝塞爾(Bezier)曲面或B-樣條(B-Spline)曲面等參數(shù)曲面描述一般定義。作為自由曲面的種類,有貝塞爾(Bezier)曲面或B-樣條(B-Spline)曲面等幾種,但廣泛使用NURBS曲面來作為更一般的自由曲面的表現(xiàn)形式。參數(shù)曲面在3維空間中,由兩個(gè)媒介變量(u、v)來連續(xù)定義曲面上的點(diǎn)(x、y、z)。
即,對(duì)于1組媒介變量(u、v),求出1個(gè)3維坐標(biāo)(x、y、z)。為了數(shù)學(xué)地記述這些關(guān)系,使用具有重量的控制點(diǎn)和基底函數(shù)。控制點(diǎn)是確定參數(shù)曲面的位置與形狀框架所必需的3維坐標(biāo),其重量是表示控制點(diǎn)對(duì)曲面造成多大影響、或極端而言是表示如何將曲面引向控制點(diǎn)的參數(shù)??刂泣c(diǎn)的3維坐標(biāo)與其重量用對(duì)應(yīng)于媒介變量(u、v)各自的方向、具有離散的系數(shù)i、j的2維排列描述?;缀瘮?shù)是將這些控制點(diǎn)列與參數(shù)曲面的具體形狀對(duì)應(yīng)起來的函數(shù)。
這里,設(shè)控制點(diǎn)的3維坐標(biāo)為<Q[i][j]>=(qx[i][j]、qy[i][j]、qz[i][j])、設(shè)控制點(diǎn)的重量為qw[i][j]、設(shè)u方向的基底函數(shù)為B[n][i](u)、設(shè)v方向的基底函數(shù)為B[m][i](v),則用下式來表示針對(duì)某個(gè)媒介變量組(u、v)的曲面上點(diǎn)的坐標(biāo)<P>=(px、py、pz)。另外,下面,設(shè)記號(hào)<>表示矢量。
<P>=(∑∑B[n][i](u)*B[m][j](v)*qw[i][j]*<Q[i][j]>)/(∑∑B[n][i](u)*B[m][j](v)*qw[i][j]即,
px=(∑∑B[n][i](u)*B[m][j](v)*qw[i][j]*<qx[i]][j]>)/(∑∑B[n][i](u)*B[m][j](v)*qw[i][j]py=(∑∑B[n][i](u)*B[m][j](v)*qw[i][j]*<qy[i][j]>)/(∑∑B[n][i](u)*B[m][j](v)*qw[i][j]pz=(∑∑B[n][i](u)*B[m][j](v)*qw[i][j]*<qz[i][j]>)/(∑∑B[n][i](u)*B[m][j](v)*qw[i][j]其中,設(shè)i=0、1、2、...、(I-1),i=0、1、2、...、(J-1),記號(hào)∑表示對(duì)范圍i及j取和。這里,I是y方向的控制點(diǎn)數(shù),J是v方向的控制點(diǎn)數(shù)。另外,n及m是u方向及v方向的基底函數(shù)的次數(shù)。
若將NURBS曲面作為參數(shù)曲面,則基底函數(shù)除媒介變量和次數(shù)(或階數(shù))外,還使用節(jié)點(diǎn)矢量為定義。
所謂節(jié)點(diǎn)矢量是將媒體變量所取值以具有曲面形狀的特征的方式,具有某個(gè)間隔并從小的一方順序排列而成的。對(duì)媒介變量u、v各自的方向,可使用不同次數(shù)和不同節(jié)點(diǎn)矢量來定義不同的基底函數(shù)。用u方向的節(jié)點(diǎn)矢量(u
、u[1]、...、u[I+n+1])及v方向的節(jié)點(diǎn)矢量(v
、v[1]、...、v[J+m+1])并由以下的Cox-deBoor漸近式來表示NURBS曲面的基底函數(shù)B[n][i](u)和B[m][i](v)。即,就u方向而言,為B[n][i](u)=[(u-u[i])/(u[i+n]-u[i])]*B[n-1][i](u)+[(u[i+n+1]-u/(u[i+n+1]-u[i+1]))*B[n-1][i+1](u)其中,上式中,次數(shù)n不為0。由于上式是漸近式,所以例如通過n=2的基底函數(shù)來求出n=3的基底函數(shù)。若重復(fù),則必需n=0的基底函數(shù),但n=0時(shí)的基底函數(shù)B[n][i](u)設(shè)為僅在u的范圍在(u[i]、u[i+1])之間時(shí)取值1,此外取值0。另外,節(jié)點(diǎn)矢量的要素每當(dāng)系數(shù)增加,則值相等或單調(diào)增加,所述漸近式中由分?jǐn)?shù)表示的系數(shù)部分在分母為0的情況下被定義為0。順便提及,所述漸近式也可用階數(shù)來代替次數(shù)進(jìn)行表現(xiàn)。階數(shù)是在次數(shù)n上加上1的值。另外,v方向也一樣,定義如下基底函數(shù)。
B[m][j](v)=[(v-v[j])/(v[j+m]-v[j])]*B[m-1][j](v)+[(v[j+m+1]-v)/(v[j+m+1]-v[j+1]))*B[m-1][j+1](v)那么,當(dāng)將NURBS曲面進(jìn)行多邊形分割時(shí),必需代入上面所示的漸近式必需的參數(shù),并求出曲面上的3維坐標(biāo)<P>=(px、py、pz)。
下面,為了簡(jiǎn)化說明,首先不用NURBS曲面而用NURBS曲線來進(jìn)行說明。圖19中,NURBS曲線1901的次數(shù)n=3,用由4個(gè)控制點(diǎn)構(gòu)成的控制點(diǎn)列)Q
、Q[1]、Q[2]、Q[3])和要素?cái)?shù)為8的節(jié)點(diǎn)矢量(u
、u[1]、...、u[7])來定義。用于描述該NURBS曲線1901的媒介變量?jī)H為u,如下表示2維坐標(biāo)<P>=(px、py)。
<P>=(∑B[n][i](u)*qw[i]*<Q[i]>)/(∑B[n][i](u)*qw[i])px=(∑B[n][i](u)*qw[i]*qx[i])/(∑B[n][i](u)*qw[i])py=(∑B[n][i](u)*qw[i]*<qy[i])/(∑B[n][i](u)*qw[i])圖19及上式中在視覺上容易區(qū)分的2維空間中定義NURBS曲線,但也可定義Z坐標(biāo)pz來作為3維空間中的NURBS曲線。順便提及,若設(shè)次數(shù)為n、控制點(diǎn)數(shù)為I,則可由節(jié)點(diǎn)矢量的要素?cái)?shù)(I+n+1)來求出節(jié)點(diǎn)矢量的要素?cái)?shù)與次數(shù)及控制點(diǎn)數(shù)的關(guān)系。圖19的情況下,為4+3+1=8。另外,圖19中,描述NURBS曲線1901的節(jié)點(diǎn)矢量的有效范圍為(u[3]、u[4])的范圍。這樣,為了描繪次數(shù)n=3的NURBS曲線,最少需要4個(gè)控制點(diǎn)。設(shè)次數(shù)n=3恒定,增加1個(gè)控制點(diǎn),則節(jié)點(diǎn)矢量的要素也增加1個(gè),描繪NURBS曲線的節(jié)點(diǎn)矢量的有效范圍擴(kuò)大為(u[3]、u[5])。該狀態(tài)如圖20所示。另外,從圖19及圖20可知,通常NURBS曲線不通過控制點(diǎn)。但是,如后所述,在節(jié)點(diǎn)矢量的排列表示有理貝塞爾曲線的情況下,端點(diǎn)處具有控制點(diǎn)。
下面,考慮將圖19所示NURBS曲線近似為兩個(gè)線段。為此,如圖21所示,在NURBS曲線上取兩端和中間點(diǎn)等3個(gè)點(diǎn),用直線連結(jié)。作為媒介變量u的值,由于節(jié)點(diǎn)矢量的有效范圍為(u[3]、u[4]),所以例如分別將例如u[3]及u[4]、和作為其中間值的(u[3]+u[4])/2代入上式,求出NURBS曲線上點(diǎn)的位置坐標(biāo)。在將圖20所示NURBS曲線2001分割成兩個(gè)線段的情況下,由于節(jié)點(diǎn)矢量的有效范圍為(u[3]、u[5]),所以例如可取u[3]、u[4]、u[5]來作為媒介變量u的值。不用說,NURBS曲線的控制點(diǎn)數(shù)或分割的線段數(shù)不限于本例,可自由設(shè)定。
在上述基礎(chǔ)上,考慮將3維空間中的NURBS曲面分割成平面多邊形。圖22中示出最簡(jiǎn)單的NURBS曲面2201。圖22中,u方向及v方向的次數(shù)都為n=m=3,u方向及v方向的控制點(diǎn)數(shù)都為I=J=4個(gè),即4×4=16個(gè)。節(jié)點(diǎn)矢量在u方向、v方向上分別為(u
、u[1]、...、u[7])、(v
、v[1]、...、v[7]),節(jié)點(diǎn)矢量的要素?cái)?shù)在u方向、v方向是都為(I+n+1)=(J+m+1)=8。描繪NURBS曲面2201的節(jié)點(diǎn)矢量的有效范圍為(u[3]、u[4])及(v[3]、v[4])的范圍。因此,例如取u[3]及u[4]、和作為其中間點(diǎn)的(u[3]+u[4])/2作為u值,取v[3]及v[4]、和作為其中間點(diǎn)的(v[3]+v[4])/2作為v值,則可求出共計(jì)9個(gè)曲面上的點(diǎn)??捎眠@9個(gè)曲面上的點(diǎn)來分割成4個(gè)四邊形多邊形。不用說,也可分割成8個(gè)三角形多邊形。另外,NURBS曲面的控制點(diǎn)數(shù)或分割的多邊形數(shù)不限于本例,也可自由設(shè)定(例如參照特開平3-201073號(hào)公報(bào))。
下面,作為(C),說明將貝塞爾曲面等參數(shù)曲面細(xì)分后處理為微小的多邊形情況下的背景技術(shù)。
現(xiàn)在,作為將包含參數(shù)曲面的3維對(duì)象顯示在2維圖像顯示裝置中的方法,一般使用將對(duì)象近似成多個(gè)微小平面多邊形的集合體后進(jìn)行繪制的方法。
另外,以NURBS曲面或貝塞爾曲面等參數(shù)曲面的形式平滑表現(xiàn)的對(duì)象與用三角形等多角形多邊形的集合表現(xiàn)的對(duì)象相比,數(shù)據(jù)量少,與利用近年來迅速發(fā)展的網(wǎng)絡(luò)來傳輸?shù)鹊挠H和性高。
作為將參數(shù)曲面分割成多邊形的一般方法,使用如下方法,即在定義的參數(shù)曲面的方程式中,使媒介變量的值具有一定間隔地離散變化,直接求出參數(shù)曲面上的點(diǎn),使多個(gè)鄰接這些點(diǎn)的點(diǎn)彼此組合,形成平面多邊形。一般將這種處理稱為テツセレ-シヨン。
圖30中示出作為代表性參數(shù)曲面的4階(3次)有理貝塞爾曲面的實(shí)例。4階(3次)有理貝塞爾曲面用如下(式4)的形式表示。
(式4) 用u、v兩個(gè)獨(dú)立的參數(shù)來表現(xiàn)參數(shù)曲面。其中,0<=u<=1、0<=v<=1。Qij(i=0、...、3、j=0、...、3)是定義貝塞爾曲面形狀的控制點(diǎn),在4階(3次)的情況下存在4×4=16個(gè)點(diǎn)??刂泣c(diǎn)中,Q00、Q30、Q03、Q33存在于曲面上,但此外的點(diǎn)不存在于曲面上。各控制點(diǎn)除X、Y、Z分量外,還包含相當(dāng)于重量的W分量。因此,曲面上的任意點(diǎn)P都用P(X(u、v)/W(u、v)、Y(u、v)/W(u、v)、Z(u、v)/W(u、v))表示,另外,已知貝塞爾曲面中存在凸包性,曲面完全包含于由控制點(diǎn)擴(kuò)展的多面體中。
對(duì)象由上述參數(shù)曲面的集合來表現(xiàn)。下面,將構(gòu)成對(duì)象的參數(shù)曲面稱為補(bǔ)丁(patch)來進(jìn)行說明。為了高精度描繪對(duì)象,也可用細(xì)小的多個(gè)多邊形近似表現(xiàn)各補(bǔ)丁。但是,若處理的多邊形數(shù)增大,則計(jì)算負(fù)荷變得非常大。因此,在盡可能抑制多邊形生成量的同時(shí),要求確立可高精度描繪的方法。
為此,在現(xiàn)有技術(shù)中,每當(dāng)將曲面補(bǔ)丁分割成左曲面補(bǔ)丁與右曲面補(bǔ)丁時(shí),算出分割的各補(bǔ)丁的平坦度,在平坦度大于允許值的情況下,再分割該補(bǔ)丁。另外,提議重復(fù)處理、直到所有細(xì)分割補(bǔ)丁的平坦度都在允許值內(nèi)的方法(例如參照特開平11-007544號(hào)公報(bào)(第11-14頁))。
另外,如圖49所示,連結(jié)控制點(diǎn)的端點(diǎn),生成邊緣,算出從邊緣的中點(diǎn)到表現(xiàn)多邊形表面的曲面上的中點(diǎn)的矢量,將該矢量設(shè)為弦的偏移矢量。另外,也有對(duì)應(yīng)于透視變換弦的偏移矢量時(shí)的標(biāo)尺上的矢量長(zhǎng)度,確定清晰度的量的方法(例如參照特開2001-52194號(hào)公報(bào)(第5頁)。
下面,作為(D),說明形成細(xì)分割的曲面補(bǔ)丁的各控制點(diǎn)的法線計(jì)算的背景技術(shù)。
用NURBS曲面進(jìn)行節(jié)點(diǎn)插入并進(jìn)行參數(shù)變換的貝塞爾曲面若提供(n+1)×(n+1)個(gè)控制點(diǎn),則構(gòu)成雙n次貝塞爾曲面。這里簡(jiǎn)稱為n次貝塞爾曲面。另外,在3維計(jì)算機(jī)、繪畫領(lǐng)域中,為了容易控制曲面,多用3維貝塞爾曲面(例如參照[計(jì)算機(jī)繪畫第2版、川合慧鑒、凸版印刷株式會(huì)社綜合研究所圖像信息中心譯、日刊工業(yè)新聞社])。
3維貝塞爾曲面一般由下示(式5)表示。(式5)中的Pij是控制點(diǎn)的坐標(biāo),Ji、Ki是由(式6)、(式7)表示的Bernstein函數(shù)。P(u、v)表示特定u、v(0≤u、v≤1)的自由曲面上的頂點(diǎn)坐標(biāo)。
(式5)P(u,v)=Σi=03Σj=03PijJiKj----(5)]]>(式6)Ji=3!i!(3-i)!ui(1-u)3-i----(6)]]>
(式7)Kj=3!j!(3-j)!uj(1-u)3-j----(7)]]>貝塞爾曲面用(式5)及(式6)來直接描繪。此時(shí),在計(jì)算曲面與其它曲面或投影面交叉的邊的計(jì)算中使用反復(fù)法等,計(jì)算時(shí)間很多。
另一方面,為了比這種直接描繪方法更快地描繪,使用テツセレ-シヨン方法,即通過對(duì)特定的參數(shù)組(u、v)評(píng)價(jià)P(u、v),算出自由曲面上的點(diǎn),用可連結(jié)這些點(diǎn)的多角形的集合來近似描繪(例如參照特開2001-331812號(hào)公報(bào))。
或者,作為其它描繪方法,還可通過重復(fù)對(duì)鄰接控制點(diǎn)間平均坐標(biāo)來產(chǎn)生新的控制點(diǎn)的處理的所謂細(xì)分割法的方法來用多角形近似描繪(例如參照特開平11-7544號(hào)公報(bào))。
另外,在3維計(jì)算機(jī)繪圖領(lǐng)域中,不僅物體的形狀品質(zhì)、而且色彩、帶陰影等的處理也是確定畫質(zhì)的重要要素。各曲面中的帶陰影使用物體的法線,重要的是正確算出法線。
但是,在由作為曲面圖像處理裝置整體的計(jì)算步驟的(A)處理的背景描述中,在現(xiàn)有曲面圖像處理裝置中,因?yàn)樵陬A(yù)處理階段中算出各系數(shù)矩陣,所以存在NURBS數(shù)據(jù)以外的數(shù)據(jù)量增大的問題。
另外,還存在輸入數(shù)據(jù)受限于3維NURBS曲面的問題。并且,在使用差分矩陣的情況下,存在各參照u、v的增量受限于恒定值(Δu、Δv)的問題。另外,若嚴(yán)格表現(xiàn)NURBS曲面,則必需有理化系數(shù)矩陣,所以必需除以算出的NURBS曲面上的各點(diǎn),存在除法引起的運(yùn)算量增加的問題。
下面,在描繪上述(B)的NURBS曲面的情況下,通過直接求出NURBS曲面上的點(diǎn),進(jìn)行多邊形分割。但是,為了通過該方法計(jì)算NURBS曲面上的點(diǎn)的坐標(biāo),必需求出用上述Cox-deBoor漸近式表示的基底函數(shù),存在必需非常多的運(yùn)算量的問題。
另外,以前,以上參數(shù)曲面的直接多邊形分割、即テツセレ-シヨン處理由CPU進(jìn)行運(yùn)算。但是,為了更細(xì)致真實(shí)地表現(xiàn)作為對(duì)象的3維對(duì)象,必需需要增大用于近似曲面的多邊形分割數(shù),對(duì)CPU的負(fù)荷變得更加大。另外,即便在由硬接線來構(gòu)成將參數(shù)曲面分割成多邊形的電路(テツセレ-タ)的情況下,也存在用于求出曲面上的點(diǎn)的運(yùn)算電路的規(guī)模變大的問題。
因此,為了解決這些問題,在本發(fā)明中,不直接求出NURBS曲面上的點(diǎn),而是通過邊將NURBS曲面等效變換成較簡(jiǎn)單的有理貝塞爾曲面,邊直接求出該有理貝塞爾曲面上的點(diǎn)來進(jìn)行多邊形分割。這是由于有理貝塞爾曲面可通過使用再分法來容易求出曲面上的控制點(diǎn)。另外,在通過節(jié)點(diǎn)插入將B樣條曲線變換為區(qū)分有理貝塞爾曲線的方法中,有基于Oslo算法或Bohm的方法(例如參照[Parutzsh,H.,”AShort Proof of the Oslo Algorithm,”Comp.Aid.Geom.Des.,Vol.1,pp.95-96,1984]或[Bohm,W.,”Inserting New Knots into B-splineCurves”Comp.Aid.Des.,Vol.12,pp.199-201,1980])。
因此,若首先描述將NURBS曲面等效變換成有理貝塞爾曲面時(shí)產(chǎn)生的問題,則為了將NURBS曲面等效變換成有理貝塞爾曲面,可使用所謂節(jié)點(diǎn)插入的方法。下面,詳細(xì)說明使用節(jié)點(diǎn)插入算法的曲面變換方法。
首先,為了簡(jiǎn)化說明,說明將NURBS曲線變換成有理貝塞爾曲線的方法。就NURBS曲線中的節(jié)點(diǎn)插入,已知以下的算法。即,次數(shù)為n,控制點(diǎn)列為(Q
、Q[1]、...、Q[I-1])(控制點(diǎn)數(shù)為I),當(dāng)初始的節(jié)點(diǎn)矢量為(u
、u[1]、...、u[I+n])時(shí)(節(jié)點(diǎn)矢量的要素?cái)?shù)為I+n+1),若在節(jié)點(diǎn)u[k]與u[k+1]之間插入1個(gè)新的節(jié)點(diǎn)~u(節(jié)點(diǎn)插入位置k),則新的控制點(diǎn)列(Q
′、Q[1]′、...、Q[I]′)由下式表示。
<Q′[i]>=(1-a[i]*<Q[i-1]>+a[i]*<Q[i]>
其中,在上式中,i不為0。i=0的情況如下所示。
<Q′
>=a
*<Q
>
這里,上式中包含的系數(shù)排列a[i]由下式表示。
a[i]=1(i小于k-n時(shí))a[i]=0(i大于k+1時(shí))a[i]=(~u-u[i])/(u[i+n]-u[i](i為此外值時(shí))例如,設(shè)初始的控制點(diǎn)列為(Q
、Q[1]、Q[2]、Q[3])、設(shè)初始的節(jié)點(diǎn)矢量為(u
、u[1]、...、u[7]),當(dāng)在節(jié)點(diǎn)u[3]與u[4]之間插入一個(gè)值等于u[3]的新的節(jié)點(diǎn)~u時(shí),新的控制點(diǎn)列(Q
′、Q[1]′、...、Q[4]′)如下所示。即,因?yàn)楣?jié)點(diǎn)的插入位置為k=3,所以系數(shù)排列為a
=1a[1]=(~u-u[1])/(u[4]-u[1])=(u[3]-u[1])/(u[4]-u[1])a[2]=(~u-u[2])/(u[5]-u[2])=(u[3]-u[2])/(u[5]-u[2])a[3]=(~u-u[3])/(u[6]-u[3])=0a[4]=0用該系列排列,構(gòu)成<Q′
>=a
*<Q
>=<Q
>
<Q′[1]>=(1-a[1]*<Q
>+a[1]*<Q[1]>
<Q′[2]>=(1-a[2]*<Q[1]>+a[2]*<Q[2]>
<Q′[3]>=(1-a[3]*<Q[2]>+a[3]*<Q[3]>=<Q[2]>
<Q′[4]>=(1-a[4]*<Q[3]>+a[4]*<Q[4]>=<Q[3]>
。這表示消除初始的控制點(diǎn)<Q[1]>,在新的位置<Q′[1]>及<Q′[2]>處生成控制點(diǎn)。
但是,實(shí)際上控制點(diǎn)具有重量。此時(shí),必需將控制點(diǎn)的位置坐標(biāo)變換成同次坐標(biāo)并代入上式。即,將控制點(diǎn)表示為2維坐標(biāo)<Q[i]>=(qx[i]、qy[i]),重量為qw[i]時(shí),同次坐標(biāo)為在位置坐標(biāo)上乘以重量,<Q[i]>=(qw[i]*qx[i]、qw[i]*qy[i]、qw[i])。另外,當(dāng)將控制點(diǎn)表示為3維坐標(biāo)<Q[i]>=(qx[i]、qy[i]、qz[i])時(shí),同次坐標(biāo)為<Q[i]>=(qw[i]*qx[i]、qw[i]*qy[i]、qw[i]*qz[i]、qw[i])。這樣,若使用變換成同次坐標(biāo)的控制點(diǎn)來進(jìn)行上述節(jié)點(diǎn)插入,則因?yàn)樽罱K的控制點(diǎn)列也變?yōu)橥巫鴺?biāo),所以為了返回通常坐標(biāo),必需用重量進(jìn)行除法。
但是,當(dāng)使用節(jié)點(diǎn)插入算法來將NURBS曲線等效變換有理貝塞爾曲線時(shí),產(chǎn)生應(yīng)舍去的無用控制點(diǎn),并且舍去的控制點(diǎn)數(shù)本身因初始節(jié)點(diǎn)矢量的排列方法而變化。因此,僅由節(jié)點(diǎn)插入來將NURBS曲線簡(jiǎn)單變換為有理貝塞爾曲線中,應(yīng)舍去的控制點(diǎn)的位置和數(shù)量不明確,以后的細(xì)分割處理變困難。
另外,下面說明將圖19的NURBS曲線變換為有理貝塞爾曲線時(shí)產(chǎn)生無用控制點(diǎn)的具體例。
作為產(chǎn)生無用控制點(diǎn)的第一例,圖19的NURBS曲線1901的次數(shù)n=3,用控制點(diǎn)列(Q
、Q[1]、Q[2]、Q[3])及節(jié)點(diǎn)矢量(u
、u[1]、...、u[7])來定義。即,控制點(diǎn)數(shù)為4,節(jié)點(diǎn)矢量的要素?cái)?shù)為8。其中,對(duì)所有不同系數(shù)i、j(i<j)假設(shè)u[i]<u[j]。這里,如圖23所示,1個(gè)個(gè)地將節(jié)點(diǎn)插入初始的節(jié)點(diǎn)矢量(u
、u[1]、...、u[7])中,最終的節(jié)點(diǎn)矢量變?yōu)?u′
、u′[1]、u′[2]、...)。這里,若滿足以下關(guān)系,則生成的最終NURBS曲線形狀不變地被等效變換為1個(gè)有理貝塞爾曲線。
u
=u′
u[1]=u′[1]u[2]=u′[2]u[3]=u′[3]=u′[4]=u′[5]u[4]=u′[6]=u′[7]=u′[8]u[5]=u′[9]u[6]=u′[10]u[7]=u′[11]即,因?yàn)镹URBS曲線的初始節(jié)點(diǎn)矢量的有效范圍為(u[3]、u[4]),所以該范圍內(nèi)的節(jié)點(diǎn)u[3]及u[4]分別變?yōu)閺?fù)用度3地(等于次數(shù)n=3地)插入節(jié)點(diǎn),得到最終的節(jié)點(diǎn)矢量(u′
、u′[1]、u′[2]、...、u′[11])。在本實(shí)例中,插入4個(gè)新的節(jié)點(diǎn)。因此,最終的控制點(diǎn)數(shù)也增加4個(gè),變?yōu)?,最終的控制點(diǎn)列變?yōu)?Q′
、Q′[1]、...、Q′[7])。已知用這種節(jié)點(diǎn)排列方法定義的NURBS曲線與有理貝塞爾曲線等價(jià),最初的NURBS曲線與形狀完全一致。這里,[節(jié)點(diǎn)插入后的最終控制點(diǎn)數(shù)]為8,但由于[定義有理貝塞爾曲線的控制點(diǎn)數(shù)]為4,所以可知最終的控制點(diǎn)列中在表示有理貝塞爾曲線中有4個(gè)控制點(diǎn)是無用的。
另外,作為產(chǎn)生無用控制點(diǎn)的第二例,考慮增加1個(gè)初始節(jié)點(diǎn)矢量(u
、u[1]、...、u[8])的情況。其中,對(duì)所有不同系數(shù)i、j(i<j)假設(shè)u[i]<u[j]。為了得到有理貝塞爾曲線,與上例一樣,設(shè)節(jié)點(diǎn)插入后的最終節(jié)點(diǎn)矢量(u′
、u′[1]、u′[2]、...)如下。
u
=u′
u[1]=u′[1]u[2]=u′[2]u[3]=u′[3]=u′[4]=u′[5]u[4]=u′[6]=u′[7]=u′[8]u[5]=u′[9]=u′[10]=u′[11]u[6]=u′[12]u[7]=u′[13]u[8]=u′[14]即,因?yàn)镹URBS曲線的初始節(jié)點(diǎn)矢量的有效范圍為(u[3]、u[5]),所以該范圍內(nèi)的節(jié)點(diǎn)u[3]、u[4]及u[5]分別變?yōu)閺?fù)用度3地(等于次數(shù)n=3地)插入節(jié)點(diǎn),得到最終的節(jié)點(diǎn)矢量(u′
、u′[1]、u′[2]、...、u′[14])。即,節(jié)點(diǎn)插入后的最終控制點(diǎn)數(shù)是比節(jié)點(diǎn)矢量要素?cái)?shù)15小4的11。此時(shí),將最初的NURBS曲線分割成連續(xù)的兩個(gè)有理貝塞爾曲線。其中,因?yàn)樵搩蓚€(gè)有理貝塞爾曲線在連接部共有1個(gè)控制點(diǎn),所以定義有理貝塞爾曲線的控制點(diǎn)數(shù)為4×2-1=7。因此,也知這里有4個(gè)控制點(diǎn)是無用的。
但是,根據(jù)初始的節(jié)點(diǎn)矢量值的排列方法不同,應(yīng)舍去的無用控制點(diǎn)數(shù)不限于總是4個(gè)。即,應(yīng)舍去的無用控制點(diǎn)數(shù)隨著初始節(jié)點(diǎn)矢量變化。這導(dǎo)致初始節(jié)點(diǎn)矢量的要素中包含值相等的節(jié)點(diǎn)。
即,作為產(chǎn)生無用控制點(diǎn)的第三例,有時(shí)對(duì)于不同指數(shù)i、j(i<j),包含u[i]=u[j]的節(jié)點(diǎn)。例如,在上例中,若考慮初始節(jié)點(diǎn)矢量(u
、u[1]、...、u[8])中存在u[2]=u[3]的關(guān)系的情況,則將節(jié)點(diǎn)插入后最終生成的NURBS曲線等效變換為連續(xù)的兩個(gè)有理貝塞爾曲線中必需滿足以下關(guān)系。
u
=u′
u[1]=u′[1]u[2]=u[3]=u′[2]=u′[3]=u′[4]u[4]=u′[5]=u′[6]=u′[7]u[5]=u′[8]=u′[9]=u′[10]u[6]=u′[11]u[7]=u′[12]u[8]=u′[13]即,因?yàn)镹URBS曲線的初始節(jié)點(diǎn)矢量的有效范圍為(u[3]、u[5]),且u[2]=u[3],所以對(duì)于u[3]、也包含u[2]地變?yōu)閺?fù)用度3地、u[4]及u[5]也分別變?yōu)閺?fù)用度3地插入節(jié)點(diǎn),得到最終的節(jié)點(diǎn)矢量(u′
、u′[1]、u′[2]、...、u′[13])。這里,節(jié)點(diǎn)插入后的最終控制點(diǎn)數(shù)為14-4=10,但由于定義有理貝塞爾曲線的控制點(diǎn)數(shù)為4×2-1=7,所以可知本例中有3個(gè)控制點(diǎn)是無用的。
這種無用控制點(diǎn)的發(fā)生對(duì)將NURBS曲面等效變換為有理貝塞爾曲線的情況也完全一樣。
作為產(chǎn)生無用控制點(diǎn)的第四例,說明NURBS曲面的情況,但在NURBS曲面的情況下,用2維排列來定義控制點(diǎn),分別沿u方向及v方向來定義作為基底函數(shù)參數(shù)的次數(shù)及節(jié)點(diǎn)矢量。因此,通過分別對(duì)u方向及v方向進(jìn)行節(jié)點(diǎn)插入,可能將NURBS曲面等效變換為有理貝塞爾曲線。
例如,NURBS曲面的控制點(diǎn)數(shù)為5×5=25個(gè),設(shè)u方向及v方向的次數(shù)為m=n=3,設(shè)u方向的節(jié)點(diǎn)矢量為(u
、u[1]、...、u[8]),設(shè)v方向的節(jié)點(diǎn)矢量為(v
、v[1]...、v[8])。另外,就u方向的節(jié)點(diǎn)矢量而言,對(duì)于所有不同指數(shù)i、j(i<j),u[i]<u[j]成立,對(duì)于v方向的節(jié)點(diǎn)矢量,為v[2]=v[3],此外假設(shè)為v[i]<v[j]成立。若將節(jié)點(diǎn)插入后的最終的u方向及v方向的節(jié)點(diǎn)矢量分別設(shè)為(u′
、u′[1]、u′[2]、...)及(v′
、v′[1]、v′[2]、...),則根據(jù)此前的類推,為了等效變換為有理貝塞爾曲線,必需滿足以下關(guān)系。
u
=u′
u[1]=u′[1]u[2]=u′[2]u[3]==u′[3]=u′[4]=u′[5]u[4]=u′[6]=u′[7]=u′[8]u[5]=u′[9]=u′[10]=u′[11]u[6]=u′[12]u[7]=u′[13]u[8]=u′[14]v
=v′
v[1]=v′[1]v[2]=v[3]=v′[2]=v′[3]=v′[4]v[4]=v′[5]=v′[6]=v′[7]v[5]=v′[8]=v′[9]=v′[10]v[6]=v′[11]v[7]=v′[12]v[8]=v′[13]
因此,節(jié)點(diǎn)插入后的最終控制點(diǎn)數(shù)在u方向上為11個(gè),在v方向上為10個(gè),所以為11×10=110個(gè)。另一方面,定義有理貝塞爾曲線的控制點(diǎn)數(shù)在u方向上為7個(gè),在v方向上為7個(gè),所以為7×7=49個(gè)。因此,應(yīng)舍去的無用控制點(diǎn)為110-49=61個(gè)。
如上所述,當(dāng)將NURBS曲面變換為有理貝塞爾曲線時(shí),在節(jié)點(diǎn)插入過程中產(chǎn)生無用控制點(diǎn)。
另外,由于初始節(jié)點(diǎn)矢量的排列方法、尤其是初始節(jié)點(diǎn)矢量的有效范圍中的節(jié)點(diǎn)復(fù)用度不同,該無用控制點(diǎn)數(shù)變化,所以必需一般化這些規(guī)則。
并且,通過節(jié)點(diǎn)插入最終變換為有理貝塞爾曲線的控制點(diǎn)數(shù)據(jù)被傳輸?shù)交诤蠹?jí)的再分法的多邊形分割處理塊,但再分處理中必需的控制點(diǎn)最好僅為定義有理貝塞爾曲線的控制點(diǎn),不需要不定義有理貝塞爾曲線的控制點(diǎn)。因此,必需事先從節(jié)點(diǎn)插入后的最終控制點(diǎn)中去除不定義有理貝塞爾曲線的控制點(diǎn),減少數(shù)據(jù)量。
接著,在(C)所示細(xì)分割處理中的例如特開平11-007544號(hào)公報(bào)(第11-14頁)中,因?yàn)槊看渭?xì)分割曲面補(bǔ)丁時(shí)必需算出平坦度,所以存在曲面圖像處理裝置中平坦度的計(jì)算負(fù)荷非常大的問題。
另外,在上述特開2001-52194號(hào)公報(bào)(第5頁)中,不能將弦的偏移矢量用作檢測(cè)形成對(duì)象輪廓邊緣的補(bǔ)丁(后面稱為輪廓邊緣形成補(bǔ)丁來進(jìn)行說明)的指標(biāo)。
下面,在(D)的構(gòu)成貝塞爾曲面的各控制點(diǎn)的法線計(jì)算中,通過所述[計(jì)算機(jī)繪畫第2版、川合慧鑒、凸版印刷株式會(huì)社綜合研究所圖像信息中心譯、日刊工業(yè)新聞社]方法,曲面上的點(diǎn)直接提供(u、v)等參數(shù),算出曲面上的頂點(diǎn),使用途中得到的中間點(diǎn),算出生成的曲面上的點(diǎn)的法線。另外,記述曲面補(bǔ)丁的各控制點(diǎn)的法線計(jì)算在四個(gè)角的點(diǎn)或鄰接的控制點(diǎn)一致的情況下,判斷一致并避免計(jì)算,但未公開如何避免等具體方法。
另外,在上述特開平11-7544號(hào)公報(bào)的方法中,為了算出曲面上的法線,使用一般式導(dǎo)致計(jì)算時(shí)間變得很長(zhǎng)。另外,使用ク-ンズ的補(bǔ)丁,法線為近似計(jì)算。
并且,在上述特開2001-331812號(hào)公報(bào)或特開平11-7544號(hào)公報(bào)的方法中,當(dāng)最終生成圖像時(shí),在僅使用位于曲面上的控制點(diǎn)的情況下,即便對(duì)無用的控制點(diǎn),在途中也進(jìn)行法線計(jì)算,產(chǎn)生運(yùn)算量增加的問題。

發(fā)明內(nèi)容
本發(fā)明鑒于上述問題,其第一目的在于提供一種在使用NURBS數(shù)據(jù)作為圖形信息的圖像處理中、可更高速且高品質(zhì)地進(jìn)行繪制的曲面圖像處理裝置。
另外,本發(fā)明的第二目的在于提供一種在使用NURBS數(shù)據(jù)并通過節(jié)點(diǎn)插入變換為有理貝塞爾數(shù)據(jù)后、即便在通過再分法進(jìn)行多邊形分割的運(yùn)算步驟中,也能更有效地降低圖像處理中的運(yùn)算量的曲面圖像處理裝置。
并且,本發(fā)明的第三目的在于提供一種即便在通過再分法進(jìn)行曲面的多邊形分割的情況下,也能更有效進(jìn)行曲面的分割處理并減輕運(yùn)算處理的曲面圖像處理裝置。
另外,本發(fā)明的第四目的在于提供一種即便在使用位于貝塞爾曲面等曲面上的控制點(diǎn)信息來進(jìn)行法線計(jì)算的情況下、也能通過適于作為頂點(diǎn)的曲面四個(gè)角的控制點(diǎn)的法線計(jì)算的方法,來有效算出正確的法線的曲面圖像處理裝置。
為了解決上述問題,根據(jù)本發(fā)明的曲面圖像處理裝置,用作為3維對(duì)象的形狀數(shù)據(jù)的NURBS數(shù)據(jù),在畫面上描繪所述3維對(duì)象,其特征在于具備數(shù)據(jù)變換單元,將由NURBS曲線及NURBS曲面形成的所述NURBS數(shù)據(jù)參數(shù)變換為形成有理貝塞爾曲線及有理貝塞爾曲面的有理貝塞爾控制點(diǎn)數(shù)據(jù);曲面分割單元,將該數(shù)據(jù)變換單元變換的所述有理貝塞爾控制點(diǎn)數(shù)據(jù)所構(gòu)成的有理貝塞爾曲面補(bǔ)丁細(xì)分割成多個(gè)曲面補(bǔ)??;和描繪單元,用所述曲面補(bǔ)丁來描繪所述3維對(duì)象。
因此,雖在NURBS數(shù)據(jù)不變時(shí)不能將運(yùn)算量進(jìn)行大的細(xì)分割,但通過配備將NURBS數(shù)據(jù)參數(shù)變換為貝塞爾數(shù)據(jù)的數(shù)據(jù)變換部,可有效減輕曲面圖像處理裝置中的3維對(duì)象描繪處理中的運(yùn)算量,可以較短時(shí)間內(nèi)進(jìn)行高精度的描繪處理。
另外,根據(jù)本發(fā)明的曲面圖像處理裝置,所述NURBS數(shù)據(jù)由控制點(diǎn)列與節(jié)點(diǎn)矢量構(gòu)成,所述數(shù)據(jù)變換單元具備節(jié)點(diǎn)插入部,用節(jié)點(diǎn)插入算法,進(jìn)行將所述節(jié)點(diǎn)矢量插入所述控制點(diǎn)列的運(yùn)算;和控制點(diǎn)修整部,從該節(jié)點(diǎn)插入部的運(yùn)算生成的控制點(diǎn)列中包含的控制點(diǎn)內(nèi)刪除無用的控制點(diǎn)。最好是,所述節(jié)點(diǎn)插入部在從所述NURBS數(shù)據(jù)中包含的初始節(jié)點(diǎn)矢量及初始控制點(diǎn)列變換為表示所述有理貝塞爾控制點(diǎn)數(shù)據(jù)的最終節(jié)點(diǎn)矢量及最終控制點(diǎn)列的過程中,搜索位于所述最終節(jié)點(diǎn)矢量的特定位置上的節(jié)點(diǎn)的指數(shù),所述控制點(diǎn)修整部用搜索到的所述指數(shù),刪除所述最終節(jié)點(diǎn)矢量的特定控制點(diǎn)。
因此,因?yàn)檫m當(dāng)刪除NURBS數(shù)據(jù)參照變換到貝塞爾數(shù)據(jù)的參數(shù)變換處理中產(chǎn)生的無用控制點(diǎn),所以進(jìn)行細(xì)分割處理,故減少了多余的運(yùn)算,可進(jìn)行有效的3維對(duì)象的描繪處理。
并且,根據(jù)本發(fā)明的曲面圖像處理裝置,所述曲面分割單元還配備面積算出部,用定義構(gòu)成所述對(duì)象的各曲面補(bǔ)丁形狀的所述有理貝塞爾控制點(diǎn)數(shù)據(jù),算出通過透視變換構(gòu)成的2維圖形的帶符號(hào)面積;和檢測(cè)部,根據(jù)所述帶符號(hào)面積的值,檢測(cè)所述曲面補(bǔ)丁是否是形成作為所述對(duì)象輪廓部的輪廓邊緣的曲面補(bǔ)丁,或所述曲面分割單元還具備細(xì)分割級(jí)確定部,對(duì)應(yīng)所述檢測(cè)部檢測(cè)是否是形成所述輪廓邊緣的曲面補(bǔ)丁的結(jié)果、和所述面積算出部算出的所述曲面補(bǔ)丁在屏幕上的所述帶符號(hào)面積的值,確定所述曲面補(bǔ)丁的細(xì)分割級(jí)。
因此,檢索構(gòu)成由細(xì)分割單元細(xì)分割的有理貝塞爾曲面輪廓部的輪廓邊緣,提高形成輪廓邊緣的曲面補(bǔ)丁的細(xì)分割級(jí),同時(shí),降低不形成輪廓邊緣的曲面補(bǔ)丁的細(xì)分割級(jí),由此省略以前多余的細(xì)分割運(yùn)算,同時(shí),通過將邊緣部細(xì)分割成高級(jí),由此可更高精度地進(jìn)行描繪處理。另外,在細(xì)分割級(jí)的確定中,通過使用帶符號(hào)面積的值,可更有效地進(jìn)行曲面補(bǔ)丁的細(xì)分割。
并且,根據(jù)本發(fā)明的曲面圖像處理裝置,所述曲面圖像處理裝置還具備法線算出單元,用所述有理貝塞爾曲線的所述有理貝塞爾控制點(diǎn)數(shù)據(jù),算出各控制點(diǎn)的法線,所述法線算出單元具備選擇部,在算出距作為所述曲面補(bǔ)丁的四個(gè)角的第一控制點(diǎn)的第4控制點(diǎn)的法線時(shí),對(duì)成為法線計(jì)算對(duì)象的第一控制點(diǎn)選擇相鄰的兩個(gè)控制點(diǎn);和算出部,分別算出所述第一控制點(diǎn)與所述相鄰兩個(gè)控制點(diǎn)之間的矢量,算出被算出的兩個(gè)所述矢量的外積(?),并算出歸一化后的外積,作為所述第一控制點(diǎn)的法線,最好是,所述選擇部在算出距作為所述曲面補(bǔ)丁的四個(gè)角的第一控制點(diǎn)的第4控制點(diǎn)的法線時(shí),在距鄰接所述第一控制點(diǎn)的第二控制點(diǎn)的第四控制點(diǎn)中至少一個(gè)變?yōu)橥丝s后與所述第一控制點(diǎn)相同的坐標(biāo)的情況下,選擇與成為法線計(jì)算對(duì)象的第一控制點(diǎn)鄰接、且與所述第一控制點(diǎn)坐標(biāo)不同的兩個(gè)控制點(diǎn),所述算出部分別算出所述第一控制點(diǎn)與所述選擇部選擇的兩個(gè)控制點(diǎn)之間的矢量,算出兩個(gè)所述矢量的外積,并算出歸一化后的外積,作為所述第一控制點(diǎn)的法線。
因此,在細(xì)分割處理后的曲面補(bǔ)丁的控制點(diǎn)的法線計(jì)算中,因?yàn)橥丝s到其它控制點(diǎn)的控制點(diǎn)在法線矢量的計(jì)算中未被選擇,所以可更正確地進(jìn)行構(gòu)成有理貝塞爾曲面的各控制點(diǎn)的法線計(jì)算,可更高精度地進(jìn)行3維對(duì)象的亮度等描繪處理。
另外,本發(fā)明不僅可實(shí)現(xiàn)為上述曲面圖像處理裝置,而且還可實(shí)現(xiàn)為將該曲面圖像處理裝置配備的單元構(gòu)成步驟的曲面圖像處理方法、由計(jì)算機(jī)等實(shí)現(xiàn)該曲面圖像處理方法的程序,不用說,也可經(jīng)DVD、CD-ROM等記錄媒體或通信網(wǎng)絡(luò)等傳輸媒體來使該程序流通。


圖1是實(shí)施形態(tài)1中曲面圖像處理裝置的功能框圖。
圖2是表示實(shí)施形態(tài)1中曲面圖像處理裝置的整體處理的流程圖。
圖3(a)是表示NURBS曲線一例的圖。
圖3(b)是表示NURBS曲面一例的圖。
圖4(a)是表示3次有理貝塞爾曲線一例的圖。
圖4(b)是表示3次有理貝塞爾曲面一例的圖。
圖5是3維歐幾里德空間中的3次有理貝塞爾曲線的區(qū)段例。
圖6是表示對(duì)3次有理貝塞爾曲線的區(qū)段使用影射空間中的遞推(de Casteljau)算法來進(jìn)行區(qū)段分割的一例的圖。
圖7是用16個(gè)控制點(diǎn)數(shù)據(jù)來表示3次有理貝塞爾曲面補(bǔ)丁的參考圖。
圖8是對(duì)形成有理貝塞爾曲面補(bǔ)丁的參數(shù)u方向的區(qū)段使用步驟205的處理來進(jìn)行分割的結(jié)果的有理貝塞爾曲面補(bǔ)丁的參考圖。
圖9是對(duì)有理貝塞爾曲面補(bǔ)丁、進(jìn)而對(duì)參數(shù)v方向的區(qū)段使用步驟205的處理來進(jìn)行分割的結(jié)果的有理貝塞爾曲面補(bǔ)丁的參考圖。
圖10是表示將4個(gè)曲面補(bǔ)丁變換為多邊形數(shù)據(jù)的實(shí)例圖。
圖11是表示實(shí)施形態(tài)2中的曲面圖像處理裝置的具體處理流程圖。
圖12是根據(jù)實(shí)施形態(tài)3的曲面補(bǔ)丁分割處理部的結(jié)構(gòu)框圖。
圖13是表示區(qū)段分配部的具體處理流程圖。
圖14是根據(jù)實(shí)施形態(tài)4的數(shù)據(jù)變換部的功能結(jié)構(gòu)框圖。
圖15是說明對(duì)有理貝塞爾曲線使用再分法的圖。
圖16是簡(jiǎn)略表示定義有理貝塞爾曲面的控制點(diǎn)的圖。
圖17是說明對(duì)有理貝塞爾曲面使用再分法的圖。
圖18是說明對(duì)有理貝塞爾曲面使用再分法的圖。
圖19是說明對(duì)有理貝塞爾曲線使用再分法的圖。
圖20是表示NURBS曲線一例的圖。
圖21是表示NURBS曲線一例的圖。
圖22是說明現(xiàn)有的NURBS曲面的線段近似的圖。
圖23是說明現(xiàn)有的NURBS曲面的多邊形分割的圖。
圖24是說明基于節(jié)點(diǎn)插入的曲面變換的原理圖。
圖25是說明根據(jù)實(shí)施形態(tài)4的無用控制點(diǎn)的特定的圖。
圖26是說明根據(jù)實(shí)施形態(tài)4的無用控制點(diǎn)的特定的圖。
圖27是說明根據(jù)實(shí)施形態(tài)4的無用控制點(diǎn)的特定的圖。
圖28是說明根據(jù)實(shí)施形態(tài)4的控制點(diǎn)修整方法的圖。
圖29是表示實(shí)施形態(tài)5中曲面補(bǔ)丁分割處理部的功能框圖。
圖30是表示作為參數(shù)曲面的4階(3次)有理貝塞爾曲面實(shí)例的圖。
圖31是表示根據(jù)實(shí)施形態(tài)5的輪廓邊緣檢測(cè)部中的處理流程圖。
圖32(a)是表示通過透視變換控制點(diǎn)構(gòu)成的兩個(gè)三角形帶符號(hào)面積是同符號(hào)情況實(shí)例的圖。
圖32(b)是表示兩個(gè)三角形帶符號(hào)面積是不同符號(hào)情況實(shí)例的圖。
圖33(a)是表示實(shí)施細(xì)分割前的補(bǔ)丁實(shí)例的圖。
圖33(b)是表示實(shí)施1級(jí)細(xì)分割后的補(bǔ)丁實(shí)例的圖。
圖33(c)是表示實(shí)施2級(jí)細(xì)分割后的補(bǔ)丁實(shí)例的圖。
圖34是表示根據(jù)實(shí)施形態(tài)5的細(xì)分割級(jí)確定部的處理流程圖。
圖35(a)是示出表示帶符號(hào)面積的最大值與輪廓邊緣形成補(bǔ)丁的細(xì)分割級(jí)的對(duì)應(yīng)關(guān)系的表格一例的圖。
圖35(b)是示出表示帶符號(hào)面積與細(xì)分割級(jí)的對(duì)應(yīng)關(guān)系的表格一例的圖。
圖36(a)是表示實(shí)施細(xì)分割前的對(duì)象一例的圖。
圖36(b)是表示對(duì)應(yīng)于細(xì)分割級(jí)來細(xì)分割構(gòu)成對(duì)象的各補(bǔ)丁之后的對(duì)象一例的圖。
圖37是表示根據(jù)實(shí)施形態(tài)6的輪廓邊緣檢測(cè)部的處理流程圖。
圖38(a)是表示全部控制多邊形向外的情況一例的圖。
圖38(b)是表示全部向里的情況一例的圖。
圖38(c)是表示控制多邊形中混合存在向外和向里的多邊形情況一例的圖。
圖38(d)是表示控制多邊形中混合存在向外和向里的多邊形情況一例的圖。
圖39是表示根據(jù)實(shí)施形態(tài)6的細(xì)分割級(jí)確定部的處理流程圖。
圖40是示出表示實(shí)施形態(tài)6中輪廓邊緣形成補(bǔ)丁的帶符號(hào)面積與細(xì)分割級(jí)的對(duì)應(yīng)關(guān)系的表格一例的圖。
圖41是表示細(xì)分割級(jí)確定部中的處理流程圖。
圖42(a)是表示在u、v任一軸方向上都基本不必分割的補(bǔ)丁的一例的圖。
圖42(b)是表示在u軸方向上必需細(xì)分割的補(bǔ)丁的一例的圖。
圖42(c)是表示在v軸方向上必需細(xì)分割的補(bǔ)丁的一例的圖。
圖42(d)是表示在u、v軸方向上必需細(xì)分割的補(bǔ)丁的一例的圖。
圖43是將彎曲參數(shù)C與細(xì)分割級(jí)對(duì)應(yīng)的表格。
圖44是表示實(shí)施形態(tài)7中曲面圖像處理裝置的結(jié)構(gòu)一例的圖。
圖45(a)是說明通過方法1來確定最大細(xì)分割級(jí)的方法的圖。
圖45(b)是說明通過方法2來確定最大細(xì)分割級(jí)的方法的圖。
圖46是示出表示曲率參數(shù)與最大細(xì)分割級(jí)的對(duì)應(yīng)關(guān)系的表格一例的圖。
圖47是示出表示補(bǔ)丁的帶符號(hào)面積與細(xì)分割級(jí)的對(duì)應(yīng)關(guān)系的表格一例的圖。
圖48是表示實(shí)施形態(tài)8中曲面圖像處理裝置的結(jié)構(gòu)一例的圖。
圖49是說明現(xiàn)有技術(shù)中的曲面分割方法的圖。
圖50是表示根據(jù)實(shí)施形態(tài)9的法線計(jì)算部的結(jié)構(gòu)的功能框圖。
圖51是表示根據(jù)實(shí)施形態(tài)9的曲面圖像處理裝置另一結(jié)構(gòu)的框圖。
圖52是表示根據(jù)實(shí)施形態(tài)9的法線算出部的處理步驟的流程圖。
圖53是表示鄰接法線算出對(duì)象的控制點(diǎn)的控制點(diǎn)未退縮情況下的法線矢量的實(shí)例的圖。
圖54(a)是說明鄰接法線算出對(duì)象的控制點(diǎn)P00的控制點(diǎn)退縮情況的參考圖。
圖54(b)是說明鄰接法線算出對(duì)象的控制點(diǎn)P00的控制點(diǎn)退縮情況的參考圖。
圖54(c)是說明鄰接法線算出對(duì)象的控制點(diǎn)P00的控制點(diǎn)退縮情況的參考圖。
圖55(a)是表示記載存儲(chǔ)器中存儲(chǔ)的控制點(diǎn)及頂點(diǎn)坐標(biāo)的列表一例的圖。
圖55(b)是表示記載存儲(chǔ)器中存儲(chǔ)的控制點(diǎn)及法線數(shù)據(jù)的列表一例的圖。
具體實(shí)施例方式
下面,用附圖來說明根據(jù)本發(fā)明的曲面圖像處理裝置。另外,在下述實(shí)施形態(tài)1-3中對(duì)具有用NURBS數(shù)據(jù)生成曲面圖像的處理的整體特征的曲面圖像處理裝置100進(jìn)行說明。
(實(shí)施形態(tài)1)圖1表示實(shí)施形態(tài)1中曲面圖像處理裝置100的功能框圖。
該曲面圖像處理裝置100具備輸入NURBS數(shù)據(jù)的數(shù)據(jù)輸入部101、對(duì)NURBS數(shù)據(jù)實(shí)施坐標(biāo)變換的坐標(biāo)變換部102、控制各描繪幀的動(dòng)畫數(shù)據(jù)的動(dòng)畫控制部103、將NURBS數(shù)據(jù)變換為有理貝塞爾數(shù)據(jù)的數(shù)據(jù)變換部104、細(xì)分割有理貝塞爾曲面補(bǔ)丁的曲面補(bǔ)丁分割處理部105、對(duì)分割后的曲面補(bǔ)丁的控制點(diǎn)算出法線矢量的法線計(jì)算部106、對(duì)分割后的曲面補(bǔ)丁實(shí)施透視變換的透視變換部107、及對(duì)曲面補(bǔ)丁進(jìn)行繪制處理的繪制處理部108。
另外,根據(jù)本發(fā)明的曲面圖像處理裝置100不限于圖1的結(jié)構(gòu),只要具備坐標(biāo)變換部102、數(shù)據(jù)變換部104及曲面補(bǔ)丁分割處理部105即可,其它處理部可設(shè)為任意的構(gòu)成要素。
首先,說明根據(jù)本發(fā)明實(shí)施形態(tài)1的曲面圖像處理裝置100中的NURBS數(shù)據(jù)和有理貝塞爾控制點(diǎn)數(shù)據(jù)及其處理方法。
形成NURBS曲線及NURBS曲面的NURBS數(shù)據(jù)由NURBS控制點(diǎn)、各控制點(diǎn)的重量(weight)及節(jié)點(diǎn)矢量這3個(gè)要素構(gòu)成。形成有理貝塞爾曲線及有理貝塞爾曲面的有理貝塞爾控制點(diǎn)數(shù)據(jù)由有理貝塞爾控制點(diǎn)及各控制點(diǎn)的重量這2個(gè)要素構(gòu)成。
通常,若使用3維歐幾里德空間中的通常坐標(biāo)系,則NURBS數(shù)據(jù)及有理貝塞爾控制點(diǎn)數(shù)據(jù)的任意控制點(diǎn)和重量由P(x、y、z)與w的組合來表示。
另一方面,將重量分量w視為1個(gè)坐標(biāo)的坐標(biāo)系被稱為同次坐標(biāo)系,可表示為P(X、Y、Z、w)。由同次坐標(biāo)系表現(xiàn)的空間被稱為射影空間。在由射影空間中的P(X、Y、Z、w)來表現(xiàn)3維歐幾里德空間中的點(diǎn)P(x、y、z)時(shí),兩者之間成立下述(式8)的關(guān)系。
式8P(X,Y,Z,w)=P(wx,xy,wz,w)=wP(x,y,z,1)(8)在本實(shí)施形態(tài)1中,以后對(duì)于NURBS數(shù)據(jù)及有理貝塞爾控制點(diǎn)數(shù)據(jù),將控制點(diǎn)與重量統(tǒng)一稱為控制點(diǎn)數(shù)據(jù),用射影空間中的同次坐標(biāo)系并以P(X、Y、Z、w)的形式來處理。
對(duì)于以上構(gòu)成的曲面圖像處理裝置100,用圖2說明其動(dòng)作。圖2是表示本實(shí)施形態(tài)1中曲面圖像處理裝置100的整體處理的流程圖。
最初,數(shù)據(jù)輸入部101將NURBS數(shù)據(jù)輸入坐標(biāo)變換部102(S201)。
接著,動(dòng)畫控制部103算出當(dāng)前幀中的動(dòng)畫數(shù)據(jù)。這里,動(dòng)畫數(shù)據(jù)例如由表示當(dāng)前幀的經(jīng)過時(shí)刻信息的時(shí)間信息、包含攝像機(jī)位置信息的視點(diǎn)、包含攝像機(jī)方向信息的視線、和包含光源種類或位置、強(qiáng)度信息的光源信息等構(gòu)成(S202)。
之后,坐標(biāo)變換部102使用從動(dòng)畫控制部103輸入的動(dòng)畫數(shù)據(jù)的視點(diǎn)、視線的信息,對(duì)NURBS數(shù)據(jù)實(shí)施模型變換、視野變換、3維空間中的剪切(clipping)處理,算出視野坐標(biāo)系中的NURBS數(shù)據(jù)(S203)。
接著,數(shù)據(jù)變換部104對(duì)形成NURBS數(shù)據(jù)的各NURBS曲線,通過插入節(jié)點(diǎn),變換為由區(qū)段構(gòu)成的區(qū)間有理貝塞爾曲線(S204)。另外,后面描述該區(qū)間有理貝塞爾曲面的說明。并且,通過節(jié)點(diǎn)插入將B樣條曲線變換為有理貝塞爾曲線的方法,有如上述[Parutzsh,H.,”AShort Proof of the Oslo Algorithm,”Comp.Aid.Geom.Des.,Vol.1,pp.95-96,1984]或[Bohm,W.,”Inserting New Knots into B-splineCurves”Comp.Aid.Des.,Vol.12,pp.199-201,1980]所示,有Oslo算法或基于Bohm的方法。
另外,曲面補(bǔ)丁分割處理部105由NURBS數(shù)據(jù)算出多個(gè)有理貝塞爾曲面補(bǔ)丁,進(jìn)行區(qū)間有理貝塞爾曲面的細(xì)分割處理(S205)。該分割處理在本實(shí)施形態(tài)1中用遞推(de Casteljau)算法來進(jìn)行分割。
接著,曲面補(bǔ)丁分割處理部105用從當(dāng)前視點(diǎn)到有理貝塞爾曲面補(bǔ)丁的距離來判斷曲面補(bǔ)丁的細(xì)分割結(jié)果、各曲面補(bǔ)丁是否具有充分的平坦度,在必需再次分割處理的情況下,再次進(jìn)行有理貝塞爾補(bǔ)丁的分割處理(S206為否),另一方面,在充分細(xì)分割所有有理貝塞爾曲面補(bǔ)丁的情況下(S206為是),透視變換部107將各有理貝塞爾曲面補(bǔ)丁近似變換為以控制點(diǎn)數(shù)據(jù)為頂點(diǎn)的多邊形數(shù)據(jù)(S207)。
之后,法線計(jì)算部106算出細(xì)分割后的各多邊形數(shù)據(jù)的控制點(diǎn)的法線矢量(S208),由透視變換部107進(jìn)行將3維坐標(biāo)變換為屏幕上的2維坐標(biāo)的透視變換(S209),接著,由繪制處理部108進(jìn)行各多邊形數(shù)據(jù)的配置、描繪,完成3維對(duì)象的描繪處理(S210)。
另外,對(duì)每個(gè)描繪幀反復(fù)執(zhí)行所有步驟的處理,一旦所有描繪幀的繪制完成,則結(jié)束一系列處理。
NURBS曲面由非均勻(Non Uniform)有理(Rational)B樣條曲線的集合形成。例如圖3(b)中,NURBS曲面33由將參數(shù)u、v設(shè)為媒介變量的雙向NURBS曲線的集合構(gòu)成。
另外,圖4(a)及(b)是表示3次有理貝塞爾曲線及有理貝塞爾曲面一例的圖。圖4(a)中,由多個(gè)控制點(diǎn)數(shù)據(jù)42來操作3次有理貝塞爾曲線41的形狀。一般將具有最小構(gòu)成要素的有理貝塞爾曲線稱為區(qū)段,n次區(qū)段由(n+1)個(gè)控制點(diǎn)數(shù)據(jù)形成,尤其是第1和第(n+1)個(gè)控制點(diǎn)數(shù)據(jù)是曲線上的點(diǎn),稱為端點(diǎn)。例如,3次區(qū)段由4個(gè)控制點(diǎn)數(shù)據(jù)構(gòu)成,第1和第4個(gè)控制點(diǎn)數(shù)據(jù)是端點(diǎn)。并且,將連接區(qū)段的曲線稱為區(qū)間有理貝塞爾曲線。
圖4(a)中,P0、P1、P2是端點(diǎn),P0P1、P1P2的區(qū)間是區(qū)段。這樣,通過連續(xù)提供端點(diǎn),可表現(xiàn)平滑的區(qū)間有理貝塞爾曲線。另外,3次有理貝塞爾曲線41與NURBS曲線一樣,是將參數(shù)u設(shè)為媒體變量的參數(shù)曲線,由(式9)提供。
式9P(u)=(1-u)3P0+3u(1-u)2P1+3u2(1-u)P2+u3P3(9)(式9)中,P0、P1、P2、P3表示控制點(diǎn)數(shù)據(jù)。使用該有理貝塞爾曲線的運(yùn)算比NURBS運(yùn)算簡(jiǎn)單,可用較小規(guī)模的電路來進(jìn)行硬件化。
圖4(b)中,有理貝塞爾曲面補(bǔ)丁43是將參數(shù)u、v設(shè)為媒介變量的參數(shù)曲面,該曲面形狀與有理貝塞爾曲線41一樣,由以44代表的控制點(diǎn)數(shù)據(jù)來進(jìn)行操作。一般,可通過參數(shù)u、v的雙向區(qū)段集合來定義有理貝塞爾曲面補(bǔ)丁。n次有理貝塞爾曲面補(bǔ)丁的控制點(diǎn)數(shù)據(jù)為(n+1)×(n+1)個(gè),補(bǔ)丁的4個(gè)角的點(diǎn)為端點(diǎn),即曲面上的點(diǎn)。圖4中,R0、R1、R2、R3為端點(diǎn),是3次有理貝塞爾曲面補(bǔ)丁43上的點(diǎn)。
從上述可知,換言之,在S204中,根據(jù)NURBS數(shù)據(jù)算出多個(gè)有理貝塞爾曲面補(bǔ)丁。另外,定義NURBS數(shù)據(jù)的參數(shù)u、v與定義通過S204的變換算出的3次有理貝塞爾曲面補(bǔ)丁的參數(shù)u、v未必一致。
接著,說明曲面補(bǔ)丁分割處理部105用遞推(de Casteljau)算法來分割有理貝塞爾曲面補(bǔ)丁的方法。
圖5是3維歐幾里德空間中的3次有理貝塞爾曲線51的區(qū)段例。圖5中,B1、B2、B3、B4是形成有理貝塞爾區(qū)段51的控制點(diǎn),B1、B4是端點(diǎn)。這里,設(shè)控制點(diǎn)B1、B2、B3、B4的重量分別為w1、w2、w3、w4。
一般,在3維歐幾里德空間中若使用有理遞推(de Casteljau)算法,則1個(gè)區(qū)段51在將以wi+1*t∶wi*(1-t)的比率內(nèi)分連接各控制點(diǎn)的直線B1B2、B2B3、B3B4的點(diǎn)設(shè)為C1、C2、C3,其中0<t<1、i=1、2、3、4,并設(shè)各自的重量w′i=wi*(1-t)+wi+1*t,并且,將以w′i+1*t∶w′i*(1-t)的比率內(nèi)分直線C1C2、C2C3的點(diǎn)設(shè)為D1、D2,其中i=1、2、3,并設(shè)各自的重量w”=w′i*(1-t)+w′i+1*t,并且,將以w”i+1*t∶w”i*(1-t)的比率內(nèi)分直線D1D2的點(diǎn)設(shè)為B5,其中i=1、2,并設(shè)為W5=w”i*(1-t)+w”i+1*t的情況下,已知B5為區(qū)段51上的點(diǎn),算出的w5成為B5的重量。這里,B1、C1、D1、B5是區(qū)段B1B5的控制點(diǎn),B5、D2、C3、B4是區(qū)段B5B4的控制點(diǎn)。
在本實(shí)施形態(tài)的步驟44中,因?yàn)樵谕巫鴺?biāo)系中處理控制點(diǎn)數(shù)據(jù),所以使用例如[Gerald E.Farin著,原孝成等譯,共立出版,“NURBS從射影幾何學(xué)到實(shí)務(wù)”,PP119-122]所示射影空間中的遞推(de Casteljau)算法。另外,在本實(shí)施形態(tài)中,使用t=1/2。
圖6是在影射空間中的3次區(qū)段中使用遞推(de Casteljau)算法的實(shí)例。圖6中,B1、B2、B3、B4是形成區(qū)段61的控制點(diǎn)數(shù)據(jù),B1、B4為端點(diǎn)。
在步驟205中,對(duì)于區(qū)段61,將把直線B1B2、B2B3、B3B4內(nèi)分成1/2(1-1/2)的點(diǎn)(即中點(diǎn))設(shè)為C1、C2、C3,另外,將直線C1C2、C2C3的中點(diǎn)設(shè)為D1、D2,并將直線D1D2的中點(diǎn)設(shè)為B5時(shí),B5為區(qū)段61上的點(diǎn)。
結(jié)果,將區(qū)段61分割成B1B5和B5B4兩個(gè)區(qū)段。新形成的區(qū)段B1B5的控制點(diǎn)為B1、C1、D1、B5,區(qū)段B5B4的控制點(diǎn)為B5、D2、C3、B4。
這樣,在根據(jù)本實(shí)施形態(tài)1的曲面補(bǔ)丁分割處理部105中,通過使用同次坐標(biāo)系并在射影空間中的遞推(de Casteljau)算法中使用t=1/2,分割處理所需運(yùn)算不必乘法和除法,僅移位運(yùn)算和加法即可,所以可大幅度高速化分割處理。
圖7是用16個(gè)控制點(diǎn)數(shù)據(jù)來表示3次有理貝塞爾曲面補(bǔ)丁71的參考圖。圖7中,P1、P2、P3、P4是端點(diǎn),各端點(diǎn)是曲面補(bǔ)丁上的點(diǎn)。
圖8是對(duì)形成圖7的有理貝塞爾曲面補(bǔ)丁71的參數(shù)u方向的區(qū)段,使用步驟205的處理來進(jìn)行分割的結(jié)果的有理貝塞爾曲面補(bǔ)丁的參考圖。
步驟205中,尤其是分割區(qū)段P3P4的點(diǎn)P6和分割區(qū)段P1P2的點(diǎn)P5成為有理貝塞爾曲面補(bǔ)丁71上的點(diǎn)。即,有理貝塞爾曲面補(bǔ)丁71被分割成以P1、P5、P6、P3為端點(diǎn)的有理貝塞爾曲面補(bǔ)丁81和以P5、P2、P4、P6為端點(diǎn)的有理貝塞爾曲面補(bǔ)丁82這兩個(gè)補(bǔ)丁。
圖9是對(duì)圖8的有理貝塞爾曲面補(bǔ)丁81和82、進(jìn)而對(duì)參數(shù)v方向的區(qū)段使用步驟205的處理來進(jìn)行分割的結(jié)果的有理貝塞爾曲面補(bǔ)丁的參考圖。
這里,重新算出有理貝塞爾曲面補(bǔ)丁上的點(diǎn)P7、P8、P9,將有理貝塞爾曲面補(bǔ)丁81分割成以P7、P9、P6、P3為端點(diǎn)的有理貝塞爾曲面補(bǔ)丁91和以P1、P5、P9、P7為端點(diǎn)的有理貝塞爾曲面補(bǔ)丁92,將有理貝塞爾曲面補(bǔ)丁82分割成以P9、P8、P4、P6為端點(diǎn)的有理貝塞爾曲面補(bǔ)丁93和以P5、P2、P8、P9為端點(diǎn)的有理貝塞爾曲面補(bǔ)丁94。
圖10中示出將圖9中的4個(gè)曲面補(bǔ)丁變換為多邊形數(shù)據(jù)的實(shí)例。將曲面補(bǔ)丁91、92、93、94變換為以曲面上的控制點(diǎn)數(shù)據(jù)為頂點(diǎn)的共計(jì)8個(gè)多邊形數(shù)據(jù)。
因此,因?yàn)檫@些多邊形數(shù)據(jù)的頂點(diǎn)是射影空間中的點(diǎn),所以為了進(jìn)行繪制,必需變換成3維歐幾里德空間中的點(diǎn)。
通常,將從射影空間中定義的坐標(biāo)到3維歐幾里德空間中定義的坐標(biāo)的變換稱為射影變換。另外,將從3維歐幾里德空間中定義的坐標(biāo)到2維屏幕坐標(biāo)的變換稱為透視變換。根據(jù)(式4),將射影空間中同次坐標(biāo)P(wx、wy、wz、w)射影變換為3維歐幾里德空間中的通常坐標(biāo)P(x、y、z)的式子由(式10)提供。
式10P(x,y,z,l)=P‾(X,Y,Z,w)w----(10)]]>另一方面,因?yàn)槎噙呅螖?shù)據(jù)的頂點(diǎn)已由坐標(biāo)變換部102變換成視野坐標(biāo),所以視點(diǎn)為原點(diǎn),視線為Z軸。因此,將3維歐幾里德空間中的多邊形數(shù)據(jù)的頂點(diǎn)透視變換成屏幕坐標(biāo)系的式子由(式11)提供。
式11
(xs,ys)=R(xz,yz)+(xo,yo)----(11)]]>在(式11)中,P=(x、y、z)是多邊形數(shù)據(jù)的任意頂點(diǎn),R是從視點(diǎn)到屏幕的距離,So=(xo、yo)表示屏幕坐標(biāo)的原點(diǎn),Ps=(xs、ys)表示透視變換后的屏幕坐標(biāo)中的多邊形數(shù)據(jù)的頂點(diǎn)。
在步驟209中,如此使用(式12),一起進(jìn)行對(duì)步驟208中得到的多邊形數(shù)據(jù)各頂點(diǎn)的射影變換和透視變換(S209)。
式12(xs,ys)=R(xwzw,ywzw)+(xo,yo)]]>=R(xz,yz)+(xo,yo)----(12)]]>因此,在本實(shí)施形態(tài)中,可省略伴隨射影變換的重量的除法。并且在步驟210中,在使用當(dāng)前的光源信息來對(duì)多邊形數(shù)據(jù)進(jìn)行陰影(shading)處理或紋理映射(texture mapping)處理等繪制處理之后,為了下一幀的描繪處理,返回步驟202。
如上所述,根據(jù)本發(fā)明的實(shí)施形態(tài)1,設(shè)置數(shù)據(jù)變換部104及曲面補(bǔ)丁分割處理部105,在由步驟204將NURBS數(shù)據(jù)變換為有理貝塞爾控制點(diǎn)數(shù)據(jù)后,在步驟205中分割有理貝塞爾曲面補(bǔ)丁,從而與直接運(yùn)算NURBS曲面并進(jìn)行繪制的情況相比,不會(huì)增大控制點(diǎn)數(shù)據(jù)以外的數(shù)據(jù),可由較少的運(yùn)算量來繪制NURBS曲面。
另外,坐標(biāo)變換部102事先將NURBS數(shù)據(jù)變換為視野坐標(biāo)系,所以不必對(duì)有理貝塞爾曲面補(bǔ)丁細(xì)分割后的有理貝塞爾控制數(shù)據(jù)進(jìn)行視野變換,可削減關(guān)于坐標(biāo)變換的整體運(yùn)算量。
并且,通過在同次坐標(biāo)系中處理NURBS數(shù)據(jù)及有理貝塞爾控制點(diǎn)數(shù)據(jù)的控制點(diǎn)與重量,作為控制點(diǎn)數(shù)據(jù),可以一起進(jìn)行透視變換部107中的繪制處理前的射影變換與透視變換,所以可省略伴隨射影變換的重量的除法,可高速繪制NURBS曲面。
并且,為了得到充分的對(duì)多邊形的近似結(jié)果,即使曲面補(bǔ)丁分割處理部105在重復(fù)有理貝塞爾曲面補(bǔ)丁的細(xì)分割的情況下,細(xì)分割所需的運(yùn)算也可僅由移位運(yùn)算和加法來實(shí)現(xiàn),所以減輕了處理負(fù)擔(dān),在根據(jù)本發(fā)明的曲面圖像處理裝置100中,可高速得到平滑高畫質(zhì)的NURBS曲面的繪制結(jié)果。
另外,在實(shí)施形態(tài)1中,坐標(biāo)變換部102對(duì)從數(shù)據(jù)輸入部101輸入的NURBS數(shù)據(jù)進(jìn)行視野坐標(biāo)變換,但也可事先不進(jìn)行視野坐標(biāo)變換,而對(duì)形成曲面補(bǔ)丁分割處理部105得到的分割后的有理貝塞爾曲面補(bǔ)丁的有理貝塞爾控制點(diǎn)數(shù)據(jù)進(jìn)行視野坐標(biāo)變換。
(實(shí)施形態(tài)2)下面,用附圖來說明本發(fā)明的實(shí)施形態(tài)2。
本實(shí)施形態(tài)2中的曲面圖像處理裝置100的功能框圖與上述實(shí)施形態(tài)1一樣,其特征在于將動(dòng)畫控制部103算出的動(dòng)畫數(shù)據(jù)輸入到坐標(biāo)變換部102及數(shù)據(jù)變換部104中。
首選用圖11來說明本實(shí)施形態(tài)2的曲面圖像處理裝置100的動(dòng)作。在本實(shí)施形態(tài)2中,與本發(fā)明的實(shí)施形態(tài)1一樣,就NURBS數(shù)據(jù)及有理貝塞爾控制點(diǎn)數(shù)據(jù)面議,將控制點(diǎn)和重量統(tǒng)一稱為控制點(diǎn)數(shù)據(jù),使用射影空間中的同次坐標(biāo)系來進(jìn)行處理。
圖11是表示實(shí)施形態(tài)2中的曲面圖像處理裝置100的具體處理流程圖。
首先,數(shù)據(jù)輸入部101將NURBS控制點(diǎn)、各控制點(diǎn)的重量、節(jié)點(diǎn)矢量構(gòu)成的NURBS數(shù)據(jù)輸入數(shù)據(jù)變換部104(S1101)。
接著,數(shù)據(jù)變換部104對(duì)形成從數(shù)據(jù)輸入部101輸入的NURBS數(shù)據(jù)的各NURBS曲線,通過插入節(jié)點(diǎn),變換為由區(qū)段構(gòu)成的區(qū)間有理貝塞爾曲線(S1102)。
接著,動(dòng)畫控制部103算出當(dāng)前幀中的動(dòng)畫數(shù)據(jù)。(S1103)。
另外,坐標(biāo)變換部102使用從動(dòng)畫控制部103得到的當(dāng)前幀的動(dòng)畫數(shù)據(jù)的視點(diǎn)、視線的信息,對(duì)形成數(shù)據(jù)變換部101算出的各區(qū)段的有理貝塞爾控制點(diǎn)數(shù)據(jù)進(jìn)行造型變換、視野變換、3維空間中的剪取處理,算出形成視野坐標(biāo)系中的區(qū)段的有理貝塞爾控制點(diǎn)數(shù)據(jù)(S1104)。
接著,曲面補(bǔ)丁分割處理部105對(duì)步驟1104中得到的視野坐標(biāo)系中的區(qū)段構(gòu)成的有理貝塞爾曲面補(bǔ)丁,通過在射影空間中的遞推(de Casteljau)算法中使用t=1/2來進(jìn)行計(jì)算,分割有理貝塞爾曲面補(bǔ)丁(S1105)。
另外,曲面補(bǔ)丁分割處理部105用從當(dāng)前視點(diǎn)到有理貝塞爾曲面補(bǔ)丁的距離來判斷當(dāng)前的分割結(jié)果是否充分,在必需再次分割處理的情況下,返回步驟1105(S1106)。
在充分細(xì)分割所有有理貝塞爾曲面補(bǔ)丁的情況下(S1106為是),透視變換部107將細(xì)分割后的各有理貝塞爾曲面補(bǔ)丁的控制點(diǎn)數(shù)據(jù)變換為作為頂點(diǎn)的多角形數(shù)據(jù)(S1107),由法線計(jì)算部106來計(jì)算各多邊形數(shù)據(jù)的控制點(diǎn)的法線矢量(S1108)。
之后,透視變換部107對(duì)得到的多邊形數(shù)據(jù)的各頂點(diǎn)一起進(jìn)行射影變換和透視變換(S1109),另外,繪制處理部108使用當(dāng)前的光源信息來對(duì)多邊形數(shù)據(jù)進(jìn)行蔭影處理或紋理映射處理等繪制處理(S1110)后,為了下一幀的描繪處理,返回步驟1101。另外,步驟1102之前的處理作為預(yù)處理,僅執(zhí)行1次,對(duì)每個(gè)描繪幀反復(fù)執(zhí)行從步驟1103到步驟1110的處理。
如上所述,根據(jù)本發(fā)明的實(shí)施形態(tài)2的曲面圖像處理裝置100,設(shè)置數(shù)據(jù)變換部104、坐標(biāo)變換部102及曲面補(bǔ)丁分割處理部105,作為事先預(yù)處理,數(shù)據(jù)變換部104將NURBS數(shù)據(jù)變換為有理貝塞爾控制點(diǎn)數(shù)據(jù),NURBS對(duì)象的形狀不隨時(shí)刻變化,即不進(jìn)行形狀變形動(dòng)畫的情況下,在每個(gè)幀的描繪處理中,只要執(zhí)行步驟1103以后的處理即可,可大幅度削減對(duì)每個(gè)描繪幀進(jìn)行的處理中的運(yùn)算量。即,可構(gòu)成邊平滑地將高畫質(zhì)的NURBS數(shù)據(jù)變換為貝塞爾曲面并進(jìn)行細(xì)分割、可實(shí)時(shí)繪制的高性能的曲面圖像處理裝置100。
另外,在本實(shí)施形態(tài)2中,以不進(jìn)行形狀變形動(dòng)畫的情況為前提,但即使在進(jìn)行形狀變形動(dòng)畫的情況下,若作為預(yù)處理而在步驟1102中對(duì)所有關(guān)鍵幀數(shù)據(jù)(所有時(shí)刻的NURBS數(shù)據(jù))進(jìn)行向有理貝塞爾控制點(diǎn)數(shù)據(jù)的變換,則可得到同樣的效果。
另外,在本實(shí)施形態(tài)2中,坐標(biāo)變換部102對(duì)數(shù)據(jù)變換部104得到的有理貝塞爾控制點(diǎn)數(shù)據(jù)進(jìn)行視野坐標(biāo)變換,但也可事先不進(jìn)行視野坐標(biāo)變換,而對(duì)形成曲面補(bǔ)丁分割處理部105得到的分割后的有理貝塞爾曲面補(bǔ)丁的有理貝塞爾控制點(diǎn)數(shù)據(jù)進(jìn)行視野坐標(biāo)變換。
(實(shí)施形態(tài)3)下面,說明本實(shí)施形態(tài)3的曲面圖像處理裝置100。另外,本實(shí)施形態(tài)3中的曲面圖像處理裝置100的功能框圖與上述實(shí)施形態(tài)1一樣,所以省略其詳細(xì)說明。
圖12是根據(jù)本實(shí)施形態(tài)3的曲面補(bǔ)丁分割處理部105的結(jié)構(gòu)框圖。曲面補(bǔ)丁分割處理部105配備區(qū)段分配部1201及至少1個(gè)以上的區(qū)段分割部1202。
下面,說明曲面圖像處理裝置100的曲面補(bǔ)丁分割處理部105的結(jié)構(gòu)和其動(dòng)作。
區(qū)段分割部1202輸入將參數(shù)u、v設(shè)為媒介變量的形成3次區(qū)段的4個(gè)控制點(diǎn)數(shù)據(jù),通過對(duì)這4個(gè)控制點(diǎn)數(shù)據(jù)在射影空間中的遞推(de Casteljau)算法中使用t=1/2,輸出形成分割后的2個(gè)3次區(qū)段的7個(gè)控制點(diǎn)數(shù)據(jù)。例如,若將形成圖5中的區(qū)段51的4個(gè)控制點(diǎn)數(shù)據(jù)B1、B2、B3、B4輸入?yún)^(qū)段分割部1202,則輸出形成兩個(gè)區(qū)段B1B5及B5B4的7個(gè)控制點(diǎn)數(shù)據(jù)B1、C1、D1、B5、D2、C3、B4。
這里,在由數(shù)據(jù)變換部104得到的有理貝塞爾曲面補(bǔ)丁71內(nèi),既可以任何順序來進(jìn)行對(duì)參數(shù)u方向的4個(gè)區(qū)段的處理,也可同時(shí)進(jìn)行處理。另外,在參數(shù)u方向的分割處理結(jié)束后的有理貝塞爾曲面補(bǔ)丁81或82中,既可以任何順序來進(jìn)行對(duì)參數(shù)v方向的7個(gè)區(qū)段的處理,也可同時(shí)進(jìn)行處理。另外,在將有理貝塞爾曲面補(bǔ)丁81和82設(shè)為一例的不同有理貝塞爾曲面補(bǔ)丁之間,既可以任何順序來進(jìn)行對(duì)參數(shù)u及v方向的區(qū)段的處理,也可同時(shí)進(jìn)行處理。
下面,用圖13來說明區(qū)段分配部1201的處理。圖13是表示區(qū)段分配部1201的具體處理流程圖。
首先,區(qū)段分配部1201從形成數(shù)據(jù)變換部104得到的有理貝塞爾曲面補(bǔ)丁的區(qū)段中選擇1個(gè)等待分割處理的區(qū)段(S1301)。
接著,區(qū)段分配部1201對(duì)選擇到的區(qū)段,判斷相同補(bǔ)丁內(nèi)的其它區(qū)段是否正由任一區(qū)段分割部1202進(jìn)行處理(S1302)。區(qū)段分配部1201在未在處理中的情況下(S1302為否),則區(qū)段輸入處理等待狀態(tài)的任一區(qū)段分割部1202(S1305)。
另一方面,在處理中的情況下(S1302為是),區(qū)段分配部1201判斷選擇的區(qū)段是否為v方向(S1303)。在不是v方向的情況下(S1303為否),將區(qū)段輸入處理等待狀態(tài)的任一區(qū)段分割部1202中(S1305)。
另外,在區(qū)段是v方向的情況下(S1303為是),區(qū)段分配部1201判斷在與選擇到的區(qū)段相同補(bǔ)丁內(nèi)的u方向的相同級(jí)的分割處理是否全部結(jié)束。在結(jié)束的情況下(S1304為是),區(qū)段分配部1201將區(qū)段輸入處理等待狀態(tài)的任一區(qū)段分割部1202中(S1305)。
另一方面,在分割處理未結(jié)束的情況下(S1304為否),維持選擇到的區(qū)段分割處理等待狀態(tài)不變,返回步驟1301。區(qū)段分配部1201重復(fù)以上處理,直到不是分割處理等待狀態(tài)的區(qū)段為止。
如上所述,根據(jù)本發(fā)明的實(shí)施形態(tài)3,通過設(shè)置配備1個(gè)以上區(qū)段分配部1201、和曲面補(bǔ)丁分割處理部105,該曲面補(bǔ)丁分割處理部105至少具有一個(gè)以上由形成1個(gè)3次有理貝塞爾曲面的有理貝塞爾控制點(diǎn)數(shù)據(jù)來算出形成分割后的2個(gè)3次有理貝塞爾曲面的有理貝塞爾控制點(diǎn)數(shù)據(jù)的區(qū)段分割部1202,并通過并行執(zhí)行可同時(shí)處理的區(qū)段的分割處理,由此可高速實(shí)現(xiàn)曲面補(bǔ)丁的分割處理,所以可構(gòu)成可平滑地實(shí)時(shí)繪制高畫質(zhì)NURBS曲面的高性能的曲面圖像處理裝置100。
另外,在上述實(shí)施形態(tài)1-3中,數(shù)據(jù)輸入部101輸入的NURBS數(shù)據(jù)既可使用保存在存儲(chǔ)媒體中的數(shù)據(jù),也可使用經(jīng)由網(wǎng)絡(luò)傳輸來的數(shù)據(jù)。
另外,在上述實(shí)施形態(tài)1-3中,曲面補(bǔ)丁分割處理部105對(duì)遞推(de Casteljau)算法使用t=1/2,但也可使用t=1/(2的n次方)(其中,n為正整數(shù))。并且,曲面補(bǔ)丁分割處理部105在沿參數(shù)u方向進(jìn)行分割后,沿參數(shù)v方向進(jìn)行分割,但也可在沿參數(shù)v方向進(jìn)行分割后,沿參數(shù)u方向進(jìn)行分割。
另外,在上述實(shí)施形態(tài)1-3中,透視變換部107將各有理貝塞爾曲面補(bǔ)丁變換為以曲面上的控制點(diǎn)數(shù)據(jù)為頂點(diǎn)的多角形數(shù)據(jù),但也可變換為以不在曲面上的控制點(diǎn)數(shù)據(jù)為頂點(diǎn)的多角形數(shù)據(jù)(例如在曲面補(bǔ)丁91的分割中,變換為以P3、P7、P9、P6以外的控制點(diǎn)數(shù)據(jù)為頂點(diǎn)的多角形數(shù)據(jù)。)。
另外,多邊形數(shù)據(jù)的所有頂點(diǎn)不必是控制點(diǎn)數(shù)據(jù)。例如,在曲面補(bǔ)丁91的分割中,也可變換為直線P3P9及直線P6P7的交點(diǎn)和以4個(gè)角的控制點(diǎn)數(shù)據(jù)為頂點(diǎn)的4個(gè)多角形數(shù)據(jù)。
并且,雖以各有理貝塞爾曲面補(bǔ)丁單位進(jìn)行向多邊形數(shù)據(jù)的變換,但也可變換為跨躍補(bǔ)丁的多邊形數(shù)據(jù)。例如,將曲面補(bǔ)丁91、92、93、94變換為P4P3P1、P4P1P2兩個(gè)多邊形數(shù)據(jù)。
(實(shí)施形態(tài)4)下面,說明根據(jù)實(shí)施形態(tài)4的曲面圖像處理裝置100。
在本實(shí)施形態(tài)4的曲面圖像處理裝置100中,當(dāng)曲面補(bǔ)丁分割處理部105細(xì)分割曲面補(bǔ)丁時(shí),不像以前那樣直接求出NURBS曲面上的點(diǎn),而是由數(shù)據(jù)變換部104將NURBS曲面等效變換為有理貝塞爾曲面,求出曲面上的控制點(diǎn)后,進(jìn)行細(xì)分割。因此,產(chǎn)生數(shù)據(jù)變換部104在節(jié)點(diǎn)插入時(shí)生成無用控制點(diǎn)的問題,但本實(shí)施形態(tài)4的曲面圖像處理裝置100解決了該問題。
圖14是根據(jù)本實(shí)施形態(tài)4的數(shù)據(jù)變換部104的功能結(jié)構(gòu)框圖。
在本實(shí)施形態(tài)4中,數(shù)據(jù)變換部104具備節(jié)點(diǎn)插入部1401、控制點(diǎn)剪取部1402及有理貝塞爾控制點(diǎn)數(shù)據(jù)確定部1403。
輸入數(shù)據(jù)變換部104的NURBS模型數(shù)據(jù)是記述NURBS曲面的模型數(shù)據(jù)。這里,NURBS模型數(shù)據(jù)不包含NURBS曲面上的點(diǎn)的位置坐標(biāo),作為表示NURBS曲面的信息量可以說為最小限度。故,施加于傳輸NURBS模型數(shù)據(jù)的數(shù)據(jù)傳輸系統(tǒng)上的負(fù)荷小。
節(jié)點(diǎn)插入部1401進(jìn)行節(jié)點(diǎn)插入,將定義NURBS曲面的u方向及v方向的節(jié)點(diǎn)矢量最終變換為1個(gè)以上的有理貝塞爾曲面。
另外,節(jié)點(diǎn)插入部1401邊插入節(jié)點(diǎn),邊更新控制點(diǎn)列,節(jié)點(diǎn)插入部1401的最終輸出輸出定義與輸入的NURBS模型數(shù)據(jù)定義的NURBS曲面形狀完全一致的有理貝塞爾曲面的控制點(diǎn)列。
但是,從節(jié)點(diǎn)插入部1401輸出的控制點(diǎn)列包含沒有定義有理貝塞爾曲面的無用的控制點(diǎn)。控制點(diǎn)剪取部1402是刪除該無用控制點(diǎn)、僅將必要的控制點(diǎn)傳輸?shù)胶蠹?jí)的曲面補(bǔ)丁分割處理部105的塊。因此,控制點(diǎn)剪取部1402輸出的有理貝塞爾控制點(diǎn)數(shù)據(jù)是不包含無用控制點(diǎn)的數(shù)據(jù)。這里,有理貝塞爾控制點(diǎn)數(shù)據(jù)是定義有理貝塞爾曲面的控制點(diǎn)列,但在NURBS模型數(shù)據(jù)是NURBS曲線數(shù)據(jù)的情況下,變?yōu)槎x有理貝塞爾曲線的控制點(diǎn)列。將該有理貝塞爾控制點(diǎn)數(shù)據(jù)傳輸?shù)胶蠹?jí)的曲面補(bǔ)丁分割處理部105。
曲面補(bǔ)丁分割處理部105使用輸入的有理貝塞爾控制點(diǎn)數(shù)據(jù),依次求出有理貝塞爾曲面上的點(diǎn)。這樣,通過曲面補(bǔ)丁分割處理部105來將有理貝塞爾曲面近似為平面多邊形的集合體。
并且,雖未圖示,但由曲面圖像處理裝置100的顯示部將3維多邊形顯示在2給顯示器上。另外,在有理貝塞爾控制點(diǎn)數(shù)據(jù)定義有理貝塞爾曲線的情況下,曲面補(bǔ)丁分割處理部105將有理貝塞爾曲線近似成多個(gè)線段的集合體。
下面,描述本實(shí)施形態(tài)4的控制點(diǎn)剪取部1402從節(jié)點(diǎn)插入后的控制點(diǎn)列中刪除無用的控制點(diǎn)的方法。
設(shè)記述NURBS曲面的初始節(jié)點(diǎn)矢量為(u
、u[1]、...、u[I+n])及(v
、v[1]、...、v[J+m])。這里,n及m是對(duì)媒介變量u、v定義的基底函數(shù)的次數(shù)。I及J是u及v方向的控制點(diǎn)數(shù)。由這些節(jié)點(diǎn)矢量定義的NURBS曲面為了等效變換為有理貝塞爾曲面,實(shí)施節(jié)點(diǎn)插入,將最終得到的節(jié)點(diǎn)矢量設(shè)為(u′
、u′[1]、...、u′[I′+n])及(v
、v[1]、...、v[J′+m])。這里,u方向及v方向的最終控制點(diǎn)數(shù)為I′+n+1及J′+m+1。這些控制點(diǎn)包含不定義有理貝塞爾曲面的無用控制點(diǎn)。
對(duì)于初始節(jié)點(diǎn)矢量,描繪NURBS曲面的有理范圍是(u[3]、u[I+n-3])及(v[3]、v[J+m-3])的范圍。通過節(jié)點(diǎn)插入來復(fù)用該范圍的節(jié)點(diǎn),若復(fù)用度等于次數(shù),則意味著最初的NURBS曲面被變換為有理貝塞爾曲面。
圖24表示對(duì)NURBS曲面的u方向的節(jié)點(diǎn)矢量進(jìn)行節(jié)點(diǎn)插入、控制點(diǎn)列變化的狀態(tài)。在圖24的實(shí)例中,u方向的次數(shù)為n=3,對(duì)節(jié)點(diǎn)矢量的有效范圍的開始節(jié)點(diǎn)u[3]進(jìn)行復(fù)用。這里,假設(shè)對(duì)u方向的節(jié)點(diǎn)矢量的最初部分(u
、u[1]、u[2]、...)而言,值都不同,在單調(diào)增加的情況下,最終生成的(u′
、u′[1]、u′[2]、...)滿足以下關(guān)系。
u
=u′
u[1]=u′[1]u[2]=u′[2]u[3]=u′[3]=u′[4]=u′[5]
最初,當(dāng)插入值等于u[3]的節(jié)點(diǎn)~u=u′[4]時(shí),因?yàn)楣?jié)點(diǎn)插入位置為k=3的位置,所以系數(shù)排列如下。
a
=1a[1]=(~u-u[1])/(u[4]-u[1])=(u[3]-u[1])/(u[4]-u[1])a[2]=(~u-u[2])/(u[5]-u[2])=(u[3]-u[2])/(u[5]-u[2])a[3]=(~u-u[3])/(u[6]-u[3])=0a[4]=0因此,生成的控制點(diǎn)列為<Q′
>=a
*<Q
>=<Q
>
<Q′[1]>=(1-a[1]*<Q
>+a[1]*<Q[1]>
<Q′[2]>=(1-a[2]*<Q[1]>+a[2]*<Q[2]>
<Q′[3]>=(1-a[3]*<Q[2]>+a[3]*<Q[3]>=<Q[2]>
<Q′[4]>=(1-a[4]*<Q[3]>+a[4]*<Q[4]>=<Q[3]>
從而,刪除控制點(diǎn)<Q[1]>,生成新的控制點(diǎn)<Q′[1]>及<Q′[2]>。其中,雖定義NURBS曲面的控制點(diǎn)用具有指數(shù)i、j的2維排列表示,但這里為了簡(jiǎn)化說明,僅由u方向的1維表現(xiàn)。即便這樣簡(jiǎn)化也不喪失一般性。并且,當(dāng)插入值等于u[3]的節(jié)點(diǎn)~u=u′[5]時(shí),因?yàn)楣?jié)點(diǎn)插入位置為k=4的位置,所以系數(shù)排列如下。
a
=1a[1]=1a[2]=(u[3]-u[2])/(u[4]-u[2])a[3]=0a[4]=0使用該排列,生成的控制點(diǎn)列為<Q″
>=a
*<Q′
>=<Q′
>=<Q
>
<Q″[1]>=(1-a[1]*<Q′
>+a[1]*<Q′[1]>=<Q′[1]>
<Q″[2]>=(1-a[2]*<Q′[1]>+a[2]*<Q′[2]>
<Q″[3]=(1-a[3]*<Q′[2]>+a[3]*<Q′[3]>=<Q′[2]>
<Q″[4]=(1-a[4]*<Q′[3]>+a[4]*<Q′[4]>=<Q′[3]>=<Q[2]>
由此,意味著生成新的控制點(diǎn)<Q”[2]>。
接著,以下表示新的控制點(diǎn)<Q”[2]>是最初的NURBS曲面上的開始點(diǎn)。將u=u[3]代入Cox-deBoor的漸近式,遞歸求出NURBS曲面的基底函數(shù)。首先,對(duì)于n=0,為B
[3](u[3])=1B
[i](u[3])=0(i不是3)。
用上式,對(duì)于n=1,為B[1][2](u[3])=1B[1][i](u[3])=0(i不是2)。
再用上式,對(duì)于n=2,為B[2][1](u[3])=(u[4]-u[3])/(u[4]-u[2])B[2][2](u[3])=(u[3]-u[2])/(u[4]-u[2])B[2][i](u[3])=0(i不是1或2)。
再用上式,對(duì)于n=3,為B[3]
(u[3])=(u[4]-u[3])/(u[4]-u[1])*B[2][1](u[3])B[3][1](u[3])=(u[3]-u[1])/(u[4]-u[1])*B[2][1](u[3])+(u[5]-u[3])/(u[5]-u[2])*B[2][2](u[3])B[3][2](u[3])=(u[3]-u[2])/(u[5]-u[2])*B[2][2](u[3])B[3][i](u[3])=0(i大于3)。
由此,NURBS曲面的開始點(diǎn)將系數(shù)排列取為~a[i]=1-a[i],~a′[i]=1-a′[i]則<P(u[3]>=B[3]
(u[3])*<Q
>+B[3][1](u[3])*<Q[1]>
+B[3][2](u[3])*<Q[2]>
=~a′[2]*~a[1]*<Q
>
+(~a′[2]*~a[1]+~a′[2]*a[1])*<Q[1]>
+a′[2]*a[2]*<Q[2]>
=<Q″[2]>
。故,由于最初的NURBS曲面的開始點(diǎn)與變換為有理貝塞爾曲面的控制點(diǎn)<Q”[2]>一致,所以兩個(gè)控制點(diǎn)<Q”
>及<Q”[1]>是無用的。
另外,作為其它實(shí)例,說明圖25所示初始節(jié)點(diǎn)矢量的要素排列包含復(fù)用度的情況。對(duì)于u方向的節(jié)點(diǎn)矢量的最初部分(u
、u[1]、u[2]、...)而言,在u[2]=u[3]的情況下,最終生成的節(jié)點(diǎn)矢量(u′
、u′[1]、u′[2]、...)滿足以下關(guān)系。
u
=u′
u[1]=u′[1]u[2]=u′[3]=u′[2]=u′[3]=u′[4]當(dāng)插入值等于u[2]及u[3]的節(jié)點(diǎn)~u=u′[4]時(shí),因?yàn)楣?jié)點(diǎn)插入位置為k=3的位置,所以系數(shù)排列如下。
a
=1a[1]=(~u-u[1])/(u[4]-u[1])=(u[2]-u[1])/(u[4]-u[1])a[2]=(~u-u[2])/(u[5]-u[2])=0a[3]=(~u-u[3])/(u[6]-u[3])=0a[4]=0使用該排列,生成的控制點(diǎn)列為<Q′
>=a
*<Q
>=<Q
>
<Q′[1]>=(1-a[1])*<Q
>+a[1]*<Q[1]>
<Q′[2]>=(1-a[2])*<Q[1]>+a[2]*<Q[2]>=<Q[1]>
<Q′[3]>=(1-a[3])*<Q[2]>+a[3]*<Q[3]>=<Q[2]>
<Q′[4]>=(1-a[4])*<Q[3]>+a[4]*<Q[4]>=<Q[3]>
另一方面,因?yàn)椴皇嵌x最初的NURBS曲面的0的基底函數(shù)為B[2][1](u[3])=(u[4]-u[3])/(u[4]-u[2])=1
B[3]
(u[3])=(u[4]-u[3])/(u[4]-u[1])*B[2][1](u[3])B[3][1](u[3])=(u[3]-u[1])/(u[4]-u[1])*B[2][1](u[3]),所以另一方面,NURBS曲面的開始點(diǎn)變?yōu)?amp;lt;P(u[3])>=B[3]
(u[3]*<Q
>+B[3][1](u[3])*<Q[1]>
=(1-a[1])*<Q
+a[1]*<Q[1]>
=<Q′[1]>
與控制點(diǎn)<Q′[1]>一致。故此時(shí)僅1個(gè)控制點(diǎn)<Q′
>是無用的。
另外,如圖26所示,作為初始節(jié)點(diǎn)矢量的要素排列包含復(fù)用度的其它實(shí)例,對(duì)于u方向的節(jié)點(diǎn)矢量的最初部分(u
、u[1]、u[2]、...)而言,考慮u[3]=u[4]的情況。在該情況下,最終生成的節(jié)點(diǎn)矢量(u′
、u′[1]、u′[2]、...)滿足以下關(guān)系。
u
=u′
u[1]=u′[1]u[2]=u′[2]u[3]=u[4]=u′[3]=u′[4]=u′[5]當(dāng)插入值等于u[3]及u[4]的節(jié)點(diǎn)~u=u′[5]時(shí),因?yàn)楣?jié)點(diǎn)插入位置為k=4的位置,所以系數(shù)排列如下。
a
=1a[1]=1a[2]=(~u-u[2])/(u[5]-u[2])=(u[3]-u[2])/(u[5]-u[2])a[3]=(~u-u[3])/(u[6]-u[3])=0a[4]=(~u-u[4])/(u[7]-u[4])=0使用該排列,生成的控制點(diǎn)列為<Q′
>=a
*<Q
>=<Q
>
<Q′[1]>=(1-a[1])*<Q
>+a[1]*<Q[1]>=<Q[1]>
<Q′[2]>=(1-a[2])*<Q[1]>+a[2]*<Q[2]>
<Q′[3]>=(1-a[3])*<Q[2]>+a[3]]*<Q[3]>=<Q[2]>
<Q′[4]>=(1-a[4])*<Q[3]>+a[4]*<Q[4]>=<Q[3]>
另一方面,若求出NURBS曲面的開始點(diǎn),則有<P(u[3])>=B[3][1](u[3]*<Q[1]>+B[3][2](u[3])*<Q[2]>
=(1-a[2])*<Q[1]+a[2]*<Q[2]>
=<Q′[2]>
與控制點(diǎn)<Q′[2]>一致。故此時(shí)2個(gè)控制點(diǎn)<Q′
>及<Q′[1]>是無用的。
通過以上實(shí)例,若對(duì)次數(shù)n=3進(jìn)行一般化,則對(duì)于節(jié)點(diǎn)插入后變?yōu)闊o用的控制點(diǎn),以下關(guān)系成立。即,最終生成的控制點(diǎn)列為(Q′
、Q′[1]、...、Q′[I′-1]),最終生成的節(jié)點(diǎn)矢量為(u′
、u′[1]、...、u′[I′+3]),如圖27所示,對(duì)于開始描繪NURBS曲面的節(jié)點(diǎn)u′[3]而言,(u′[j]、...、u′[3]、...、u′[k])共(k-j+1)個(gè)節(jié)點(diǎn)的值等于u′[3],用大于復(fù)用度3來進(jìn)行復(fù)用,控制點(diǎn)(Q′
、Q′[1]、...、Q′[k-4])共(k-3)個(gè)控制點(diǎn)是無用的。
另外,不僅在NURBS曲面的開始點(diǎn)、而且在結(jié)束點(diǎn)生成無用的控制點(diǎn)。此時(shí),若考慮控制點(diǎn)列及節(jié)點(diǎn)矢量的系數(shù)的關(guān)系為逆向,則可完全一樣刪除無用的點(diǎn)。即,對(duì)于最終生成的控制點(diǎn)列為(Q′
、...、Q′[I′-2]、Q′[I′-1]),最終生成的節(jié)點(diǎn)矢量為(u′
、...、u′[I′+2]、u′[I′+3]),如圖28所示,對(duì)于結(jié)束描繪NURBS曲面的節(jié)點(diǎn)u′[I′]而言,(u′[j]、...、u′[I′]、...、u′[k])共(k-j+1)個(gè)節(jié)點(diǎn)的值等于u′[I′],用大于復(fù)用度3來進(jìn)行復(fù)用,控制點(diǎn)(Q′[j]、...、Q′[I′-2]、Q′[I′-1])共(I′-j)個(gè)控制點(diǎn)是無用的。
另外,在以上說明中,描述了對(duì)u方向的控制點(diǎn)列刪除無用控制點(diǎn)的方法,但對(duì)v方向的控制點(diǎn)列也可同樣適用。另外,實(shí)際上控制點(diǎn)具有重量,但若使用對(duì)位置坐標(biāo)乘以重量的同次坐標(biāo),則可使用上述刪除無用控制點(diǎn)的方法。
另外,這里說明基于再分法的有理貝塞爾曲面的多邊形分割。首先為了容易理解,描述有理貝塞爾曲線。如圖15所示,考慮對(duì)有理貝塞爾曲線使用再分法,并近似成多個(gè)線段的情況。圖15的有理貝塞爾曲線的次數(shù)為n=3,由4個(gè)控制點(diǎn)((Q
、Q[1]、Q[2]、Q[3])來定義。設(shè)各控制點(diǎn)的重量為qw[i]。其中,i=0、1、2、3。如圖15所示,有理貝塞爾曲線是將控制點(diǎn)Q
及Q[3]設(shè)為兩端的曲線。在本實(shí)施例的再分法中,首先在兩個(gè)相鄰控制點(diǎn)的正中間位置上取新的點(diǎn)(R
、R[1]、R[2])。其中,坐標(biāo)計(jì)算使用向位置坐標(biāo)乘以重量的同次坐標(biāo)來如下進(jìn)行。
rw[0*<R
>=(qw
*<Q
>+qw[17<Q[1]>)/2rw[1]*<R[1]>=(qw[1]*<Q[1]>+qw[2]*<Q[2]>)/2rw[2]*<R[2]>=(qw[2]*<Q[2]>+qw[3]*<Q[3]>)/2其中,rw
=(qw
+qw[1])/2rw[1]=(qw[1]+qw[2])/2rw[2]=(qw[2]+qw[3])/2并且,若在這些中間位置上取新的點(diǎn)(S
、S[1]),則其坐標(biāo)為sw
*<S
>=(rw
*<R
>+rw[1]*<R[1]>)/2sw[1]*<S[1]>=(rw[1]*<R[1]>+rw[2]*<R[2]>)/2其中,sw
=(rw
+rw[1])/2sw[1]=(rw[1]+rw[2])/2。并且,若在這些中間位置上取新的點(diǎn)T
,則其坐標(biāo)為tw
*<T
>=(sw
*<S
>+sw[1]*<S[1]>)/2
其中,tw
=(sw
+sw[1])/2若如上所述進(jìn)行計(jì)算,則將最初的有理貝塞爾曲線分割成由控制點(diǎn)(Q
、R
、S
、T
)構(gòu)成的有理貝塞爾曲線1501和由控制點(diǎn)(T
、S[1]、R[2]、Q[3])構(gòu)成的有理貝塞爾曲線1502這兩個(gè)連續(xù)的有理貝塞爾曲線的區(qū)段,最終的點(diǎn)T
變?yōu)樽畛醯挠欣碡惾麪柷€上的點(diǎn)。因此,最初的有理貝塞爾曲線可能近似為線段(Q
、T
)及線段(T
、Q[3])兩個(gè)線段。并且,在分割成細(xì)的線段并想提高近似精度的情況下,對(duì)分割后的有理貝塞爾曲線1501及202再次使用再分法,反復(fù)分割即可。這樣,再分處理與反復(fù)進(jìn)行乘法及加法、用[2]的除法來求出NURBS的基底函數(shù)的運(yùn)算相比,非常簡(jiǎn)單。
從以上對(duì)有理貝塞爾曲線的再分法類推,可通過對(duì)有理貝塞爾曲面的再分法來進(jìn)行多邊形分割。在曲面的情況下,控制點(diǎn)變?yōu)榫哂袑?duì)應(yīng)于媒介變量u、v的指數(shù)i、j的2維排列。即,控制點(diǎn)表示為Q[i][j]。用圖16來說明在有理貝塞爾曲面中使用再分法來進(jìn)行多邊形分割的方法。
圖16雖未示出有理貝塞爾曲面本身,但是簡(jiǎn)略表示定義有理貝塞爾曲面的控制點(diǎn)的圖,u方向及v方向上次數(shù)都為n=m=3,控制點(diǎn)數(shù)為4×4=16個(gè)。圖16中,4個(gè)角的控制點(diǎn)(Q
、Q[3]
、Q[3][3]、Q
[3])是有理貝塞爾曲面上的點(diǎn)。
在對(duì)該有理貝塞爾曲面使用再分法中,首先將控制點(diǎn)的指數(shù)j的值固定在0,用4個(gè)控制點(diǎn)(Q
、Q[1]
、Q[2]
、Q[3]
)來使用上述再分法。由此,生成由控制點(diǎn)(Q
、R
、S
、T
)構(gòu)成的有理貝塞爾曲線1601、和由控制點(diǎn)(T
、S[1]
、R[2]
、Q[3]
)構(gòu)成的有理貝塞爾曲線1602,并求出最初的有理貝塞爾曲線上的新的點(diǎn)T
。圖16中僅示出該點(diǎn)T
。
接著,使用將指數(shù)j增加1后的4個(gè)控制點(diǎn)(Q
[1]、Q[1][1]、Q[2][1]、Q[3][1]),使用再分法,同樣計(jì)算控制點(diǎn)。由此,得到控制點(diǎn)(Q
[1]、R
[1]、S
[1]、T
[1])和(T
[1]、S[1][1]、R[2][1]、Q[3][1])。其中,這些點(diǎn)是在計(jì)算過程中產(chǎn)生的中間數(shù)據(jù),因?yàn)楸緛鞶
[1]及Q[3][1]不是最初有理貝塞爾曲面上的點(diǎn),所以生成的控制點(diǎn)T
[1]也不是最初有理貝塞爾曲面上的點(diǎn)。并且,重復(fù)相同的處理,直到指數(shù)j變?yōu)?。圖17示出此前生成的28個(gè)控制點(diǎn),其中T
、T
[3]是最初貝塞爾曲面上的新的點(diǎn)。另外,圖17中,位于有理貝塞爾曲面上的控制點(diǎn)標(biāo)記○印記。
并且,將上述u方向的由再分法生成的控制點(diǎn)分成下示的7個(gè)控制點(diǎn)的組,對(duì)各組沿v方向分別再次使用再分法。
(Q
,Q
[1],Q
[2],Q
[3])(R
,R
[1],R
[2],R
[3])(S
,S
[1],S
[2],S
[3])(T
,T
[1],T
[2],T
[3])(S[1]
,S[1][1],S[1][2],S[1][3])(R[2]
,R[2][1],R[2][2],R[2][3])(Q[3]
,Q[3][1],Q[3][2],Q[3][3])如圖18所示,若對(duì)最初的組(Q
、Q
[1]、Q
[2]、Q
[3])使用再分法,則得到控制點(diǎn)(Q
、Q′
、Q
[1]、Q′
[1])和(Q′
[1]、Q
[2]、Q′
[2]、Q
[3])。這里,Q′
[1]是最初貝塞爾曲面上的點(diǎn)。同樣,對(duì)其它組也使用再分法,最終得到7×7=49個(gè)控制點(diǎn),將最初的有理貝塞爾曲面分割成由4×4=16個(gè)控制點(diǎn)定義的4個(gè)小的有理貝塞爾曲面。另外,在分割的各小的有理貝塞爾曲面的控制點(diǎn)中、位于角上的4個(gè)控制點(diǎn)是最初的有理貝塞爾曲面上的點(diǎn)。即,得到9個(gè)有理貝塞爾曲面上的點(diǎn)。圖18中,對(duì)這些有理貝塞爾曲面上的控制點(diǎn)標(biāo)記○印記。使鄰接這些有理貝塞爾曲面上的點(diǎn)的點(diǎn)彼此結(jié)合,從而可構(gòu)成平面多邊形。另外,在進(jìn)一步分割成細(xì)的多邊形并想提高近似精度的情況下,也可對(duì)分割后的有理貝塞爾曲面再次使用再分法。
根據(jù)以上本實(shí)施形態(tài)4的曲面圖像處理裝置100的曲面補(bǔ)丁分割處理部105中的再分處理中,控制點(diǎn)剪取部1402刪除無用的控制點(diǎn),所以運(yùn)算量比直接求出NURBS曲面上的點(diǎn)少。因此,通過使用本實(shí)施形態(tài)4中所述的不定義有理貝塞爾曲面的無用控制點(diǎn)的刪除方法,可有效地將提供的NURBS曲面的控制點(diǎn)列變換為再分處理可使用的有理貝塞爾曲面的控制點(diǎn)列。
(實(shí)施形態(tài)5)下面,說明本發(fā)明的曲面圖像處理裝置100的曲面補(bǔ)丁分割處理部105中的處理。用實(shí)施形態(tài)5-8來說明曲面補(bǔ)丁分割處理部105的處理。
下面,參照附圖來說明根據(jù)本發(fā)明實(shí)施形態(tài)5的曲面圖像處理裝置100的曲面補(bǔ)丁分割處理部105。
圖29是表示實(shí)施形態(tài)5中曲面補(bǔ)丁分割處理部105的功能框圖。
在本實(shí)施形態(tài)5中,曲面補(bǔ)丁分割處理部105具備形狀輸入接收部2901、輪廓邊緣檢測(cè)部2902、細(xì)分割級(jí)確定部2903及細(xì)分割部2904。下面,詳細(xì)說明各自的功能。
形狀輸入接收部2901接收視點(diǎn)信息和作為關(guān)于描繪的對(duì)象形狀的信息的對(duì)象形狀信息的輸入,視點(diǎn)信息包含由數(shù)據(jù)變換部104將球坐標(biāo)系中的表現(xiàn)變換為作為定義成視點(diǎn)的坐標(biāo)系的視點(diǎn)坐標(biāo)系的視野變換矩陣、及通過透視變換將視點(diǎn)坐標(biāo)系的表現(xiàn)變換為2維屏幕上定義的坐標(biāo)系的透視變換。
對(duì)象形狀信息從數(shù)據(jù)變換部104輸入,包含定義構(gòu)成對(duì)象的補(bǔ)丁形狀的控制點(diǎn)的坐標(biāo)(同次坐標(biāo)系表現(xiàn))、和作為關(guān)于鄰接各補(bǔ)丁的補(bǔ)丁的信息的鄰接補(bǔ)丁信息。鄰接補(bǔ)丁信息的表現(xiàn)方法不特別限定。例如有如下方法,即,對(duì)各補(bǔ)丁提供指數(shù)(index),作為鄰接補(bǔ)丁信息,順序排列并表現(xiàn)在參數(shù)空間v=0、u=1、v=1、u=0中鄰接的補(bǔ)丁的指數(shù)。在不存在鄰接補(bǔ)丁的情況下,只要賦予-1等特別指數(shù)即可。另外,對(duì)象形狀信息也可包含描繪中利用的補(bǔ)丁的屬性信息、例如頂點(diǎn)法線矢量或紋理坐標(biāo)信息等。
輪廓邊緣檢測(cè)部2902判斷構(gòu)成由形狀輸入接收部2901取得的對(duì)象的各補(bǔ)丁是否是形成輪廓邊緣的補(bǔ)丁。另外,為了保持判斷結(jié)果,對(duì)各補(bǔ)丁定義表示該補(bǔ)丁是否是輪廓邊緣形成補(bǔ)丁的識(shí)別符(后面稱為邊緣識(shí)別符),例如通過用0初始化,表示0不是輪廓邊緣形成補(bǔ)丁。
圖31是表示根據(jù)本實(shí)施形態(tài)5的輪廓邊緣檢測(cè)部2902中的處理流程圖。下面,說明輪廓邊緣檢測(cè)部2902中的處理流程。
首先,對(duì)于各補(bǔ)丁,輪廓邊緣檢測(cè)部2902的透視變換部2902a使用視點(diǎn)信息中包含的視野變換矩陣及透視變換矩陣,透視變換控制點(diǎn)中存在于曲面上的4個(gè)頂點(diǎn)Q00、Q30、Q03、Q33,變換為屏幕上的坐標(biāo)(S3102)。
接著,帶符號(hào)面積算出部2902b算出通過變換到屏幕上的4個(gè)頂點(diǎn)所形成的2維圖形的帶符號(hào)面積(S3103)。通常,通過下述的(式13)求出由2維平面上的3個(gè)頂點(diǎn)A(ax、ay)、B(bx、by)、C(cx、cy)構(gòu)成的三角形的帶符號(hào)面積S。另外,設(shè)帶符號(hào)面積為正的情況下,該三角形為向外的面,在負(fù)的情況下為向里的面。
式13S=12axay1bxby1cxcy1...(13)]]>將透視變換4個(gè)頂點(diǎn)Q00、Q30、Q03、Q33后的屏幕上的坐標(biāo)分別設(shè)為R00(r00x、r00y)、R30(r030x、r03y)、R03(r03x、r03y)、R33(r33x、r33y),則將由4個(gè)頂點(diǎn)構(gòu)成的圖形分成R00、R30、R03與R30、R33、R03兩組三角形,通過下式算出帶符號(hào)面積S0、S1。
S0=(r00x*r30y+r03x*r00y+r30x*r03y-r03x*r30y-r30x*r00y-r00x*r03y)/2S1=(r30x*r33y+r03x*r30y+r33x*r03y-r03x*r33y-r33x*r30y-r30x*r03y)/2這里,*為乘。在屏幕上4個(gè)頂點(diǎn)處于圖32(a)的位置關(guān)系的情況下,帶符號(hào)面積S0及S1為相同符號(hào),但在圖32(b)的情況下為不同符號(hào)。
因此,輪廓邊緣檢測(cè)部2902對(duì)各補(bǔ)丁,將帶符號(hào)面積保持在不同的存儲(chǔ)區(qū)域(未圖示)中,以便能區(qū)別正負(fù)值。并且在S0、S1為相同符號(hào)的情況下,將相加后的值保持在存儲(chǔ)區(qū)域中。另外,在本實(shí)施形態(tài)5中,將4個(gè)頂點(diǎn)分成R00、R30、R03與R30、R33、R03兩組三角形,但除引之外的方法,例如分成R00、R33、r03與R00、R30、R33的組即可,可以同樣的步驟進(jìn)行處理。
接著,輪廓邊緣檢測(cè)部2902比較存儲(chǔ)各補(bǔ)丁的帶符號(hào)面積值的存儲(chǔ)區(qū)域以外的保持確保的帶符號(hào)面積最大值的存儲(chǔ)區(qū)域(未圖示)的值與S3103中算出的帶符號(hào)面積(S3104)。另外,若帶符號(hào)面積大,則更新最大值,將更新后的值寫入存儲(chǔ)區(qū)域中。這里,在與最大帶符號(hào)面積的比較中使用帶符號(hào)面積S0、S1的絕對(duì)值之和。即,將S3103中算出的正的帶符號(hào)面積設(shè)為Ap、將負(fù)的面積設(shè)為Am,將存儲(chǔ)在存儲(chǔ)區(qū)域中的帶符號(hào)面積的最大值設(shè)為MAXA時(shí),進(jìn)行以下處理。
(1)算出帶符號(hào)面積的絕對(duì)值和Ap+|Am|。
(2)若Ap+|Am|>MAXA,則設(shè)MAXA=Ap+|Am|。
若對(duì)構(gòu)成對(duì)象的所有補(bǔ)丁完成以上處理,則移動(dòng)到S3105(S3101為是)。
之后,輪廓邊緣檢測(cè)部2902參照算出的各補(bǔ)丁的帶符號(hào)面積,在正負(fù)值都不為0的情況(圖32(b)的情況)下,作為該補(bǔ)丁形成輪廓邊緣,將邊緣識(shí)別符設(shè)為1,移動(dòng)到下一補(bǔ)丁的判斷(S3106)。
另外,輪廓邊緣檢測(cè)部2902在S3106中正負(fù)任一值都為0的情況下,移動(dòng)到S3107。
接著,輪廓邊緣檢測(cè)部2902通過比較該補(bǔ)丁的帶符號(hào)面積的符號(hào)與使用鄰接補(bǔ)丁信息參照的鄰接補(bǔ)丁的帶符號(hào)面積的符號(hào),判斷是否是輪廓邊緣形成補(bǔ)丁(S3107)。
之后,輪廓邊緣檢測(cè)部2902在該補(bǔ)丁與鄰接的補(bǔ)丁的帶符號(hào)面積的符號(hào)不同時(shí)(S3107為否),則可知在兩個(gè)補(bǔ)丁之間存在表面與里面的邊界,可判斷為是輪廓邊緣形成補(bǔ)丁。因此,若該補(bǔ)丁與相鄰的4個(gè)補(bǔ)丁的帶符號(hào)面積的乘積值為負(fù),則判斷為是輪廓邊緣形成補(bǔ)丁,將邊緣識(shí)別符設(shè)為1(S3108)。
另一方面,若所有鄰接補(bǔ)丁符號(hào)相同(S3107為是),則判斷為不是輪廓邊緣形成補(bǔ)丁(S3109)。另外,在不存在鄰接補(bǔ)丁(在本發(fā)明的實(shí)施形態(tài)中,向鄰接補(bǔ)丁信息提供-1)的情況下,作為該補(bǔ)丁形成邊緣,將識(shí)別符設(shè)為1。若輪廓邊緣檢測(cè)部2902對(duì)所有補(bǔ)丁完成上述處理,則移動(dòng)到細(xì)分割級(jí)確定部2903的細(xì)分割級(jí)的確定處理。另外,將輪廓邊緣檢測(cè)部2902算出的各補(bǔ)丁的帶符號(hào)面積及邊緣識(shí)別符發(fā)送到細(xì)分割級(jí)確定部2903。
細(xì)分割級(jí)確定部2903使用輪廓邊緣檢測(cè)部2902算出的各補(bǔ)丁的帶符號(hào)面積及邊緣識(shí)別符,可確定細(xì)分割級(jí)。
以多邊形集合來近似曲面補(bǔ)丁的方法大致有以下兩種。
第1個(gè)方法中,首先根據(jù)分割補(bǔ)丁的步幅(事先通過任何方法確定),分割uv參數(shù)空間,產(chǎn)生格子點(diǎn)。之后,算出生成的格子點(diǎn)在3維空間上的坐標(biāo),連結(jié)這些頂點(diǎn),生成多邊形。
第2個(gè)方法是生成分割補(bǔ)丁的控制點(diǎn)并遞歸地重復(fù)上述動(dòng)作以生成多邊形的方法。將前者稱為鑲嵌(tessellation)算法,將后者稱為再分算法。
在本實(shí)施形態(tài)5中,將用再分算法將補(bǔ)丁沿u、v方向進(jìn)行2分割的操作設(shè)為1級(jí),將其次數(shù)定義為細(xì)分割級(jí),但也可適用于鑲嵌算法。例如,也可準(zhǔn)備象級(jí)1為分別沿u、v軸方向10分割參數(shù)空間、級(jí)2為20分割等將級(jí)與分割數(shù)對(duì)應(yīng)起來的表格。另外,使用作為代表再分算法的上述遞推(de Casteljau)算法來細(xì)分割貝塞爾曲線的說明如上所述。
圖33(a)中示出使用再分法之前的補(bǔ)丁的實(shí)例,圖33(b)及(c)分別示出將再分法對(duì)補(bǔ)丁使用到級(jí)1、級(jí)2的情況實(shí)例。圖33(b)中,形成4個(gè)子補(bǔ)丁,在圖33(c)中,形成16個(gè)子補(bǔ)丁。
圖34是表示細(xì)分割級(jí)確定部2903的處理流程圖。下面,參照?qǐng)D34來詳細(xì)說明各步驟。
輪廓邊緣形成補(bǔ)丁由于在描繪時(shí)形成對(duì)象輪廓,所以與此外的補(bǔ)丁相比,期望分割得細(xì)。但是,因?yàn)檩喞吘壭纬裳a(bǔ)丁的帶符號(hào)面積有變小的傾向,所以若根據(jù)面積大小來確定細(xì)分割級(jí),則有可能不能分割得細(xì)。因此,在本實(shí)施形態(tài)5中,使用輪廓邊緣檢測(cè)部2902算出的帶符號(hào)面積的最大值來確定輪廓邊緣形成補(bǔ)丁的細(xì)分割級(jí)(固定值)。通過使用帶符號(hào)面積的最大值,可實(shí)現(xiàn)細(xì)分割要求與對(duì)象遠(yuǎn)離視點(diǎn)而進(jìn)行非常小的顯示的情況下降低細(xì)分割級(jí)的要求都成立。
具體而言,首先,細(xì)分割級(jí)確定部2903準(zhǔn)備圖35(a)那樣記述表格存儲(chǔ)部2903a中存儲(chǔ)的帶符號(hào)面積的最大值與輪廓邊緣形成補(bǔ)丁的細(xì)分割級(jí)的對(duì)應(yīng)關(guān)系的表格3501,比較該表格3501與輪廓邊緣檢測(cè)部2902算出的帶符號(hào)面積的最大值,確定輪廓邊緣形成補(bǔ)丁的細(xì)分割級(jí)(S3401)。另外,在圖35(a)中,MAi(i=0、...、4)是帶符號(hào)面積最大值的閾值。
接著,細(xì)分割級(jí)確定部2903首先參照邊緣識(shí)別符,對(duì)構(gòu)成對(duì)象的各補(bǔ)丁判斷該補(bǔ)丁是否是輪廓邊緣形成補(bǔ)丁(S3403)。在邊緣識(shí)別符為1的情況下(S3403為是),則是輪廓邊緣形成補(bǔ)丁,所以馬上確定細(xì)分割級(jí)(S3404)。
另一方面,細(xì)分割級(jí)確定部2903在邊緣識(shí)別符為0、不是形成輪廓邊緣的補(bǔ)丁的情況下(S3403為否),參照該補(bǔ)丁的正的帶符號(hào)面積來確定細(xì)分割級(jí)。原因在于在負(fù)的帶符號(hào)面積大的情況下,該補(bǔ)丁向里、即從視點(diǎn)不能看見的區(qū)域非常大,沒有必要分割。具體而言,將圖35(b)所示表格3502記錄在表格存儲(chǔ)部2903a中,通過參照該表格3502,確定細(xì)分割級(jí)(S3405)。另外,在圖35(b)的表格3502中,Ai(i=0、...、4)是帶符號(hào)面積最大值的閾值。繼續(xù)上述處理,直到對(duì)所有補(bǔ)丁完成上述處理(S3402)。
另外,在本實(shí)施形態(tài)5中,輪廓邊緣形成補(bǔ)丁的細(xì)分割級(jí)根據(jù)帶符號(hào)面積的最大值來決定成固定值,但與此外的補(bǔ)丁一樣,準(zhǔn)備圖35(b)等表格3502,根據(jù)帶符號(hào)面積來確定。此時(shí),期望除用于通常補(bǔ)丁中的表格外,將輪廓邊緣形成補(bǔ)丁用的表格記錄在存儲(chǔ)部2903a中。另外,期望將帶符號(hào)面積的閾值設(shè)定得低。另外,如上所述,必需注意帶符號(hào)面積有可能非常小的問題。
細(xì)分割部2904根據(jù)細(xì)分割級(jí)確定部2903確定的細(xì)分割級(jí),用再分算法來細(xì)分割各補(bǔ)丁。之后,若在鄰接補(bǔ)丁之間細(xì)分割級(jí)不同,則由于在補(bǔ)丁之間產(chǎn)生間隙,所以細(xì)分割部2904還進(jìn)行補(bǔ)償該間隙的處理,但該方法不特別限定。
另外,例如有在產(chǎn)生的間隙中新生成多邊形的方法。圖36(a)中示出細(xì)分割前的對(duì)象實(shí)例,圖36(b)中示出實(shí)施細(xì)分割后的對(duì)象實(shí)例。在圖36(b)的實(shí)例中,生成對(duì)象輪廓的輪廓邊緣形成補(bǔ)丁被分割到級(jí)2,其它補(bǔ)丁對(duì)應(yīng)于在屏幕上的面積被分割到級(jí)0或級(jí)1。因此,通過檢測(cè)是否是輪廓邊緣,可更精密描繪曲面圖像。
如上所述,根據(jù)本實(shí)施形態(tài)5的曲面圖像處理裝置100,透視變換構(gòu)成對(duì)象的補(bǔ)丁的控制點(diǎn)中存在于補(bǔ)丁上的4個(gè)頂點(diǎn),算出通過變換后的頂點(diǎn)構(gòu)成的圖形的帶符號(hào)面積。接著,參照算出的帶符號(hào)面積的符號(hào),由輪廓邊緣檢測(cè)部2902來判斷各補(bǔ)丁是否是形成輪廓邊緣的補(bǔ)丁。之后,根據(jù)判斷的結(jié)果與帶符號(hào)面積,由細(xì)分割級(jí)確定部2903來確定各補(bǔ)丁的細(xì)分割級(jí)。
通過以上處理,可對(duì)應(yīng)于屏幕上的補(bǔ)丁的面積,適當(dāng)控制細(xì)分割級(jí),同時(shí),生成邊緣部分平滑的對(duì)象。另外,因?yàn)樵趯?shí)施細(xì)分割處理之前僅執(zhí)行一次細(xì)分割級(jí)的確定,所以與每次細(xì)分割時(shí)算出平坦度并確定是否分割的現(xiàn)有技術(shù)相比,計(jì)算量少。另外,通過在輪廓邊緣形成補(bǔ)丁的判斷中也使用帶符號(hào)面積,可將計(jì)算負(fù)荷抑制到最小限度。
另外,本實(shí)施形態(tài)5的曲面圖像處理裝置100在僅使用存在于補(bǔ)丁上的控制點(diǎn)來進(jìn)行多邊形近似和描繪的情況下特別有效。
(實(shí)施形態(tài)6)下面,參照附圖來說明根據(jù)本實(shí)施形態(tài)5的曲面圖像處理裝置100。另外,在本實(shí)施形態(tài)6中的曲面圖像處理裝置100的功能結(jié)構(gòu)與上述實(shí)施形態(tài)5一樣,但輪廓邊緣檢測(cè)部2902及細(xì)分割級(jí)確定部2903的處理不同。下面,詳細(xì)說明各功能。
另外,本實(shí)施形態(tài)6的曲面圖像處理裝置100在使用定義補(bǔ)丁的形狀的所有控制點(diǎn)來進(jìn)行多邊形近似和描繪的情況下特別有效。另外,形狀輸入接收部2901與實(shí)施形態(tài)5一樣,接收包含視野變換矩陣及透視變換矩陣的視點(diǎn)信息和包含關(guān)于對(duì)象形狀的信息與相鄰補(bǔ)丁信息的對(duì)象形狀信息的輸入。
圖37是表示根據(jù)本實(shí)施形態(tài)6的輪廓邊緣檢測(cè)部2902中的處理流程圖。
首先,與僅透視變換存在于補(bǔ)丁上的控制點(diǎn)的實(shí)施形態(tài)6不同,透視變換所有控制點(diǎn)(在4階(3次)有理貝塞爾曲面的情況下為16個(gè)頂點(diǎn))(S3702),變換到2維屏幕上。這里,若連結(jié)鄰接的控制點(diǎn),則在圖30所示2維屏幕上生成3×3=9個(gè)圖形。以后,將生成的圖形稱為控制多邊形。
接著,對(duì)各曲面補(bǔ)丁,通過與實(shí)施形態(tài)5一樣的方法算出確保各存儲(chǔ)區(qū)域而生成的所有控制多邊形的帶符號(hào)面積,以能區(qū)別帶符號(hào)面積的正負(fù)值(S3703)。另外,在算出的值為正的情況下,加到存儲(chǔ)正的面積的存儲(chǔ)區(qū)域的值上,在負(fù)的情況下,加到存儲(chǔ)負(fù)的面積的存儲(chǔ)區(qū)域的值上。若對(duì)9個(gè)控制多邊形完成處理,則移動(dòng)到S3704。
補(bǔ)丁的形狀由控制點(diǎn)來定義,由于貝塞爾補(bǔ)丁中存在凸包性,所以通過使用控制多邊形,可判斷該補(bǔ)丁是否是輪廓邊緣形成補(bǔ)丁。例如,圖38(a)中,所有控制多邊形向外,圖38(b)中,全部向里,所以可判斷為不是輪廓邊緣形成補(bǔ)丁。另一方面,圖38(c)(d)中由于向外的控制多邊形與向里的控制多邊形混合存在,所以可判斷為是輪廓邊緣形成補(bǔ)丁。
若輪廓邊緣檢測(cè)部2902的帶符號(hào)面積算出部2902b算出的控制多邊形的帶符號(hào)面積中僅包含正或負(fù)之一的值,則不是輪廓邊緣形成補(bǔ)丁,若相反包含正負(fù)雙方的值,則可判斷該補(bǔ)丁是輪廓邊緣形成補(bǔ)丁。
因此,輪廓邊緣檢測(cè)部2902從上述存儲(chǔ)區(qū)域中取得相加的正負(fù)帶符號(hào)面積的值,算出乘積,進(jìn)行是否為0的判斷(S3704)。若乘積不為0(S3704為否),判斷為是輪廓邊緣形成補(bǔ)丁(S3705),將邊緣識(shí)別符設(shè)為1。
另外,若相加后的正負(fù)帶符號(hào)面積的乘積為0,IS3704為是),則輪廓邊緣檢測(cè)部2902判斷為不是輪廓邊緣形成補(bǔ)丁(S3706)。對(duì)所有補(bǔ)丁使用以上處理(S3701),通過結(jié)束所有補(bǔ)丁的處理,結(jié)束處理。
圖39是表示根據(jù)本實(shí)施形態(tài)6的細(xì)分割級(jí)確定部2903的處理流程圖。
首先,細(xì)分割級(jí)確定部2903參照輪廓邊緣檢測(cè)部2902提供的邊緣識(shí)別符,調(diào)查該補(bǔ)丁是否是輪廓邊緣形成補(bǔ)丁(S3902)。在實(shí)施形態(tài)5中,輪廓邊緣形成補(bǔ)丁的細(xì)分割級(jí)恒定,但在本實(shí)施形態(tài)6中,參照帶符號(hào)面積來進(jìn)行確定。此時(shí),為了緩和上述帶符號(hào)面積變小的問題,將正負(fù)帶符號(hào)面積的絕對(duì)值和用作指標(biāo)。
接著,細(xì)分割級(jí)確定部2903在表格存儲(chǔ)部2903a中保持圖40所示將輪廓邊緣形成補(bǔ)丁用的帶符號(hào)面積與細(xì)分割級(jí)對(duì)應(yīng)的表格4000,參照該表格4000,與該補(bǔ)丁的帶符號(hào)面積相比,確定細(xì)分割級(jí)(S3903)。另外,這里雖未說明,但與實(shí)施形態(tài)5一樣,參照構(gòu)成對(duì)象的補(bǔ)丁的最大帶符號(hào)面積,確定輪廓邊緣形成補(bǔ)丁的細(xì)分割級(jí)也可。另外,細(xì)分割級(jí)確定部2903也可不準(zhǔn)備圖40的表格4000、而準(zhǔn)備與輪廓邊緣形成補(bǔ)丁以外的補(bǔ)丁一樣將正的帶符號(hào)面積與細(xì)分割級(jí)相對(duì)應(yīng)的表格,確定細(xì)分割級(jí)。另外,在不是輪廓邊緣的情況下(S3902為否),細(xì)分割級(jí)確定部2903對(duì)于邊緣識(shí)別符為0的補(bǔ)丁,與實(shí)施形態(tài)5一樣,參照通常的表格,確定細(xì)分割級(jí)(S3904)。
有時(shí)期望u、v軸方向的細(xì)分割級(jí)可獨(dú)立設(shè)定,以便如果例如為圓柱這樣的對(duì)象,則不必沿旋轉(zhuǎn)軸方向那么細(xì)地分割。但是,在此前描述的算法中,對(duì)u、v軸方向設(shè)定相同的細(xì)分割級(jí)。因此,下面,說明使用算出的控制多邊形的帶符號(hào)面積來分別確定u、v軸方向的細(xì)分割級(jí)。
輪廓邊緣檢測(cè)部2902與上述方法一樣,透視變換定義補(bǔ)丁形狀的所有控制點(diǎn),生成控制多邊形,算出各控制多邊形的帶符號(hào)面積。對(duì)應(yīng)符號(hào)來將算出的控制多邊形的帶符號(hào)面積加到存儲(chǔ)區(qū)域上。之后,根據(jù)所有控制多邊形的處理結(jié)束時(shí)刻的存儲(chǔ)區(qū)域的值來判斷是否是輪廓邊緣。并且,在本發(fā)明中,不僅將帶符號(hào)面積的和、而且將各控制多邊形的帶符號(hào)面積的值分別保持在存儲(chǔ)區(qū)域(未圖示)中。在4階(3次)貝塞爾補(bǔ)丁(參照?qǐng)D30)中,在9個(gè)存儲(chǔ)區(qū)域中保持各控制多邊形的帶符號(hào)面積。將這些值送到細(xì)分割級(jí)確定部2903。
圖41是表示本方法的細(xì)分割級(jí)確定部2903中的處理流程圖。
首先,輪廓邊緣檢測(cè)部2902參照邊緣識(shí)別符,調(diào)查各補(bǔ)丁是否是輪廓邊緣形成補(bǔ)丁(S4102)。在是輪廓邊緣形成補(bǔ)丁的情況下(S4102為是),根據(jù)正負(fù)帶符號(hào)面積的絕對(duì)值和,參照輪廓邊緣用表格,確定uv方向軸的細(xì)分割級(jí)(S4103)。因此,對(duì)于輪廓邊緣形成補(bǔ)丁,u、v軸方向變?yōu)橄嗤募?xì)分割級(jí)。其中,也可對(duì)輪廓邊緣形成補(bǔ)丁使用后述方法,在u、v軸方向上獨(dú)立確定細(xì)分割級(jí)。此時(shí),需要注意有可能輪廓邊緣部分變得不平滑。
參照?qǐng)D42來說明邊緣識(shí)別符為0時(shí)的輪廓邊緣檢測(cè)部2903的處理。圖42(a)-(d)表示控制多邊形分別集合成的曲面。圖42(a)的任一控制多邊形的形狀都類似,面積也基本相等。因此,認(rèn)為該補(bǔ)丁在u軸方向、在v軸方向都不那么彎曲。
另一方面,可知在圖42(b)中,控制點(diǎn)Q10、Q11、Q13、Q20、Q21、Q22、Q23偏向控制點(diǎn)Q30、Q31、Q32、Q33一方,在u軸方向彎曲。這表示圖42(b)的補(bǔ)丁必需沿u軸方向進(jìn)行細(xì)分割。
同時(shí),可知在圖42(c)中,必需沿v軸方向進(jìn)行細(xì)分割,在圖42(d)中,必需沿u、v軸方向進(jìn)行細(xì)分割。利用這些性質(zhì),在本方法中,將存在于u、v各個(gè)軸方向上的控制多邊形的面積比用作表示補(bǔ)丁彎曲程度的指標(biāo),確定細(xì)分割級(jí)。后面將表示彎曲程度的指標(biāo)稱為彎曲參數(shù)。
首先,細(xì)分割級(jí)確定部2903調(diào)查構(gòu)成補(bǔ)丁的控制多邊形的帶符號(hào)面積是否全為負(fù)(S4104),若為負(fù)(S4104為是),則將該補(bǔ)丁的細(xì)分割級(jí)確定為0(S4105),移動(dòng)到下一補(bǔ)丁的處理。
另外,細(xì)分割級(jí)確定部2903調(diào)查構(gòu)成補(bǔ)丁的控制多邊形的帶符號(hào)面積是否全為負(fù),在不是負(fù)的情況下(S4104為否),接著算出存在于u軸方向上的控制多邊形的面積比(S4106)。具體而言根據(jù)以下步驟。
(1)取得由控制點(diǎn)Qj0及Qj1(j=0、...、3)形成的3個(gè)控制多邊形的帶符號(hào)面積的值。
(2)若將(1)取得的帶符號(hào)面積的值設(shè)為A0、A1、A2,則求出其中最大值A(chǔ)MAX與最小值A(chǔ)MIN。
(3)計(jì)算下式,求出彎曲參數(shù)Cu0。
Cu0=AMAX/AMIN(4)用由Qj1、Qj2(j=0、...、3)形成的控制多邊形及由Qj2、Qj3(j=0、...、3)形成的控制多邊形,進(jìn)行同樣處理,分別算出Cu1、Cu2。
(5)平均(3)及(4)的值,算出細(xì)分割級(jí)確定中使用的彎曲參數(shù)Cu。
Cu=(Cu0+Cu1+Cu2)/3另外,這里使用所有控制多邊形來求出面積比,將其平均設(shè)為彎曲參數(shù),但不限于此。例如,也可僅使用與邊界線v=0、v=1相鄰的控制多邊形來算出彎曲參數(shù),求出其平均。相反,也可僅使用與u軸平行的邊界線不鄰接的控制多邊形來算出。
另外,細(xì)分割級(jí)確定部2903根據(jù)S4106中算出的彎曲參數(shù),確定u軸方向的細(xì)分割級(jí)(S4107)。此時(shí),細(xì)分割級(jí)確定部2903在表格存儲(chǔ)部2903a中保持圖43所示將彎曲參數(shù)C與細(xì)分割級(jí)相對(duì)應(yīng)的表格4301,通過與算出的值相比較,可確定細(xì)分割級(jí)。另外,在圖43中,Ci(i=0、...、4)是彎曲參數(shù)的閾值。
之后,細(xì)分割級(jí)確定部2903對(duì)沿v軸方向鄰接的3個(gè)控制多邊形進(jìn)行與S4106及S4107一樣的處理(S4108及S4109)。之后,確定v軸方向的細(xì)分割級(jí)。繼續(xù)上述處理,直到對(duì)所有補(bǔ)丁進(jìn)行了上述處理(S4101)。通過使用以上說明的方法,根據(jù)本發(fā)明的曲面圖像處理裝置100可分別獨(dú)立確定u、v軸方向的細(xì)分割級(jí)。
另外,細(xì)分割部2904根據(jù)由細(xì)分割級(jí)確定部2903確定的細(xì)分割級(jí),細(xì)分割各補(bǔ)丁。之后,在補(bǔ)丁之間產(chǎn)生間隙的情況下,還進(jìn)行補(bǔ)償間隙的處理。
這樣,根據(jù)本實(shí)施形態(tài)6的曲面圖像處理裝置100,通過透視變換構(gòu)成各補(bǔ)丁的所有控制點(diǎn),變換為屏幕坐標(biāo)系,算出由此形成的所有控制多邊形的帶符號(hào)面積。輪廓邊緣檢測(cè)部2902根據(jù)算出的帶符號(hào)面積來判斷是否是輪廓邊緣形成補(bǔ)丁,對(duì)應(yīng)判斷結(jié)果和帶符號(hào)面積,細(xì)分割級(jí)確定部2903確定細(xì)分割級(jí)。
因此,即便是使用定義補(bǔ)丁形狀的所有控制點(diǎn)來進(jìn)行多邊形近似的方法,也可在抑制多邊形數(shù)量增大的同時(shí),生成邊緣部分平滑的對(duì)象。另外,在實(shí)施細(xì)分割之前僅執(zhí)行一次細(xì)分割級(jí)確定部2903的處理即可,與現(xiàn)有技術(shù)相比,計(jì)算量少。并且,通過僅追加一點(diǎn)處理就可判斷輪廓邊緣形成補(bǔ)丁,從計(jì)算負(fù)荷方面看是非常有效的。
(實(shí)施形態(tài)7)下面,參照附圖來說明根據(jù)本實(shí)施形態(tài)7的曲面圖像處理裝置100。圖44是表示本實(shí)施形態(tài)7中曲面圖像處理裝置的結(jié)構(gòu)一例的圖。另外,本實(shí)施形態(tài)7的曲面圖像處理裝置100除實(shí)施形態(tài)5中說明的單元外,其特征在于還配備最大細(xì)分割級(jí)確定部4401。
另外,通過配備最大細(xì)分割級(jí)確定部4401,即便屏幕上的面積大,也不分割不必細(xì)分割的補(bǔ)丁,可進(jìn)一步抑制多邊形數(shù)。下面詳細(xì)說明各功能,但與圖1一樣的附加相同序號(hào),省略說明。另外,在本實(shí)施形態(tài)7中,說明僅使用定義構(gòu)成對(duì)象的補(bǔ)丁形狀的控制點(diǎn)中存在于補(bǔ)丁上的頂點(diǎn)來進(jìn)行多邊形近似的情況,但在使用所有控制點(diǎn)來近似的情況下也可同樣使用。圖44中,形狀輸入接收部2901及輪廓邊緣檢測(cè)部2902的處理與實(shí)施形態(tài)5一樣,將各補(bǔ)丁的帶符號(hào)面積與是否是輪廓邊緣形成補(bǔ)丁的判斷結(jié)果發(fā)送到細(xì)分割級(jí)確定部2903。
例如,即便屏幕上的面積非常大,但若是平坦的補(bǔ)丁,則不必進(jìn)行細(xì)分割。因此,最大細(xì)分割級(jí)確定部4401取得對(duì)象形狀信息,對(duì)構(gòu)成對(duì)象的各補(bǔ)丁算出表示何種程度彎曲的指標(biāo),確定最大細(xì)分割級(jí)。以后,將表示何種程度彎曲的指標(biāo)稱為曲率參數(shù)。
下面說明最大細(xì)分割級(jí)確定部4401確定該曲率參數(shù)的兩種方法。任一指標(biāo)都利用由控制點(diǎn)擴(kuò)展的多面體是補(bǔ)丁形狀的粗略近似。另外,因?yàn)橐韵绿幚硪郧蜃鴺?biāo)系中實(shí)施,所以不必進(jìn)行視野變換或透視變換。
方法1參照?qǐng)D45(a),是最大細(xì)分割級(jí)確定部4401算出由存在于補(bǔ)丁上的控制點(diǎn)擴(kuò)展的平面與此外的控制點(diǎn)之間的距離并確定曲率參數(shù)的方法。具體而言根據(jù)以下步驟。
(1)求出由控制點(diǎn)Q00、Q30、Q03擴(kuò)展的平面的方程式α0。
(2)通常,通過下式求出平面αa*x+b*y+c*z+d=0與3維空間上的點(diǎn)P(x0、y0、z0)之間的距離L。這里,*為乘。
式14L=|ax0+by0+cz0+d|a2+b2+c2...(14)]]>用上式,算出(1)中求出的平面α0與控制點(diǎn)Q01、Q02、Q10、Q11、Q12、Q20、Q21之間的距離I01、I02、I10、I11、I12、I20、I21。
(3)求出由控制點(diǎn)Q01Q30、Q01Q33、Q01Q03擴(kuò)展的平面的方程式α1。
(4)算出(3)中求出的平面α1與控制點(diǎn)Q12、Q13、Q21、Q22、Q23、Q31、Q32之間的距離I12′、I13′、I21′、I22′、I23′、I31′、I32′。
(5)分別算出連結(jié)控制點(diǎn)Q03與Q30及Q00與Q33的對(duì)角線長(zhǎng)度d0、d1。
(6)解下式,算出曲率參數(shù)C。
I0=I01+I02+I10+I11+I12+I20+I21I1=I12′+I13′+I21′+I22′+I23′I31′+I32′C=(I0+I1)/(d0+d1)另外,這里,將對(duì)應(yīng)于擴(kuò)展的平面算出距離的控制點(diǎn)分成兩個(gè)組,但該方法不特別限定。例如,也可對(duì)各平面求出與不在平面上的所有控制點(diǎn)的距離,確定曲率參數(shù)。相反,也可是僅使用代表點(diǎn)(例如在控制點(diǎn)中位于中央的Q11、Q12、Q21、Q22)的方法。
在方法2中,參照?qǐng)D45(b),最大細(xì)分割級(jí)確定部4401算出連結(jié)控制點(diǎn)的端點(diǎn)的線段長(zhǎng)度與相鄰控制點(diǎn)之間的距離和,確定曲率參數(shù)。具體而言根據(jù)以下步驟。
(1)算出連結(jié)控制點(diǎn)Q0i與Q3i的線段長(zhǎng)度di。
(2)算出連結(jié)沿u方向相鄰的控制點(diǎn)Qji與Q(j+1(i的線段長(zhǎng)度Iij(j=0、...、2)。
(3)解下式,算出Ci。
Ci=(Ii0+Ii1+Ii2)/di(4)重復(fù)(1)-(3)的處理,求出C0、C1、C2、C3。
(5)算出連結(jié)控制點(diǎn)Q0i與Q3i的線段長(zhǎng)度di′。
(6)算出連結(jié)沿v方向相鄰的控制點(diǎn)Qij與Qi(j+1)的線段長(zhǎng)度Iij′(j=0、...、2)。
(7)解下式,算出Ci′。
Ci′=(Ii0′+Ii1′+Ii2′)/di′(8)重復(fù)(5)-(7)的處理,求出C0′、C1′、C2′、C3′。
(9)根據(jù)(4)和(8)中求出的值,算出平均,設(shè)為曲率參數(shù)。
C=(C0+C1+C2+C3+C0′+C1′+C2′+C3′)/8另外,這里,對(duì)使用控制點(diǎn)形成的所有線段進(jìn)行處理,確定曲率參數(shù),但該方法不特別限定,例如也可僅在邊界線上(u=0、u=1、v=0、v=1)進(jìn)行處理并確定。
接著,最大細(xì)分割級(jí)確定部4401準(zhǔn)備圖46所示表示曲率參數(shù)與最大細(xì)分割級(jí)的對(duì)應(yīng)關(guān)系的表格4601,與算出的C進(jìn)行比較,確定其補(bǔ)丁的最大細(xì)分割級(jí)。另外,圖46中,εi(i=0、...、4)是曲率參數(shù)的閾值。對(duì)所有補(bǔ)丁進(jìn)行上述處理。將算出的最大細(xì)分割級(jí)發(fā)送到細(xì)分割級(jí)確定部2903。
細(xì)分割級(jí)確定部2903使用輪廓邊緣檢測(cè)部2902算出的各補(bǔ)丁的帶符號(hào)面積與邊緣識(shí)別符,確定細(xì)分割級(jí),但此時(shí),也考慮最大細(xì)分割級(jí)確定部4401確定的最大細(xì)分割級(jí)。因此,準(zhǔn)備補(bǔ)正圖35(b)的圖47的表格4701,對(duì)應(yīng)從最大細(xì)分割級(jí)確定部4401發(fā)送的最大細(xì)分割級(jí),更新細(xì)分割級(jí)的欄。另外,細(xì)分割級(jí)確定部4401使用更新后的表格,按與實(shí)施形態(tài)5一樣的步驟來確定細(xì)分割級(jí)。
另外,在圖47中,MAXL是可從最大細(xì)分割級(jí)確定部4401發(fā)送的最大細(xì)分割級(jí),CLIP(x)表示在(x)的值大于0的情況下為該值,在(x)小于0的情況下為0。
細(xì)分割部2904對(duì)應(yīng)于細(xì)分割級(jí)確定部2903確定的細(xì)分割級(jí),細(xì)分割各補(bǔ)丁,進(jìn)行補(bǔ)償間隙的處理。
這樣,根據(jù)本實(shí)施形態(tài)7的曲面圖像處理裝置100,最大細(xì)分割級(jí)確定部4401事先確定各補(bǔ)丁的最大細(xì)分割級(jí)。由此,例如可避免例如無限接近平坦的不必進(jìn)行細(xì)分割的補(bǔ)丁的多余分割,可更有效生成多邊形,近似對(duì)象的形狀。另外,最大細(xì)分割級(jí)確定部4401的處理在輸入對(duì)象形狀信息的時(shí)刻僅進(jìn)行一次即可,可以最小限度的計(jì)算負(fù)荷來實(shí)現(xiàn)。
(實(shí)施形態(tài)8)下面,參照附圖來說明根據(jù)本實(shí)施形態(tài)8的曲面圖像處理裝置100。
圖48是表示本實(shí)施形態(tài)8中曲面圖像處理裝置的結(jié)構(gòu)一例的圖。圖48的曲面圖像處理裝置100的曲面補(bǔ)丁分割處理部105除實(shí)施形態(tài)5中說明的處理部外,其特征在于配備初始細(xì)分割部4801。通過配備該初始細(xì)分割部4801,在確定細(xì)分割級(jí)之前,可以小的補(bǔ)丁單位來確定細(xì)分割級(jí),可更柔性地進(jìn)行對(duì)象的多邊形近似。下面,詳細(xì)說明各功能,但與圖1一樣的附加相同序號(hào),省略說明。
形狀輸入接收部2901接收視點(diǎn)信息及對(duì)象形狀信息的輸入。將取得的數(shù)據(jù)發(fā)送到初始細(xì)分割部4801。
在對(duì)象由多個(gè)補(bǔ)丁構(gòu)成的情況、或僅由非常大的補(bǔ)丁構(gòu)成的情況下,若在其中設(shè)定細(xì)分割級(jí),則整體上僅粗分割或過度細(xì)分割的可能性提高,難以進(jìn)行柔性的級(jí)控制。因此,初始細(xì)分割部4801在確定細(xì)分割級(jí)之前事先實(shí)施數(shù)級(jí)的細(xì)分割。細(xì)分割級(jí)確定部2903對(duì)數(shù)級(jí)分割后的各補(bǔ)丁確定細(xì)分割級(jí)。初始細(xì)分割部4801確定細(xì)分割級(jí)數(shù)的方法不特別限定。既可事先確定級(jí)數(shù),也可對(duì)應(yīng)于構(gòu)成對(duì)象的補(bǔ)丁個(gè)數(shù)來確定?;蛘撸敢曌儞Q構(gòu)成對(duì)象的初始補(bǔ)丁,算出帶符號(hào)面積,由最小值來確定細(xì)分割級(jí)。
另外,初始細(xì)分割部4801的細(xì)分割方法在僅使用定義各補(bǔ)丁形狀的控制點(diǎn)中位于補(bǔ)丁上的點(diǎn)來對(duì)對(duì)象進(jìn)行多邊形近似的情況下,既可使用鑲嵌算法,也可使用再分算法。在使用所有控制點(diǎn)的情況下,因?yàn)楸匦杓?xì)分割后的補(bǔ)丁的控制點(diǎn),所以必需進(jìn)行使用上述遞推(deCasteljau)算法的再分處理。
根據(jù)通過以上方法確定的細(xì)分割級(jí),僅以相同級(jí)來細(xì)分割構(gòu)成對(duì)象的所有補(bǔ)丁。將細(xì)分割后的補(bǔ)丁數(shù)據(jù)發(fā)送到輪廓邊緣檢測(cè)部2902。
輪廓邊緣檢測(cè)部2902、細(xì)分割級(jí)確定部2903、細(xì)分割部2904對(duì)初始細(xì)分割部4801細(xì)分割后的所有補(bǔ)丁進(jìn)行處理,生成多邊形近似后的對(duì)象。另外,本實(shí)施形態(tài)8中的曲面圖像處理裝置100也可具備最大細(xì)分割級(jí)確定部4401。
這樣,根據(jù)本實(shí)施形態(tài)8的曲面圖像處理裝置100,初始細(xì)分割部4801在確定細(xì)分割級(jí)之前對(duì)構(gòu)成對(duì)象的各補(bǔ)丁進(jìn)行數(shù)級(jí)細(xì)分割。之后,對(duì)于通過細(xì)分割生成的補(bǔ)丁,使用輪廓邊緣檢測(cè)部2902或細(xì)分割級(jí)確定部2903來確定細(xì)分割級(jí)。因此,即便是由非常少的補(bǔ)丁數(shù)構(gòu)成的對(duì)象、或僅由非常大的補(bǔ)丁構(gòu)成的對(duì)象,也可柔性設(shè)定細(xì)分割級(jí),在抑制多邊形數(shù)增大的同時(shí),可生成邊緣部分平滑的對(duì)象。
(實(shí)施形態(tài)9)下面,用實(shí)施形態(tài)9來說明根據(jù)本發(fā)明的曲面圖像處理裝置100的法線計(jì)算部106中的有理貝塞爾曲面的各控制點(diǎn)的法線計(jì)算的處理。另外,該法線計(jì)算中確定貝塞爾曲面的緯度、亮度等。
圖50是表示根據(jù)本實(shí)施形態(tài)9的法線計(jì)算部106的結(jié)構(gòu)的功能框圖。
法線計(jì)算部106具備輸入在由數(shù)據(jù)變換部105變換為貝塞爾數(shù)據(jù)后的貝塞爾曲面的各控制頂點(diǎn)坐標(biāo)的控制頂點(diǎn)輸入部5001、算出各控制頂點(diǎn)的法線矢量的法線算出部5002、及對(duì)透視變換部107進(jìn)行控制點(diǎn)輸出的控制點(diǎn)輸出部5003。
另外,法線算出部5002中具備判斷部5002a,判斷控制點(diǎn)是否退縮,是否是成為法線矢量算出對(duì)象的控制點(diǎn)。
圖51是表示曲面圖像處理裝置100的另一結(jié)構(gòu)的框圖,具備實(shí)際進(jìn)行法線矢量的計(jì)算處理的CPU5101、I/O5102、存儲(chǔ)貝塞爾曲面的控制點(diǎn)信息的存儲(chǔ)器5103。另外,存儲(chǔ)器5103保持存儲(chǔ)圖55所示表格信息的表格存儲(chǔ)部5103a。
圖52是表示根據(jù)本實(shí)施形態(tài)9的法線算出部5002的處理步驟的流程圖。
首先,控制頂點(diǎn)輸入部5001從曲面補(bǔ)丁分割處理部105輸入構(gòu)成貝塞爾曲面的控制點(diǎn)Pij(0≤i、j≤3)(S5201)。控制點(diǎn)的信息通過I/O5102,記錄在存儲(chǔ)器5103中。另外,該控制點(diǎn)的信息如上所述從鍵盤輸入也無妨,通過記錄在記錄媒體上的資料的讀入部輸入也可以。
圖55(a)及(b)表示記載存儲(chǔ)器5103中存儲(chǔ)的控制點(diǎn)及頂點(diǎn)坐標(biāo)的列表5501、記載控制點(diǎn)及法線的列表5502的一例。另外,列表中記載的控制點(diǎn)既可以貝塞爾曲面的一個(gè)補(bǔ)丁輸入,也可以多個(gè)補(bǔ)丁進(jìn)行輸入。并且,輸入多個(gè)貝塞爾曲面也無妨。
法線算出部5002算出從控制頂點(diǎn)輸入部5001輸入的控制點(diǎn)的法線矢量,但最初判斷部5002a對(duì)輸入的控制點(diǎn)P00判斷是否退縮為相鄰的控制點(diǎn)。即,判斷P00與P01、或P00與P10是否一致(S5202)。
在任一控制點(diǎn)都未退縮而不一致的情況下(S5202為否),法線算出部5002算出相鄰控制點(diǎn)間的差分矢量。即,算出差分矢量(P10-P00)與差分矢量(P01-P00)(S5203)。
接著,法線算出部5002算出差分矢量的外積(P10-P00)×(P01-P00)(S5205),歸一化后,算出控制點(diǎn)P00的法線(S5205)。以下所示(式15)中,示出法線算出部5002算出法線的式子。這樣,將算出的法線作為各控制點(diǎn)的法線矢量存儲(chǔ)在存儲(chǔ)器5103中。
式15(P10-P00)×(P01-P00)|(P10-P00)×(P01-P00)|...(15)]]>之后,法線算出部5002確認(rèn)是否算出貝塞爾曲面4個(gè)角的頂點(diǎn)的法線(S5206),在未算出所有頂點(diǎn)的法線的情況下(S5206否),再次重復(fù)S5202以后的處理,在法線算出部5002算出4個(gè)角的頂點(diǎn)的法線的情況下(S5206為是),結(jié)束一系列處理。
圖53中,示出法線算出對(duì)象的控制點(diǎn)鄰接的控制點(diǎn)未退縮情況下的差分矢量5301(P10-P00)、差分矢量5302(P01-P00)、差分矢量的外積5303(P10-P00)×(P01-P00)的實(shí)例。
另一方面,法線算出部5002在作為控制點(diǎn)的P00與P01、P00與P01之一或雙方退縮并一致的情況下,使用附近的控制點(diǎn)來算出法線(S5206為是)。在這樣相鄰的控制點(diǎn)退縮的情況下,用圖54(a)、(b)、(c)來說明。
另外,根據(jù)本實(shí)施形態(tài)9的法線算出部5002的判斷部5002a進(jìn)行判斷,在P00與P01一致、P00與P10不一致的情況下,算出差分矢量(P10-P00)、和差分矢量(P11-P00)。并且,進(jìn)行判斷,若P11與P00一致,則在按P12、P13、P21、P22、P23、P31、P32、P33的順序搜索與P00不一致的點(diǎn)后,算出搜索點(diǎn)與P00之間的差分矢量。
圖54是說明與法線算出對(duì)象的控制點(diǎn)P00相鄰的控制點(diǎn)退縮的情況的參考圖。
圖54(a)中,示出P00與P01一致情況的實(shí)例。差分矢量5401是(P10-P00),差分矢量5402是(P11-P00),法線矢量5403是這些矢量的外積(P10-P00)×(P11-P00)。
圖54(b)中,示出當(dāng)P00與P01一致時(shí),用其它差分矢量來算出P00的法線矢量的實(shí)例。成為法線計(jì)算對(duì)象的兩個(gè)差分矢量所成角度比規(guī)定角度小的情況、或作為法線矢量算出對(duì)象的控制點(diǎn)P00與成為差分矢量算出對(duì)象的控制點(diǎn)的距離比規(guī)定距離短的情況下,為了正確算出法線矢量,還考慮如圖54(b)所示,使用差分矢量5404及差分矢量5405,算出法線矢量5406。
或如圖54(c)所示,法線算出部5002在使P00與P01不一致,P00與P10一致的情況下,算出差分矢量5408(P01-P00)與差分矢量5407(P11-P00),法線矢量5409變?yōu)檫@些矢量的外積(P11-P00)×(P11-P00)。另外,若P11與P00一致,則與前面一樣,判斷部5002a進(jìn)行判斷,按P21、P31、P12、P22、P32、P13、P23、P33的順序搜索與P00不一致的點(diǎn)后,算出搜索點(diǎn)與P00之間的差分矢量。
另外,判斷部5002a判斷為在P00、P01、P10一致的情況下,通過P02與P00、P20與P00算出差分矢量(P20-P00)與差分矢量(P02-P00)。并且,在P02與P00一致的情況下,按P03、P21、P31、P32、P33的順序進(jìn)行搜索。在P20與P00一致的情況下,按P30、P12、P13、P23、P33的順序搜索。之后,在搜索到不一致的點(diǎn)后,進(jìn)行判斷,算出搜索點(diǎn)與P00之間的差分矢量。
另外,在全部控制點(diǎn)在一條曲線上、或退縮到一個(gè)點(diǎn)上的情況下,因?yàn)椴煌惾麪柷?,所以即使從描繪對(duì)象中刪除也無妨。
控制點(diǎn)輸出部5003輸入由法線計(jì)算部106計(jì)算的法線的信息?;蛘撸4嬖诖鎯?chǔ)器203中。圖55(b)表示保存在存儲(chǔ)器203中的法線數(shù)據(jù)的存儲(chǔ)例。另外,圖55(a)及(b)中,示出獨(dú)立管理控制點(diǎn)的頂點(diǎn)坐標(biāo)與法線的狀態(tài),但不用說,也可統(tǒng)一管理。
另外,將根據(jù)本實(shí)施形態(tài)9的法線計(jì)算部106算出的控制點(diǎn)的數(shù)據(jù)用于透視變換部107及繪制處理部108中的3維圖像的描繪處理中。
如上所述,根據(jù)本實(shí)施形態(tài)9的法線計(jì)算部106即使在成為法線計(jì)算對(duì)象的相鄰控制點(diǎn)退縮的情況下,法線算出部5002也可正確有效地計(jì)算貝塞爾曲面的控制點(diǎn)的法線矢量。另外,在僅使用位于貝塞爾曲面上的控制點(diǎn)來進(jìn)行3維圖像的描繪處理的情況下,不必進(jìn)行關(guān)于曲面內(nèi)部的控制點(diǎn)的法線計(jì)算。
產(chǎn)業(yè)上的可利用性根據(jù)本發(fā)明的曲面圖像處理裝置可用作在3維計(jì)算機(jī)繪圖領(lǐng)域中、使用NURBS曲面或貝塞爾曲面等自由曲面來描繪3維對(duì)象的曲面圖像處理裝置,例如,可適用于在畫面中顯示3維對(duì)象的便攜終端、汽車導(dǎo)航裝置、攜帶游戲機(jī)、電視等娛樂裝置中。
權(quán)利要求
1.一種曲面圖像處理裝置,使用作為3維對(duì)象的形狀數(shù)據(jù)的NURBS數(shù)據(jù),在畫面上描繪所述3維對(duì)象,其特征在于具備數(shù)據(jù)變換單元,將由NURBS曲線及NURBS曲面形成的所述NURBS數(shù)據(jù)進(jìn)行參數(shù)變換,變換為形成有理貝塞爾曲線及有理貝塞爾曲面的有理貝塞爾控制點(diǎn)數(shù)據(jù);曲面分割單元,將該數(shù)據(jù)變換單元變換的所述有理貝塞爾控制點(diǎn)數(shù)據(jù)所構(gòu)成的有理貝塞爾曲面補(bǔ)丁細(xì)分割成多個(gè)曲面補(bǔ)丁;和描繪單元,用所述曲面補(bǔ)丁來描繪所述3維對(duì)象。
2.根據(jù)權(quán)利要求1所述的曲面圖像處理裝置,其特征在于還具備坐標(biāo)變換單元,對(duì)所述NURBS數(shù)據(jù)實(shí)施坐標(biāo)變換,用所述3維對(duì)象的視點(diǎn)信息來變換為視野坐標(biāo)系中的NURBS數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的曲面圖像處理裝置,其特征在于所述坐標(biāo)變換單元還對(duì)所述有理貝塞爾控制點(diǎn)數(shù)據(jù)實(shí)施坐標(biāo)變換,用所述視點(diǎn)信息來變換為視野坐標(biāo)系中的有理貝塞爾控制點(diǎn)數(shù)據(jù)。
4.根據(jù)權(quán)利要求1所述的曲面圖像處理裝置,其特征在于在同次坐標(biāo)系中處理所述NURBS數(shù)據(jù)及所述有理貝塞爾控制點(diǎn)數(shù)據(jù)。
5.根據(jù)權(quán)利要求1所述的曲面圖像處理裝置,其特征在于所述曲面分割單元對(duì)形成所述有理貝塞爾曲面補(bǔ)丁的所述有理貝塞爾控制點(diǎn)數(shù)據(jù)使用射影空間中的遞推(de Casteljau)算法,反復(fù)進(jìn)行線性插值,該線性插值使用由(2的n次方分之1)∶(1-(2的n次方分之1)之比(其中n為正整數(shù))內(nèi)分的內(nèi)分點(diǎn),并算出新的有理貝塞爾控制點(diǎn)數(shù)據(jù),并用該新的有理貝塞爾控制點(diǎn)數(shù)據(jù)來分割所述有理貝塞爾曲面補(bǔ)丁。
6.根據(jù)權(quán)利要求1所述的曲面圖像處理裝置,其特征在于所述曲面分割單元至少具備一個(gè)以上的分割處理部,由形成1個(gè)n次有理貝塞爾曲線的有理貝塞爾控制點(diǎn)數(shù)據(jù)來算出形成分割的兩個(gè)n次有理貝塞爾曲線的有理貝塞爾控制點(diǎn)數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的曲面圖像處理裝置,其特征在于所述NURBS數(shù)據(jù)由控制點(diǎn)列與節(jié)點(diǎn)矢量構(gòu)成,所述數(shù)據(jù)變換單元具備節(jié)點(diǎn)插入部,用節(jié)點(diǎn)插入算法,進(jìn)行將所述節(jié)點(diǎn)矢量插入所述控制點(diǎn)列的運(yùn)算;和控制點(diǎn)調(diào)整部,從該節(jié)點(diǎn)插入部的運(yùn)算生成的控制點(diǎn)列中包含的控制點(diǎn)內(nèi),刪除無用的控制點(diǎn)。
8.根據(jù)權(quán)利要求7所述的曲面圖像處理裝置,其特征在于所述節(jié)點(diǎn)插入部在從所述NURBS數(shù)據(jù)中包含的初始節(jié)點(diǎn)矢量及初始控制點(diǎn)列變換為表示所述有理貝塞爾控制點(diǎn)數(shù)據(jù)的最終節(jié)點(diǎn)矢量及最終控制點(diǎn)列的過程中,搜索位于所述最終節(jié)點(diǎn)矢量的特定位置上的節(jié)點(diǎn)的指數(shù),所述控制點(diǎn)調(diào)整部用搜索到的所述指數(shù),刪除所述最終節(jié)點(diǎn)矢量的特定控制點(diǎn)。
9.根據(jù)權(quán)利要求7所述的曲面圖像處理裝置,其特征在于所述控制點(diǎn)調(diào)整部當(dāng)對(duì)所述NURBS數(shù)據(jù)的次數(shù)為3、所述最終控制點(diǎn)列為以I為整數(shù)的(Q
、Q[1]、...、Q[I-1])、所述最終節(jié)點(diǎn)矢量為(u
、u[1]、...、u[I+3])、開始描繪所述NURBS數(shù)據(jù)的節(jié)點(diǎn)u[3],(u[j]、...、u[3]、...、u[k])的(k-j-1)個(gè)的節(jié)點(diǎn)值與u[3]相等并用復(fù)用度3以上來復(fù)用化時(shí),刪除所述最終控制點(diǎn)列中(Q
、Q[1]、...、Q[k-4])的(k-3)個(gè)控制點(diǎn)。
10.根據(jù)權(quán)利要求7所述的曲面圖像處理裝置,其特征在于所述控制點(diǎn)調(diào)整部當(dāng)對(duì)所述NURBS數(shù)據(jù)的次數(shù)為3、所述最終控制點(diǎn)列為以I為整數(shù)的(Q
、...、Q[I-2]、Q[I-1])、所述最終節(jié)點(diǎn)矢量為(u
、...、u[I+2]、u[I+3])、所述NURBS數(shù)據(jù)的描繪結(jié)束的節(jié)點(diǎn)u[I],(u[j]、...、u[I]、...、u[k])共(k-j+1)個(gè)節(jié)點(diǎn)值與u[I]相等并用復(fù)用度3以上來復(fù)用化時(shí),刪除所述最終控制點(diǎn)列中(Q[j]、...、Q[I-2]、Q[I-1])共(I-j)個(gè)控制點(diǎn)。
11.根據(jù)權(quán)利要求7所述的曲面圖像處理裝置,其特征在于構(gòu)成所述控制點(diǎn)列的各控制點(diǎn)具有重量,所述節(jié)點(diǎn)插入部在同次坐標(biāo)系下操作所述控制點(diǎn)列。
12.根據(jù)權(quán)利要求7所述的曲面圖像處理裝置,其特征在于所述節(jié)點(diǎn)插入部對(duì)位于所述節(jié)點(diǎn)矢量特定范圍內(nèi)的各要素插入節(jié)點(diǎn),以便以特定復(fù)用度來被復(fù)用。
13.根據(jù)權(quán)利要求1所述的曲面圖像處理裝置,其特征在于所述曲面補(bǔ)丁是多邊形數(shù)據(jù),所述描繪單元將多個(gè)所述多邊形數(shù)據(jù)變換成象素?cái)?shù)據(jù),描繪所述3維對(duì)象。
14.根據(jù)權(quán)利要求1所述的曲面圖像處理裝置,其特征在于所述曲面分割單元還配備面積算出部,用定義構(gòu)成所述對(duì)象的各曲面補(bǔ)丁形狀的所述有理貝塞爾控制點(diǎn)數(shù)據(jù),算出通過透視變換構(gòu)成的2維圖形的帶符號(hào)面積;和檢測(cè)部,根據(jù)所述帶符號(hào)面積的值,檢測(cè)所述曲面補(bǔ)丁是否是形成作為所述對(duì)象輪廓部的輪廓邊緣的曲面補(bǔ)丁。
15.根據(jù)權(quán)利要求14所述的曲面圖像處理裝置,其特征在于所述曲面分割單元還具備細(xì)分割級(jí)確定部,對(duì)應(yīng)所述檢測(cè)部檢測(cè)的是否是形成所述輪廓邊緣的曲面補(bǔ)丁的結(jié)果、和所述面積算出部算出的所述曲面補(bǔ)丁在屏幕上的所述帶符號(hào)面積的值,確定所述曲面補(bǔ)丁的細(xì)分割級(jí)。
16.根據(jù)權(quán)利要求15所述的曲面圖像處理裝置,其特征在于所述細(xì)分割級(jí)確定部還特定所述面積算出部算出的帶符號(hào)面積的最大值,并根據(jù)特定的所述帶符號(hào)面積的最大值來確定形成所述輪廓邊緣的曲面補(bǔ)丁的所述細(xì)分割級(jí)。
17.根據(jù)權(quán)利要求15所述的曲面圖像處理裝置,其特征在于所述面積算出部還算出通過透視變換定義構(gòu)成對(duì)象的各曲面補(bǔ)丁形狀的所有控制點(diǎn)而構(gòu)成的各2維圖形的帶符號(hào)面積,所述細(xì)分割級(jí)確定部根據(jù)所述面積算出部算出的所述曲面補(bǔ)丁的2維圖形的所述帶符號(hào)面積值的絕對(duì)值之和,確定形成所述輪廓邊緣的曲面補(bǔ)丁的所述細(xì)分割級(jí)。
18.根據(jù)權(quán)利要求15所述的曲面圖像處理裝置,其特征在于所述細(xì)分割級(jí)確定部對(duì)定義構(gòu)成對(duì)象的各曲面補(bǔ)丁的第1軸和第2軸,分別獨(dú)立確定細(xì)分割級(jí)。
19.根據(jù)權(quán)利要求18所述的曲面圖像處理裝置,其特征在于所述面積算出部還參照通過透視變換定義構(gòu)成對(duì)象的各曲面補(bǔ)丁形狀的所有控制點(diǎn)來構(gòu)成的2維圖形中、鄰接第1軸方向(及第2軸方向)的所述2維圖形,分別算出參照的所述2維圖形的帶符號(hào)面積,所述細(xì)分割級(jí)確定部對(duì)應(yīng)算出的所述帶符號(hào)面積的最大值與最小值之比,確定第1軸方向的細(xì)分割級(jí),并參照鄰接第2軸方向的所述2維圖形,分別算出參照的所述2維圖形的帶符號(hào)面積,對(duì)應(yīng)算出的所述帶符號(hào)面積的最大值與最小值之比,確定第2軸方向的細(xì)分割級(jí)。
20.根據(jù)權(quán)利要求15所述的曲面圖像處理裝置,其特征在于所述曲面分割單元還具備初始細(xì)分割部,在所述細(xì)分割級(jí)確定部確定構(gòu)成對(duì)象的各曲面補(bǔ)丁的細(xì)分割級(jí)之前,實(shí)施大于1級(jí)的細(xì)分割。
21.根據(jù)權(quán)利要求15所述的曲面圖像處理裝置,其特征在于所述細(xì)分割級(jí)確定部確定的所述細(xì)分割級(jí),將沿第1軸及第2軸方向每次細(xì)分割用再分算法構(gòu)成對(duì)象的各曲面補(bǔ)丁的操作設(shè)為1級(jí),或?qū)⒀厮龅?軸或所述第2軸任一方向進(jìn)行1次細(xì)分割的操作設(shè)為1級(jí),所述細(xì)分割級(jí)是所述細(xì)分割的操作次數(shù)。
22.根據(jù)權(quán)利要求14所述的曲面圖像處理裝置,其特征在于所述面積算出部算出所述有理貝塞爾控制點(diǎn)數(shù)據(jù)中、通過透視變換存在于補(bǔ)丁上的有理貝塞爾控制點(diǎn)所構(gòu)成的2維圖形的帶符號(hào)面積,所述檢測(cè)部使用該帶符號(hào)面積來檢測(cè)是否是形成輪廓邊緣的曲面補(bǔ)丁。
23.根據(jù)權(quán)利要求14所述的曲面圖像處理裝置,其特征在于所述檢測(cè)部還比較對(duì)第一曲面補(bǔ)丁算出的所述2維圖形的所述帶符號(hào)面積的正負(fù)符號(hào)、和對(duì)鄰接所述第一曲面補(bǔ)丁的曲面補(bǔ)丁算出的所述2維圖形的所述帶符號(hào)面積的正負(fù)符號(hào),若為不同符號(hào),則檢測(cè)為該曲面補(bǔ)丁是形成輪廓邊緣的曲面補(bǔ)丁。
24.根據(jù)權(quán)利要求14所述的曲面圖像處理裝置,其特征在于所述檢測(cè)部將由所述面積算出部算出、通過透視變換定義構(gòu)成所述對(duì)象的各曲面補(bǔ)丁形狀的所有控制點(diǎn)而構(gòu)成的2維圖形的帶符號(hào)面積,用作判斷是否是形成輪廓邊緣的曲面補(bǔ)丁的指標(biāo)。
25.根據(jù)權(quán)利要求14所述的曲面圖像處理裝置,其特征在于所述面積算出部還在算出通過透視變換定義構(gòu)成對(duì)象的各曲面補(bǔ)丁形狀的所有控制點(diǎn)而構(gòu)成的各2維圖形的帶符號(hào)面積后,再算出該正負(fù)符號(hào)不同的面積的總和,所述檢測(cè)部若在所述面積算出部算出的所述正負(fù)符號(hào)不同的面積的總和某一個(gè)為0時(shí),檢測(cè)為不是形成輪廓邊緣的曲面補(bǔ)丁。
26.根據(jù)權(quán)利要求14所述的曲面圖像處理裝置,其特征在于所述曲面分割單元還具備最大細(xì)分割級(jí)確定部,事先確定構(gòu)成對(duì)象的各曲面補(bǔ)丁的最大細(xì)分割級(jí)。
27.根據(jù)權(quán)利要求26所述的曲面圖像處理裝置,其特征在于所述最大細(xì)分割級(jí)確定部根據(jù)定義構(gòu)成對(duì)象的各曲面補(bǔ)丁形狀的控制點(diǎn)中、存在于所述曲面補(bǔ)丁上的所述控制點(diǎn)所擴(kuò)展的平面與未存在于所述曲面補(bǔ)丁上的所述控制點(diǎn)之間距離、與連結(jié)存在于所述曲面補(bǔ)丁上的所述控制點(diǎn)的對(duì)角線長(zhǎng)度之比,確定所述各曲面補(bǔ)丁的最大細(xì)分割級(jí)。
28.根據(jù)權(quán)利要求26所述的曲面圖像處理裝置,其特征在于所述最大細(xì)分割級(jí)確定部算出連結(jié)定義構(gòu)成對(duì)象的各曲面補(bǔ)丁形狀的控制點(diǎn)中、存在于所述曲面補(bǔ)丁上的所述控制點(diǎn)的線段長(zhǎng)度,對(duì)存在于所述曲面補(bǔ)丁上的所述控制點(diǎn)之間的所述控制點(diǎn),算出相鄰的所述控制點(diǎn)之間的距離和,對(duì)應(yīng)算出的所述距離和與所述線段的長(zhǎng)度之比,確定所述各曲面補(bǔ)丁的最大細(xì)分割級(jí)。
29.根據(jù)權(quán)利要求14-28之一所述的曲面圖像處理裝置,其特征在于構(gòu)成所述對(duì)象的所述曲面補(bǔ)丁是有理貝塞爾曲面。
30.根據(jù)權(quán)利要求1所述的曲面圖像處理裝置,其特征在于所述曲面圖像處理裝置還具備法線算出單元,用所述有理貝塞爾曲線的所述有理貝塞爾控制點(diǎn)數(shù)據(jù),算出各控制點(diǎn)的法線,所述法線算出單元具備選擇部,在算出從作為所述曲面補(bǔ)丁的四個(gè)角的第一控制點(diǎn)的第4控制點(diǎn)的法線時(shí),選擇與成為法線計(jì)算對(duì)象的第一控制點(diǎn)相鄰的兩個(gè)控制點(diǎn);和算出部,分別算出所述第一控制點(diǎn)與所述相鄰兩個(gè)控制點(diǎn)之間的矢量,算出被算出的兩個(gè)所述矢量的外積,并算出歸一化后的外積,作為所述第一控制點(diǎn)的法線。
31.根據(jù)權(quán)利要求30所述的曲面圖像處理裝置,其特征在于所述選擇部在算出從作為所述曲面補(bǔ)丁的四個(gè)角的第一控制點(diǎn)到第4控制點(diǎn)的法線時(shí),在從鄰接所述第一控制點(diǎn)的第二控制點(diǎn)到第四控制點(diǎn)中至少一個(gè)變?yōu)橥丝s后與所述第一控制點(diǎn)相同的坐標(biāo)的情況下,選擇與成為法線計(jì)算對(duì)象的第一控制點(diǎn)鄰接、且與所述第一控制點(diǎn)坐標(biāo)不同的兩個(gè)控制點(diǎn),所述算出部分別算出所述第一控制點(diǎn)與所述選擇部選擇的兩個(gè)控制點(diǎn)之間的矢量,算出兩個(gè)所述矢量的外積,并算出歸一化后的外積,作為所述第一控制點(diǎn)的法線。
32.根據(jù)權(quán)利要求30所述的曲面圖像處理裝置,其特征在于所述選擇部在算出從作為所述曲面補(bǔ)丁的四個(gè)角的第一控制點(diǎn)到第4控制點(diǎn)的法線時(shí),在鄰接成為法線計(jì)算對(duì)象的第一控制點(diǎn)的控制點(diǎn)退縮的情況下,還選擇與該控制點(diǎn)鄰接并不退縮的控制點(diǎn)。
33.根據(jù)權(quán)利要求30所述的曲面圖像處理裝置,其特征在于所述選擇部在所述算出部算出的兩個(gè)法線矢量所成角度小于規(guī)定角度的情況下,還選擇其它控制點(diǎn)。
34.根據(jù)權(quán)利要求30所述的曲面圖像處理裝置,其特征在于所述選擇部不選擇距離成為法線計(jì)算對(duì)象的第一控制點(diǎn)小于規(guī)定距離的控制點(diǎn)。
35.根據(jù)權(quán)利要求30所述的曲面圖像處理裝置,其特征在于所述選擇部在算出所述貝塞爾曲面的四個(gè)角的控制點(diǎn)的法線時(shí),比較4個(gè)角的控制點(diǎn)中成為法線計(jì)算對(duì)象的第一控制點(diǎn)和從與該第一控制點(diǎn)鄰接的第2控制點(diǎn)到第四控制點(diǎn)的坐標(biāo),在這些坐標(biāo)不同的情況下,選擇鄰近4個(gè)角的控制點(diǎn)之一(P00)的兩個(gè)控制點(diǎn)(P01、P10),所述算出部分別算出鄰接所述第一控制點(diǎn)(P00)的兩個(gè)控制點(diǎn)(P01、P10)與所述第一控制點(diǎn)P00之間的矢量,算出兩個(gè)所述矢量的外積,并算出歸一化后的外積,作為所述控制點(diǎn)的法線,所述選擇部在所述第一控制點(diǎn)P00與同其相鄰的兩個(gè)控制點(diǎn)P01、P10中至少一個(gè)坐標(biāo)相同的情況下,選擇附近的未退縮的控制點(diǎn),所述算出部算出所述第一控制點(diǎn)與附近控制點(diǎn)之間的矢量、及所述第一控制點(diǎn)與所述兩個(gè)控制點(diǎn)P01、P10中未退縮的控制點(diǎn)之間的矢量,并算出已算出的兩個(gè)所述矢量的外積,算出歸一化后的外積,作為所述控制點(diǎn)的法線。
36.一種曲面圖像處理裝置,用作為3維對(duì)象的形狀數(shù)據(jù)的NURBS數(shù)據(jù),在畫面上描繪所述3維對(duì)象,其特征在于具備數(shù)據(jù)變換單元,將由NURBS曲線及NURBS曲面形成的所述NURBS數(shù)據(jù)進(jìn)行參數(shù)變換,變換為形成有理貝塞爾曲線及有理貝塞爾曲面的有理貝塞爾控制點(diǎn)數(shù)據(jù);曲面分割單元,將該數(shù)據(jù)變換單元變換的所述有理貝塞爾控制點(diǎn)數(shù)據(jù)所構(gòu)成的有理貝塞爾曲面補(bǔ)丁細(xì)分割成多個(gè)曲面補(bǔ)??;和描繪單元,用所述曲面補(bǔ)丁來描繪所述3維對(duì)象,所述曲面分割單元還配備面積算出部,計(jì)算用定義構(gòu)成所述對(duì)象的各曲面補(bǔ)丁形狀的所述有理貝塞爾控制點(diǎn)數(shù)據(jù)、通過透視變換構(gòu)成的2維圖形的帶符號(hào)面積;檢測(cè)部,根據(jù)所述帶符號(hào)面積的值,檢測(cè)所述曲面補(bǔ)丁是否是形成作為所述對(duì)象輪廓部的輪廓邊緣的曲面補(bǔ)丁;和細(xì)分割級(jí)確定部,根據(jù)所述檢測(cè)部檢測(cè)是否是形成所述輪廓邊緣的曲面補(bǔ)丁的結(jié)果、和所述面積算出部算出的所述曲面補(bǔ)丁在屏幕上的所述帶符號(hào)面積的值,確定所述曲面補(bǔ)丁的細(xì)分割級(jí)。
37.根據(jù)權(quán)利要求36所述的曲面圖像處理裝置,其特征在于所述檢測(cè)部還比較對(duì)第一曲面補(bǔ)丁算出的所述2維圖形的所述帶符號(hào)面積的正負(fù)符號(hào)、和對(duì)鄰接所述第一曲面補(bǔ)丁的曲面補(bǔ)丁算出的所述2維圖形的所述帶符號(hào)面積的正負(fù)符號(hào),若為不同符號(hào),則檢測(cè)為該曲面補(bǔ)丁是形成輪廓邊緣的曲面補(bǔ)丁。
38.一種曲面圖像處理方法,用作為3維對(duì)象的形狀數(shù)據(jù)的NURBS數(shù)據(jù),在畫面上描繪所述3維對(duì)象,其特征在于包含數(shù)據(jù)變換步驟,將由NURBS曲線及NURBS曲面形成的所述NURBS數(shù)據(jù)進(jìn)行參數(shù)變換,變換為形成有理貝塞爾曲線及有理貝塞爾曲面的有理貝塞爾控制點(diǎn)數(shù)據(jù);曲面分割步驟,將該數(shù)據(jù)變換步驟變換的所述有理貝塞爾控制點(diǎn)數(shù)據(jù)所構(gòu)成的有理貝塞爾曲面補(bǔ)丁細(xì)分割成多個(gè)曲面補(bǔ)??;和描繪步驟,用所述曲面補(bǔ)丁來描繪所述3維對(duì)象。
39.根據(jù)權(quán)利要求38所述的曲面圖像處理方法,其特征在于所述NURBS數(shù)據(jù)由控制點(diǎn)列與節(jié)點(diǎn)矢量構(gòu)成,所述數(shù)據(jù)變換步驟中,具備節(jié)點(diǎn)插入步驟,用節(jié)點(diǎn)插入算法,進(jìn)行將所述節(jié)點(diǎn)矢量插入所述控制點(diǎn)列的運(yùn)算;和控制點(diǎn)調(diào)整步驟,從該節(jié)點(diǎn)插入步驟的運(yùn)算生成的控制點(diǎn)列中包含的控制點(diǎn)內(nèi)刪除無用的控制點(diǎn)。
40.根據(jù)權(quán)利要求38所述的曲面圖像處理方法,其特征在于在所述分割處理步驟中,還包含面積算出步驟,計(jì)算用定義構(gòu)成所述對(duì)象的各曲面補(bǔ)丁形狀的所述有理貝塞爾控制點(diǎn)數(shù)據(jù)、通過透視變換構(gòu)成的2維圖形的帶符號(hào)面積;和檢測(cè)步驟,根據(jù)所述帶符號(hào)面積的值,檢測(cè)所述曲面補(bǔ)丁是否是形成作為所述對(duì)象輪廓部的輪廓邊緣的曲面補(bǔ)丁。
41.根據(jù)權(quán)利要求40所述的曲面圖像處理方法,其特征在于所述分割處理步驟中,還包含細(xì)分割級(jí)確定部,根據(jù)檢測(cè)是否是形成所述輪廓邊緣的曲面補(bǔ)丁的結(jié)果、和所述面積算出步驟中算出的所述曲面補(bǔ)丁在屏幕上的所述帶符號(hào)面積的值,確定所述曲面補(bǔ)丁的細(xì)分割級(jí)。
42.根據(jù)權(quán)利要求38所述的曲面圖像處理方法,其特征在于還包含法線算出步驟,使用所述有理貝塞爾曲面的所述有理貝塞爾控制點(diǎn)數(shù)據(jù),算出各控制點(diǎn)的法線,在所述法線算出步驟中,包含選擇步驟,在算出從作為所述曲面補(bǔ)丁的四個(gè)角的第一控制點(diǎn)到第4控制點(diǎn)的法線時(shí),選擇與成為法線計(jì)算對(duì)象的第一控制點(diǎn)相鄰的兩個(gè)控制點(diǎn);和算出步驟,分別算出所述第一控制點(diǎn)、和所述相鄰兩個(gè)控制點(diǎn)之間的矢量,算出被算出的兩個(gè)所述矢量的外積,并算出歸一化后的外積,作為所述第一控制點(diǎn)的法線。
43.一種用于曲面圖像處理裝置中的程序,使用作為3維對(duì)象的形狀數(shù)據(jù)的NURBS數(shù)據(jù),在畫面上描繪所述3維對(duì)象,其特征在于包含數(shù)據(jù)變換步驟,將由NURBS曲線及NURBS曲面形成的所述NURBS數(shù)據(jù)進(jìn)行參數(shù)變換,變換為形成有理貝塞爾曲線及有理貝塞爾曲面的有理貝塞爾控制點(diǎn)數(shù)據(jù);曲面分割步驟,將該數(shù)據(jù)變換步驟變換的所述有理貝塞爾控制點(diǎn)數(shù)據(jù)所構(gòu)成的有理貝塞爾曲面補(bǔ)丁細(xì)分割成多個(gè)曲面補(bǔ)??;和描繪步驟,用所述曲面補(bǔ)丁來描繪所述3維對(duì)象。
44.根據(jù)權(quán)利要求43所述的程序,其特征在于所述NURBS數(shù)據(jù)由控制點(diǎn)列與節(jié)點(diǎn)矢量構(gòu)成,所述數(shù)據(jù)變換步驟中,具備節(jié)點(diǎn)插入步驟,用節(jié)點(diǎn)插入算法,進(jìn)行將所述節(jié)點(diǎn)矢量插入所述控制點(diǎn)列的運(yùn)算;和控制點(diǎn)調(diào)整步驟,從該節(jié)點(diǎn)插入步驟的運(yùn)算生成的控制點(diǎn)列中包含的控制點(diǎn)內(nèi)刪除無用的控制點(diǎn)。
45.根據(jù)權(quán)利要求43所述的程序,其特征在于在所述分割處理步驟中,還包含面積算出步驟,用定義構(gòu)成所述對(duì)象的各曲面補(bǔ)丁形狀的所述有理貝塞爾控制點(diǎn)數(shù)據(jù),算出通過透視變換構(gòu)成的2維圖形的帶符號(hào)面積;和檢測(cè)步驟,根據(jù)所述帶符號(hào)面積的值,檢測(cè)所述曲面補(bǔ)丁是否是形成作為所述對(duì)象輪廓部的輪廓邊緣的曲面補(bǔ)丁。
46.根據(jù)權(quán)利要求45所述的程序,其特征在于所述分割處理步驟中,還包含細(xì)分割級(jí)確定部,根據(jù)檢測(cè)是否是形成所述輪廓邊緣的曲面補(bǔ)丁的結(jié)果、和所述面積算出步驟中算出的所述曲面補(bǔ)丁在屏幕上的所述帶符號(hào)面積的值,確定所述曲面補(bǔ)丁的細(xì)分割級(jí)。
47.根據(jù)權(quán)利要求43所述的程序,其特征在于還包含法線算出步驟,使用所述有理貝塞爾曲面的所述有理貝塞爾控制點(diǎn)數(shù)據(jù),算出各控制點(diǎn)的法線,在所述法線算出步驟中,包含選擇步驟,在算出從作為所述曲面補(bǔ)丁的四個(gè)角的第一控制點(diǎn)到第4控制點(diǎn)的法線時(shí),選擇與成為法線計(jì)算對(duì)象的第一控制點(diǎn)相鄰的兩個(gè)控制點(diǎn);和算出步驟,分別算出所述第一控制點(diǎn)與所述相鄰兩個(gè)控制點(diǎn)之間的矢量,算出被算出的兩個(gè)所述矢量的外積,并算出歸一化后的外積,作為所述第一控制點(diǎn)的法線。
全文摘要
本發(fā)明的曲面圖像處理裝置(100)具備輸入NURBS數(shù)據(jù)的數(shù)據(jù)輸入部(101)、對(duì)NURBS數(shù)據(jù)實(shí)施坐標(biāo)變換的坐標(biāo)變換部(102)、控制各描繪幀的動(dòng)畫數(shù)據(jù)的動(dòng)畫控制部(103)、將NURBS數(shù)據(jù)變換為有理貝塞爾數(shù)據(jù)的數(shù)據(jù)變換部(104)、細(xì)分割有理貝塞爾曲面補(bǔ)丁的曲面補(bǔ)丁分割處理部(105)、對(duì)分割后的曲面補(bǔ)丁的控制點(diǎn)算出法線矢量的法線計(jì)算部(106)、對(duì)分割后的曲面補(bǔ)丁實(shí)施透視變換的透視變換部(107)及對(duì)曲面補(bǔ)丁進(jìn)行繪制處理的繪制處理部(108)。
文檔編號(hào)G06T17/30GK1499447SQ200310114369
公開日2004年5月26日 申請(qǐng)日期2003年11月12日 優(yōu)先權(quán)日2002年11月12日
發(fā)明者上崎亮, 西村明夫, 小林忠司, 望月義幸, 瀨川香壽, 山倉誠(chéng), 西尾一孝, 荒木均, 西村健二, 二, 司, 夫, 孝, 壽, 幸 申請(qǐng)人:松下電器產(chǎn)業(yè)株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1