專利名稱:三維圖像處理的制作方法
技術領域:
本發明涉及一種在第一設備上準備目標文件的方法,該目標文件用于在第二設備上渲染(rendering)三維物體的二維圖像。目標文件包括定義表示至少一個三維物體的多邊形基元(polygon primitive)的數據。重新安排目標文件中的數據,以便確定渲染順序,其中所述多邊形基元可能被渲染,從而解決隱藏面問題。本發明還涉及一種移動通信終端,包括圖像處理裝置,用于在顯示器上渲染三維物體的圖像。本發明也涉及一種通過處理定義具有減少數量的頂點數據的多邊形基元的數據從而渲染三維物體的二維圖像的方法。本發明還涉及一種移動通信終端,包括圖像處理裝置,用于在能夠以減少數量的頂點數據為基礎顯示圖像的顯示器上渲染三維物體的圖像。
背景技術:
直到最近,動畫三維圖形僅被應用在具有相對高處理能力的設備上,例如,在計算機輔助設計和計算機輔助制造期間在工作站或PC機上從多個角度的物體外觀的生成顯示、在電子視頻大型游戲機(arcade game)中,或者在駕駛或飛行模擬器中。
三維圖形現在也可以在相對低處理能力的設備中找到它們的痕跡,例如,移動電話、個人數字助理(PDA)和手持視頻游戲機。
為了提供動畫,必須以接近每秒20到30幀的速率更新圖像(在一些應用中可以接受更低的速率),使觀看者能夠觀看到連續變化的圖像而不是靜態圖像鏈。
設備可以執行的,與最小可接受的幀速率相關的計算速度,限制了可被執行以生成每個圖像的計算數量。
在三維動畫中,必須為每個圖像計算三維物體在二維上的投影。對于復雜的圖像,需要進行大量的計算。
圖像合成通常這樣完成,即將物體表示為許多由頂點定義的多邊形基元,將多邊形基元投影到圖像平面上,然后處理每個多邊形基元,以便為投影的多邊形的每個像素定義像素顏色。
渲染三維圖形的主要問題是隱藏面的去除。從觀察點來看,離觀察者稍近的表面遮擋了后面的部分。
通常的方法是,當渲染給定的像素時,不管它位于前面(所以遮擋后面)或者后面(所以被遮擋),檢測已經位于圖像緩沖器中的像素(如果有的話)。因此,需要給每個像素分配一個深度值。該技術稱為“z緩沖算法”。該技術在技術上是一種簡單的方法,但是它在存儲和處理能力方面耗費資源,因為它包括實時操作的大量的比較操作(相當于圖像緩沖器中的像素數量)。
“畫家算法(Painter’s Algorithm)”檢查多邊形的頂點坐標,并按照離觀察點從遠到近的順序對多邊形進行排隊。然后以距離減少的順序渲染多邊形,所以最遠的多邊形的像素首先被寫入圖像緩沖器中,需要時被那些較近的多邊形覆蓋。然而,每次觀察點改變時該技術需要重復所有多邊形的排序操作,所以,需要大量的實時計算。
在一項已知技術中,多邊形被看成具有兩個面一個面面向物體的內部(“后”面),一個面面向物體的外部(“前面”)。對于一個立體物體,多邊形的“后”面永遠不會被看到;所以只需要顯示面向前的多邊形。因此,在渲染圖像之前確定,從觀察角度來看,給出的多邊形是顯示其前面(外部)還是后面(內部),并且只渲染那些面向前面的多邊形。這種去除后面的方法減少了隱藏面去除的問題,但是沒有解決所有的問題。
還有一項已知技術,稱為“二叉空間剖分”(BSP)。在該技術中,在動畫之前執行一個預處理步驟,在該步驟中,在存儲器中建立樹型結構模型,樹上的每個節點代表空間剖分平面上的一個多邊形,并指向后繼節點和前繼節點(如果有的話)。一個節點包含嚴格由在剖分平面一側的多邊形組成的樹,另一個節點包含剩下的。然后可以遞歸地對樹進行處理(從離像機近的節點到遠的節點),然后以從后到前的順序提供多邊形。
還有一項已知技術是多邊形分解(polygon stripping),也就是將獨立的三角形或多邊形轉換為三角形條帶(strip)。在該技術中,第一個識別的三角形以順時針或逆時針方向卷曲(winding),然后,三角形條帶中所有的后來三角形交替卷曲。條帶一直繼續直至三角形條帶越出物體的邊緣或者進入已經成為另一個條帶的一部分的多邊形中。
一般來說,由于系統資源的大量消耗,三維圖像引擎屬于例如具有強能力處理器和大容量存儲器的工作站的高性能系統。有限的計算能力帶來的局限在不能提供最快處理器的設備中更加明顯。這類設備的例子有移動電話、個人數字助理(PDA)和手持視頻游戲機。所以有必要提供有效的算法以便三維實時動畫圖形可以被在上述設備中所具有的處理能力所處理。
發明內容
在這一背景下,本發明的目的是提供一種在第一設備上準備目標文件的方法,該目標文件用于在第二設備上渲染三維物體的二維圖像,以便確定渲染順序,其中所述三角形基元可能被渲染,以生成二維圖像,其中隱藏面被去除,這允許在相對低處理能力的設備上渲染實時的三維圖像。
該目的根據權利要求1而實現,其中提供一種在第一設備上準備目標文件的方法,通過處理包括定義表示至少一個三維物體的三角形基元的數據的目標文件,以確定渲染順序,該目標文件用于在第二設備上渲染三維物體的二維圖像,其中所述三角形基元可能以上述渲染順序渲染,以生成二維圖像,其中隱藏面被去除,該方法包括以下步驟
a)將對應于所述至少一個物體的多個表面部分的多個平面三角形基元存儲到一個目標文件中,其中所述多個三角形基元由根據原始順序排列的頂點數據表示,b)選擇一個不會潛在地遮擋任何未經處理的三角形的三角形以便開始三角形條帶,c)選擇一個鄰居三角形以加入到所述三角形條帶的最后三角形,d)確定所選擇的三角形是否可以潛在地遮擋任何未經處理的三角形,e)如果所選擇的三角形不可能潛在地遮擋任何未經處理的三角形,將所選擇的三角形加入到條帶中,并返回步驟c),f)如果所選擇的三角形可以潛在地遮擋任何未經處理的三角形,返回步驟b),以開始新的三角形條帶,以及g)重復步驟b)至f),直到目標文件中的所有三角形均被處理。
這樣,在三角形條帶中目標文件得以重新安排,能夠以生成的順序顯示,其中解決了隱藏面問題,也就是說,接收到這樣準備的目標文件的設備可以以其存儲在目標文件中的順序簡單地顯示三角形條帶和三角形,而不需要進行計算以解決隱藏面問題。這樣,通過對頂點數據進行預排序,使得在三角形條帶中的三角形基元的渲染順序是正確的,也就是說,不管觀察方向和像機位置,隱藏表面都正確地去除,使得圖像處理裝置執行的計算量得以大幅度的降低。這樣,第二設備僅需要計算物體的渲染順序,然后,對于動畫的每一幀,以其存儲在目標文件中的順序渲染物體的前向三角形基元。與例如Z-緩沖方法相比較,由于不需要對像素的以前的Z值進行比較,所以可以獲得所需計算量的大幅降低。
優選地,所述方法的步驟b)包括一個啟發式的搜索以便優選地通過選擇不具有許多未經處理的鄰居的三角形識別出用以啟動一個可以潛在地允許形成長條帶的條帶的那些三角形。
對于一些物體,由于沖突的遮擋優先順序,沒有其中三角形基元可以放置并且對于所有的觀察方向均可以正確地去除隱藏面的順序。這樣,就需要將那樣的物體分為二個物體,并且預排序每個這樣生成的物體的三角形基元。
優選地,所述方法在所述第一設備上還包括步驟如果在步驟b)中不可能找到一個不遮擋其它仍然未經處理的三角形的三角形,就將目標文件分為兩個文件。
優選地,使用一個剖分平面對物體進行分割,這樣至少一個其可以潛在地遮擋的未經處理的三角形的三角形留在了另一側。
優選地,使用一個任意的未經處理三角形的平面,并且該三角形在分割平面的外側被關聯,這樣,將所有其可能覆蓋的多邊形留在了另一側。
當將多邊形分為兩套時,可能必須對橫跨切割平面的多邊形進行切割。通常,最好這樣將多邊形分割為兩套,使得兩套中的多邊形數量盡可能的相等。
優選地,所述方法還包括在目標文件中確定三角形的前側和三角形平面,其中,確定所選擇出的三角形是否可以遮擋任何未經處理的三角形的確定步驟包括g)確定所選擇的三角形在任何未經處理的三角形的平面的前側是否具有一個或多個的頂點,以及h)確定在步驟g)中識別為肯定的任何未經處理的三角形在所選擇的三角形平面的后面是否具有一個或多個頂點。
所述方法在所述第一設備上在步驟b)之前還可以包括下述步驟i)確定物體在物體空間的XY平面中是否對稱,j)存儲所確定的對稱平面,以及k)在目標文件中去除確定的對稱平面的一側所有的頂點,以及對物體空間的XZ平面和YZ平面重復步驟i)至k)。
優選地,所述方法包括步驟l)在步驟f)或k)之后將所述目標文件從所述第一設備轉移到第二設備,并且在所述第二設備上存儲目標文件。
優選地,第一設備包括例如用在PC機或工作站中的較高性能的圖像處理裝置,優選地,所述第二設備包括例如用在移動通信終端或PDA中的較低性能的處理裝置。
這樣,圖像渲染過程的計算密集部分可以預先在具有高處理能力的設備上執行,如工作站或PC機,動畫三維圖形可以實時地在如移動電話、PDA或手持視頻游戲機等具有相對低處理能力的設備上渲染。
本發明的另一個目的在于提供一種在所述第二設備上顯示通過上述方法得到的目標文件的方法。該發明目的根據通過提供這樣一種方法的權利要求8得以實現,包括步驟m)確定觀察方向,n)確定物體順序,優選地使用畫家算法以及在所述第二設備上顯示所述物體。
優選地,所述方法還包括步驟o)挑選出所有的相對于所述視覺方向面向后面的三角形。
所述方法最好包括步驟p)重新找回存儲在目標文件中的對稱平面,q)創建目標文件中的頂點數據的副本,所述頂點數據的副本具有與原來的頂點數據相同的順序并且存儲在目標文件中,在原來的頂點數據之后,以及改變在分別與重新找到的所復制的頂點的對稱平面相垂直的軸上的頂點的值的符號。
僅在對稱平面為x=0、y=0或z=0時,才可以通過改變坐標的符號重新創建頂點。如果平面為,例如x=1,并且存在頂點0,1,2,通過改變x分量的符號不能獲得映射對。相反,必須相對于坐標x=1進行映射,映射對應該為2,1,2。所以所述方法可以包括轉換和旋轉物體步驟以便使得對稱軸與x=0,y=0或z=0相匹配。在渲染操作期間,在整個物體上執行相反的步驟。
所述方法還可以包括步驟r)以與其創建時相同的順序顯示三角形條帶,
s)以與其被加至三角形條帶的相同的順序顯示在三角形條帶中三角形。
這樣,可以按照它們存儲入目標文件,直接顯示三角形,不管觀察方向和像機位置,第二設備不需要執行計算以解決隱藏面問題。
優選地,第二設備包括如用在移動通信終端或PDA中的較低性能的處理裝置,最優選地,第二設備為移動電話。
優選地,由設備的主CPU執行圖像渲染過程,并且所有另外的圖像渲染裝置都內含軟件。
本發明的另一個目的是提供一種能夠顯示實時渲染的動畫三維圖形的移動通信終端。這一目的根據權利要求16得以實現,即提供一種移動通信終端,包括用于存儲包含三角形條帶的目標文件的裝置,用于以創建的順序顯示所述三角形的裝置,優選地,該順序對應于三角形條帶在目標文件中存儲的順序。
可以與其加至三角形條帶時相同的順序顯示在三角形條帶中三角形,優選地,該順序對應于在三角形條帶中其存儲的順序。
優選地,用二叉空間剖分方法確定物體的渲染順序。目標文件的渲染順序基于當前的觀察方向和距離排序,使遠端的物體的首先被渲染。
所述移動通信終端可以包括用于挑出相對于觀察方向面向后面的所有三角形的裝置。
所述移動通信終端可以進一步包括用于重新找回在目標文件中存儲的對稱平面的裝置,以及用于復制存在于目標文件中的所有頂點數據并為新創建的三角形改變在與各個對稱平面垂直的軸上的頂點的值的符號的裝置。
優選地,由設備的主CPU執行圖像渲染過程,并且所有另外的圖像渲染裝置都內含軟件。
本發明的另一個發明目的在于提供一種在第一設備上準備目標文件的方法,通過處理定義表示至少一個三維物體的三角形基元數據,該目標文件用于在第二設備上渲染三維物體的二維圖像。該方法減少了所需的計算量,所以允許在相對低的處理能力的設備上進行三維圖像的渲染。該發明目的根據權利要求22得以實現,即提供這樣的一種方法,在所述第一設備上包括步驟a)存儲對應于所述至少一個物體的多個表面部分的多個平面三角形基元,其中所述多個三角形基元以頂點數據表示,b)確定所述三維物體的對稱平面,c)把對稱平面數據存儲到目標文件中,d)從每個所述對稱平面的一側中挑選出所有的頂點數據,e)將所述目標文件從所述第一設備中轉移到所述第二設備,以及f)通過對關于所述對稱平面的所述頂點數據進行映射在所述第二設備上顯示所述圖像并且渲染所述圖像。
優選地,忽略與物體坐標系統的X、Y或Z軸均不正交的對稱平面。做為選擇,可以旋轉或轉換物體以便使對稱軸與平面X=0、Y=0或Z=0的一個或更多個排列成行。
第一設備可以包括例如用在PC機或工作站中的更高性能的圖像處理裝置,以及所述第二設備可以包括例如用在移動通信終端、PDA或手持視頻游戲機中的較低性能的處理裝置。
優選地,第二終端為移動電話。
本發明的另一個目的在于提供一種能夠使用減少的計算量顯示三維物體的二維圖像的移動通信終端。這一目的根據權利要求26得以實現,即提供一種移動通信終端,包括用于在顯示器上渲染三維物體的圖像的圖像處理裝置,用于存儲頂點數據的裝置,用于存儲對稱平面數據的裝置以及用于在對稱平面中映射頂點數據的裝置。
根據本發明方法和移動通信終端的更進一步的目的、特征、優點和屬性將從詳細描述中變得清楚。
在下面本說明書的詳細說明部分,參照附圖中所示的實施方式,將更加詳細地解釋本發明,其中圖1表示三角形的前面,圖2表示在第一設備上創建三維物體的目標文件的兩個階段的流程圖,圖3表示通過去除映射的頂點利用減少的頂點數據創建目標文件的步驟的詳細流程圖,圖4表示在第一設備上創建三角形條帶的步驟的詳細流程圖,圖5表示確定是否所選擇的三角形可以潛在地遮擋未經處理的三角形的過程的詳細流程圖,圖6表示在第二設備上將三維物體顯示為二維圖像的步驟的流程圖,圖7表示恢復在圖3所示的步驟中去除的三角形的步驟的詳細流程圖,圖8表示移動電話的方框圖。
具體實施例方式
三維圖形系統提供一種虛擬的三維(3-D)環境,其中物體、光源和視點位置可以在想象的三維空間中進行處理。該視點位置提供通往虛擬三維世界的窗口,經常被稱為“世界空間”。這個世界空間本身僅以定義三維坐標和其它如顏色和反射率的變量的數據形式存在。在想象的窗口上出現的二維圖像必須在一種稱為渲染的過程中通過對三維圖像數據進行處理而創建。
已知系統中,三維空間中的物體由該物體表面上所選擇的點的坐標位置表示。
然而,渲染包括將圖片元素值分配至圖像的二維區域。所以,通過有效地用直線連接,這些坐標點被轉換進想象的區域中,以便提供由若干頂點定義的平面三維網和二維三角形。本發明將通過使用三角形進行說明,但是本領域的讀者應該理解所述的技術也可用于其它的平面多邊形。
圖片元素值在三角形連著三角形(triangle-by-triangle)的基礎上生成,直到整個物體都已經被分成格狀,也就是被分割成三角形。這樣生成的頂點數據以原有的順序存儲在目標文件中。
三角形以定義標識三角形前面(立體物體總是具有一個前面和一個后面,后者永遠不能被看到)的法向向量的方式保存。“前”面由與三角形表面正交的向量定義,該向量的方向(也就是前面的方向)由通過三角形三個頂點的右手規則(或者,可選地,左手規則)確定,通過三個頂點的順序由它們存儲入三角形數據結構中的順序確定。例如,在圖1中,三個點22,23和24確定法向向量25的方向,因此,三角形21的側被定義為前面26。法向向量25,例如,被沿三角形邊緣的兩個向量的向量積所確定。上述步驟均在工作站、PC機或類似的高性能計算機上執行。
由渲染過程生成的圖片元素值保存在工作站上。為了在顯示器上顯示三角形時維持立體三維物體的幻覺,重要的是以一種確保遮擋它們的三角形之前先渲染被遮擋的三角形的方式對三角形進行排序。三角形的實時排序在具有相對低性能的硬件用于處理數據如移動電話上并不可行。在現有技術中,這個問題部分地通過準備預定的渲染順序得以解決,然而,該渲染順序會隨著觀察方向或視點位置的改變而改變。正如這里將要說明的,根據本發明的技術克服了這個問題。
這里使用的術語“物體”包括單個物體,也包括多個單個物體的集合,只要該集合中的物體在動畫的過程中互相之間不發生移動,例如,桌子和旁邊的花盤和椅子如果它們之間不相互移動就可看作為一個物體。如果在動畫的過程中,椅子移動了,它就不能和桌子作為同一個物體。
圖2表示在工作站或其它具有很強計算能力的計算機(圖中未標出)上提供三維圖形環境的步驟。首先,準備定義物體的數據。這樣,在步驟35,建模第一個物體。類似地,在步驟40,建模第二個物體,這樣一直到步驟45,建模第N個物體。參考其自已的坐標集建模每個物體,該坐標集經常被作為其自已的建模空間。這樣,每個物體數據集定義了一個形狀,在圖形環境中渲染所述形狀所需要數據以頂點數據的形式存入目標文件中。
下個階段包括步驟50、52、55和60,這組成了預處理階段部分。在步驟50,讀取目標文件,該目標文件以三角形頂點的形式定義了物體的形狀和三角形表面特征。
在步驟52,通過處理由目標文件定義的數據創建三角形條帶。三角形條帶通過這樣的方式創建,以便在所有可能的觀察方向上解決隱藏表面問題,也就是說,使得目標文件具有隱藏表面去除容忍性(HSR容忍性),從而當創建三角形條帶時,不需要去在意解決隱藏面問題,不管怎樣的觀察方向和像機位置。通常當滿足上述標準時以這種方式處理整個目標文件是可能的,然而,有時不可能以這種方式為整個物體創建三角形條帶,因為在物體的三角形之間的所需的渲染順序中存在沖突。在這種情況下,將物體分割為兩個新的物體,像其它物體一樣單獨地處理這些新的物體。
在下一個步驟即步驟55中,判斷物體是否具有對稱平面(該信息通常在建模過程之后可以從目標文件中得到)。去除位于對稱平面的一側的所有三角形,以及,如果已經沒有了,就將對稱平面存到目標文件中。
可能許多物體需要進行上述步驟,因此在步驟60就提問是否還需要處理另一個物體。當回答是肯定的,重復步驟50、52和55,直到處理完所有的物體。所有的步驟35至60在第一設備上完成,典型的該第一設備為具有強大圖形處理能力的裝置的工作站,一旦完成了對所有目標文件的處理,將它們傳送到第二設備上以便顯示,該第二設備具有稍低的圖形處理能力,其典型地為移動終端,在本實施方式中為移動電話1。
圖4為更詳細地對圖2中的步驟52進行說明的流程圖。在步驟76中,讀取物體的所有三角形1-n的頂點數據,從頂點的數量、三角形的數量、頂點數據和三角形數據開始。在步驟77中,基于頂點數據,一個接一個地計算每個三角形1-n的三角形平面。
在步驟78中,通過選擇不遮擋任何未經處理的三角形開始新的三角形條帶。第一個三角形的選擇可以以一種貪婪的方式(greedystyle)進行,即簡單地在未經處理的三角形集中選擇第一個三角形。
根據本發明的可選實施方式,可以使用啟發式搜索技術來識別那些潛在地遮擋最小數量的保留的未經處理的三角形的三角形,例如,通過選擇不具有許多未經處理的鄰居的三角形。以這樣識別出的三角形開始一個新的三角形條帶將導致每個物體的更少和更長的三角形條帶。
有多個已知技術可以執行這樣的啟發式搜索,所以在這里就不對它們進行詳細描述了。
將已經選擇出來以開始三角形條帶的三角形與未經處理的三角形集中的三角形進行比較以便判斷所選出的三角形是否會潛在地遮擋任何未經處理的三角形。下面有參照圖5對執行這一判斷的過程進行的描述。
在步驟80中,選擇出一個將被加入到三角形條帶中的鄰近的三角形。然后在步驟81中將該選出的三角形與未經處理的三角形集中的三角形進行比較以便判斷所選出的三角形是否會潛在地遮擋任何未經處理的三角形。下面有參照圖5對這一判斷過程進行的進一步描述。如果步驟81中的判斷結果為否,則在步驟85中將所選出的三角形加入到條帶中。然后在步驟86中從未經處理的三角形集中去除所選出的三角形。在步驟87中,詢問未經處理的三角形集是否為空。如果在步驟87中提出的問題的回答為是,那么目標文件中的所有三角形已經被處理了,并且向步驟60給出控制(圖2)。如果在步驟87中提出的問題的回答為否,那么向步驟80給出控制,選擇一個新的鄰居三角形加入到三角形條帶中。
如果步驟81中提出的問題的回答為是,在步驟83中檢測沖突,也就是說,檢測是否存在遮擋循環,即當第一個三角形會潛在地遮擋第二個三角形,第二個三角形會潛在地遮擋第三個三角形,第三個三角形會潛在地遮擋第一個三角形。這樣就不可能創建一個目標文件使得其中的渲染順序對于所有可能的觀察方向都是正確的。如果沖突檢測為否,在步驟78中開始一個新的三角形條帶。如果沖突檢測為是,就用二叉空間剖分技術對物體進行分割,例如,在最近選出的三角形的表面上將物體分割為二部分。然后向步驟52給出控制(圖2),并且同任何其它的物體的一樣對該兩個“新”物體進行處理。通過判斷是否可以選出不潛在地覆蓋任何其它未經處理的三角形的三角形進行沖突檢測。如果這一判斷為否,就需要對物體進行分割。
正如圖5中的流程圖所示的,以步驟91開始,可以將選出的三角形與未經處理的三角形進行比較,在步驟91中,參數X的值設置為1,參數Y的值設置為等于未經處理的三角形集中三角形的數量。
在步驟92中,詢問在未經處理的三角形集中的三角形X的平面的前面,選擇的三角形是否具有一個或更多的頂點。如果步驟92中的回答為是,在步驟93中詢問在所選擇的三角形的平面的后面,三角形X是否具有一個或更多個頂點。如果步驟93中的回答也為是,就向步驟83給出控制(圖4)。
如果在步驟92或93中的回答為否,在步驟94中將參數X的值加1,并且在步驟95中詢問參數X的值是否等于參數Y的值。當步驟95中提出的問題的回答為否時,重復步驟92、93、94和95直到步驟95中提出的問題的回答為是。然后向步驟85給出控制以將所選出的三角形加至三角形條帶。
重復上述過程直到未經處理的三角形集為空,并且目標文件的格式滿足其中三角形的排序是這樣的,即不需要解決隱藏表面問題而將其顯示。另外,三角形被安排在三角形條帶中,所以顯示物體的計算量進一步得以降低。
下一個步驟即步驟55,對本實施方式來說并不是必須的,在圖3中的流程圖中對其進行了詳細的描述。在步驟64中,對物體是否關于XY平面對稱進行判斷。這個數據通常可從目標文件中得到,特別當使用圖形程序等創建目標文件時。在目標文件不包括這樣的數據的特殊情況下,例如,因為目標文件反映一個掃描物體,就有可能通過假定一個Z=0的對稱平面識別對稱平面,并且用一個正的Z值為每個頂點檢測是否存在具有與Z值相同但為負的相同的頂點,重復對Y=0和X=0的對稱平面進行同樣的操作。雖然沒有顯示,也可能包括旋轉和變換物體的步驟,從而任何對稱軸與X=0、Y=0或Z=0平面的一個或多個排列成行。
當存在關于XY平面的對稱時,在步驟65中將對稱平面存儲到目標文件中,在步驟66中將具有負Z軸的值的所有頂點從目標文件中挑選出來。這里,重新排序頂點索引以便對稱平面下的每個映射頂點跟在在對稱平面以上的其對端的后面,然后,將對稱平面以上的頂點作上標記從而使它們具有映射的副本。
步驟65之后,或者當在XY平面中沒有檢測到對稱時,在步驟67中判斷物體是否在XZ平面上對稱。
當在XZ平面中存在對稱時,在步驟68中將對稱平面存到目標文件中,在步驟69中將具有負Y軸的值的所有頂點從目標文件中挑選出來。
步驟69之后,或者當在XZ平面中沒有檢測到對稱時,在步驟70中判斷物體在YZ平面中是否對稱。
當在YZ平面中存在對稱時,在步驟71中將對稱平面存到目標文件中,在步驟72中將具有負X軸的值的所有頂點從目標文件中挑選出來。
步驟72之后,或者當在YZ平面中沒有檢測到對稱時,將控制轉移到圖2中的步驟55。根據物體的對稱平面的數量,這樣,在目標文件中頂點數據的數量可以減少接近8倍。在實踐中,幾乎所有用在計算機圖形中的物體具有至少一個、經常為二個對稱平面,這樣可以使頂點數據的數量減少2倍到4倍。將動畫3-D圖形存儲到例如圖8中所示的移動電話1中時這尤為重要,因為該移動電話1的存儲容量相對有限。
當在步驟60中作出所有的物體1-N已經這樣被處理過的結論時,就可以將目標文件從工作站傳送到移動電話1以便顯示。
從工作站到移動電話的數據傳送可以通過IR信號(IrDA)或RF信號,(藍牙)通過空中作為消息(SMS或MMS)、電纜、本地(在生成處)或者任何其它適合的媒介。
正如圖6中所示的,在步驟100中將目標文件1-N裝載到移動電話上并存儲在移動電話1的隨機存取存儲器(RAM)17上(參考圖8)。移動電話配備有處理器(CPU)10,其能夠將數據寫入RAM17及從RAM17讀出數據。CPU10控制與麥克風14和揚聲器15相連的數字信號處理器12。移動電話1還配備有用戶識別模塊(SIM卡)16。RF收發電路18也與CPU10相連接。內含軟件的3-D引擎20驅動LCD或等離子顯示屏30。
由于在步驟52中已經減少了工作站上目標文件1-N中的三角形的數量,數據量已經足夠小,從而可以存在移動電話1的相對有限容量的RAM17中。目標文件是以適當的渲染順序(HSR容忍性)準備的,這樣就可能在確定物體順序之后立即進入渲染階段。在步驟101(圖6)中接收主要定義光線和視覺參數的輸入指令。隨即,在步驟102中確定物體的渲染順序,優選地,通過使用二叉空間剖分技術。在步驟103中讀取要渲染的第一物體(大部分被遮擋)的數據。在步驟104中,存儲從對稱表面的一側所去除的三角形。該過程在圖7所示的流程圖中有詳細描述。
在步驟120中,詢問在目標文件中是否存儲有XY表面中的對稱平面。如果步驟120中所提問題的回答為肯定,然后在步驟122中通過復制存在于目標文件中的所有頂點數據并對新創建的頂點改變Z軸值的符號創建新的頂點集,從而恢復先前被去除的頂點,同時控制轉移到步驟124。如果步驟120中的回答為否,控制直接轉移到步驟124。
在步驟124中,詢問在目標文件中是否存儲有XZ表面中的對稱平面。如果步驟124中的回答為肯定,在步驟126中通過復制存在于目標文件中的所有頂點數據并在新創建的頂點上改變Y軸值的符號創建新的頂點集,從而恢復先前被去除的頂點,同時控制轉移到步驟128中。如果步驟124中的回答為否,控制就直接轉移到步驟128中。
在步驟128中,詢問在目標文件中是否存儲有YZ表面中的對稱平面。如果步驟128中的回答為肯定,在步驟130中通過復制存在于目標文件中的所有頂點數據并在新創建的頂點上改變X軸值的符號創建新的頂點集,從而恢復先前被去除的頂點,同時控制轉移到步驟105中(圖6)。如果步驟128中的回答為否,控制就直接轉移到步驟105中(圖6)。這樣,在步驟52中在工作站上的目標文件中去除的所有頂點得以重新恢復。
在步驟105中,確定給定三角形的預定義的前面是否在當前觀察方向上是可見的。這里,通過計算觀察方向向量和各個三角形的法向向量的點積,比較目標文件中三角形1-n的前面的方向與觀察方向。當該點積為負數時將所述三角形挑選出來,因為其前面在當前觀察方向上不可見。這樣,統計上,三角形的數量減少了50%。
作為選擇,一種通常更加準確,經常甚至更快(因為不需要計算法線,并且朝向像機方向因每個三角形而變化)的檢測后面三角形的方法是投影后計算其在屏幕上的面積。如果屏幕面積為負值,則該三角形為后面的。
在步驟106中,使用矩陣向量相乘將三角形頂點從建模空間(也就是目標文件的參照坐標系統)轉換到設備空間(也就是顯示器或屏幕坐標系統)。頂點轉換的方法和算法在本領域中是公知的,所以這里就不詳細進行描述了。
當在步驟106中頂點已經被轉換時,在步驟107中將頂點數據發送至顯示器以便觀看。在步驟107中,以其被創建的順序渲染三角形條帶,在本實施方式中其對應于它們在目標文件中存儲的順序。三角形以其加至各自的三角形條帶的順序顯示,在本實施方式中其對應于其在目標文件中存儲的順序。因此,可以以其存儲在目標文件中的順序顯示三角形,而不需要在顯示三角形時解決隱藏面問題。
在步驟108中,詢問是否另一個物體要顯示。如果步驟108中的回答為肯定,控制轉移至步驟103,在步驟103中讀取下一個目標文件的數據。這樣,重復步驟103至107直至所有的物體已經顯示。當所有的物體已經顯示時,顯示下一幀并且控制給出至步驟101以便接收下一幀的輸入指令。
根據本發明的另一個實施方式,如圖3的流程圖中所示,將映射的頂點去除,但是沒有分解多邊形,也就是說,省略了圖2中的步驟55。這樣,獲得了減小了大小的目標文件,其可能可以很容易地存儲在移動電話中,但是當顯示三角形時需要解決隱藏面問題。這里,可以在移動電話1上使用畫家算法或Z緩沖技術,盡管移動電話處理能力的限制將會相對快地達到。
本發明的有效率的技術允許在具有相對有限的圖像處理硬件的設備上的實時動畫3-D圖形,該設備如移動電話、PDA和手持視頻游戲機。所以本發明不限于在優選實施方式中描述的設備(帶有SIM卡的移動電話),本發明可以應用于任何其它類型的移動電話或上述設備。
雖然為了說明的目的已經對本發明進行了詳細的描述,但是應當理解這樣的描述僅為該目的,在不偏離本發明的范圍的情況下,本領域的技術人員可以進行各種變形。
權利要求
1.一種在第一設備上準備目標文件的方法,通過處理包括定義表示至少一個三維物體的三角形基元的數據的目標文件,以確定渲染順序,所述目標文件用于在第二設備上渲染三維物體的二維圖像,所述三角形基元以該渲染順序被渲染,以生成二維圖像,其中隱藏面被去除,該方法包括以下步驟a)存儲對應于目標文件中所述至少一個物體的多個表面部分的多個平面三角形基元,其中所述多個三角形基元由以根據原始順序排列的頂點數據表示,b)選擇不會潛在地遮擋任何未經處理的三角形的三角形以便開始三角形條帶,c)選擇鄰居三角形,以加入到所述三角形條帶的最后三角形中,d)確定所選擇的三角形是否可以潛在地遮擋任何未經處理的三角形,e)如果所選擇的三角形不可能潛在地遮擋任何未經處理的三角形,將所選擇的三角形加入到條帶中,并返回步驟c),f)如果所選擇的三角形可以潛在地遮擋任何未經處理的三角形,返回步驟b),以開始新的三角形條帶,以及g)重復步驟b)至f),直到目標文件中所有三角形均被處理。
2.根據權利要求1的方法,其中步驟b)包括啟發式搜索以便優選地通過選擇出不具有許多未經處理的鄰居的三角形識別出那些用于開始潛在地允許形成長條帶的條帶的三角形。
3.根據權利要求1或2的方法,如果在步驟b)不可能找到不遮擋其它仍然未經處理的三角形的三角形,還包括將目標文件分割為兩個的步驟。
4.根據權利要求3的方法,其中物體通過使用二叉空間剖分技術,優選地使用任何剖分平面分割,從而使得至少一個未經處理的三角形保留在它可能潛在地遮擋的未經處理的三角形不同的一側,其中優選地使用一個任意的未經處理的三角形的平面并且該三角形在分割平面的外側被關聯,這樣將它可能遮擋的所有三角形保留在另一側。
5.根據權利要求1-4中任一項的方法,還包括確定在目標文件中三角形的三角形平面和前側的步驟,其中對所選擇的三角形是否遮擋任何未經處理的三角形的確定包括以下確定步驟g)確定所選擇的三角形在任何未經處理的三角形的平面的前側是否具有一個或多個頂點,以及h)確定在步驟g)中識別為肯定的任何未經處理的三角形在所選擇的三角形的平面的后面是否具有一個或多個頂點。
6.根據權利要求1-5中任一項的方法,在步驟b)之前還包括下列步驟i)確定物體是否在物體空間的XY平面內具有對稱性,j)將確定的對稱平面存到目標文件中,k)在目標文件中去除確定的對稱平面的一側的所有頂點,以及對物體空間的XZ平面和YZ平面重復步驟i)到k)。
7.根據權利要求1-6中任一項的方法,還包括步驟l)在步驟f)或k)之后將所述目標文件從所述第一設備轉移到第二設備,以及將該目標文件存儲在所述第二設備上。
8.根據權利要求1-7中任一項的方法,其中所述第一設備包括例如用在PC機或工作站中的高性能圖像處理裝置,所述第二設備包括例如用在移動通信終端或PDA中的低性能處理裝置。
9.一種在所述第二設備上顯示通過權利要求1-8中任一項的方法得到的目標文件的方法,包括步驟m)確定觀察方向,n)確定物體順序,優選地使用畫家算法,以及將所述物體顯示在所述第二設備上。
10.根據權利要求9的方法,還包括步驟o)挑出所有相對于所述觀察方向面向后面的三角形。
11.根據權利要求9或10的方法,還包括步驟p)重新找出存儲在目標文件中的對稱平面,q)創建目標文件中的頂點數據的副本,所述頂點數據的副本具有與原來的頂點數據相同的順序并且存儲在目標文件中,在原來的頂點數據之后,以及改變與各個重新找到的所復制的頂點的對稱平面相垂直的軸上的頂點的值的符號。
12.根據權利要求9-11中任一項的方法,還包括步驟r)按照其創建時的順序顯示三角形條帶,s)按照其加入條帶時的順序顯示三角形條帶中的三角形。
13.根據權利要求9-12中任一項的方法,其中所述第二設備包括例如使用在移動通信終端或PDA中的低性能處理裝置。
14.根據權利要求9-12中任一項的方法,其中所述第二設備為移動電話。
15.根據權利要求13或14的方法,其中所述圖像渲染過程由所述設備的主CPU實施,以及所有另外的圖像渲染裝置內含軟件。
16.一種移動通信終端,包括用于存儲包含三角形條帶的目標文件的裝置,和用于以其創建時的順序顯示所述三角形條帶的裝置,該順序優選地對應于三角形條帶存儲進目標文件的順序。
17.根據權利要求1的移動通信終端,其中三角形條帶中的三角形以與其加入三角形條帶的順序相同的順序顯示,該順序優選地對應于它們存儲進三角形條帶的順序。
18.根據權利要求1或2的移動通信終端,其中所述物體的渲染順序采用二叉空間剖分方法確定。
19.根據權利要求16-18中任一項的移動通信終端,包括用于將所有相對于觀察方向面向后面的三角形挑選出來的裝置。
20.根據權利要求16-19中任一項的移動通信終端,還包括用于重新找出存儲在目標文件中的對稱平面的裝置,以及用于復制存在于目標文件中的所有頂點數據并改變在與用于新創建的三角形的各個對稱平面垂直的軸上的頂點的值的符號的裝置。
21.根據權利要求16-21中任一項的移動通信終端,其中由所述裝置的主CPU實施圖像渲染過程,以及所有另外的圖像渲染裝置都內含軟件。
22.一種在第一設備上準備目標文件的方法,通過處理定義表示至少一個三維物體的三角形基元的數據,所述目標文件用于在第二設備上渲染三維物體的二維圖像,在所述第一設備上包括步驟a)存儲對應于所述至少一個物體的多個表面部分的多個平面三角形基元,其中所述多個三角形基元由頂點數據表示,b)確定所述三維物體的對稱平面,c)將對稱平面數據存儲到目標文件中,d)從每個所述對稱平面的一側中挑選出所有的頂點數據,e)將所述目標文件從所述第一設備轉移到所述第二設備,f)通過在所述對稱平面中映射所述頂點數據在所述第二設備上顯示所述圖像,并且渲染所述圖像。
23.根據權利要求22的方法,其中忽略與物體坐標系統的X、Y或Z軸之一不平行的對稱平面。
24.根據權利要求22或23的方法,其中所述第一設備包括例如用在PC機或工作站中的高性能圖像處理裝置,所述第二設備包括例如用在移動通信終端、PDA或手持視頻游戲機中的稍低性能的處理裝置。
25.根據權利要求24的方法,其中所述第二設備為移動電話。
26.一種移動通信終端,包括用于在顯示器上渲染三維物體圖像的圖像處理裝置,用于存儲頂點數據的裝置,用于存儲對稱平面數據的裝置以及用于在對稱平面中映射頂點數據的裝置。
全文摘要
一種在第一設備上準備目標文件的方法,通過處理包括定義表示至少一個三維物體的三角形基元數據的目標文件,以確定渲染順序,所述目標文件用于在第二設備上渲染三維物體的二維圖像,所述三角形基元可能以上述渲染順序渲染,以生成二維圖像,其中隱藏面被去除。對應于所述至少一個物體的多個表面部分的多個平面三角形基元以頂點數據存儲在所述第一設備上。本方法可以用于移動電話。
文檔編號G06T15/40GK1685370SQ02829756
公開日2005年10月19日 申請日期2002年10月15日 優先權日2002年10月15日
發明者卡里·皮利, 阿斯熱爾·斯特朗德托夫特 申請人:諾基亞公司