混合隱藏線處理器和方法
【專利摘要】一種用于提供針對多個多邊形的混合隱藏線處理的方法,所述多邊形表示曲面細分的圖像數據,其中每個多邊形包括多條邊。該方法包括:生成(506)背面板和正面板,其中,背面板包括位于曲面細分的圖像數據的輪廓的背面側上的多邊形,正面板包括位于曲面細分的圖像數據的輪廓的正面側上的多邊形;追蹤(514)邊并且識別被追蹤的邊的子集中的每條被追蹤的邊的至少一個可見性改變像素;針對每個可見性改變像素,確定(522)被追蹤的邊是否來自與對應于可見性改變像素的多邊形相同的板;針對被確定為來自與對應于可見性改變像素的多邊形相同的板的每個被追蹤的邊,顯示(532)被追蹤的邊。
【專利說明】混合隱藏線處理器和方法
[0001]本發明涉及根據獨立權利要求的、用于提供針對多個多邊形的混合隱藏線處理(hybrid hidden-line processing)的方法、產品數據管理數據處理系統以及計算機可讀介質。
【背景技術】
[0002]本公開內容總體上涉及用于管理產品和其它物品的數據的計算機輔助設計、可視化及制造系統、產品生命周期管理(“PLM”)系統以及類似系統(統稱為“產品數據管理”系統或者PDM系統)。傳統的計算機圖形顯示系統使用各種類型的處理來生成三維物體的二維圖像。
【發明內容】
[0003]各種公開的實施方式包括系統、方法以及計算機可讀介質。公開了一種用于提供針對表示曲面細分的圖像數據(tessellated image data)的多個多邊形的混合隱藏線處理的方法,其中每個多邊形包括多條邊。該方法包括生成背面板和正面板,其中,背面板包括位于曲面細分的圖像數據的輪廓的背面側上的多邊形,正面板包括位于曲面細分的圖像數據的輪廓的正面側上的多邊形。該方法包括追蹤邊并且識別被追蹤的邊的子集中的每條被追蹤的邊的至少一個可見性改變像素。該方法包括:針對每個可見性改變像素,確定被追蹤的邊是否來自與對應于可見性改變像素的多邊形相同的板。該方法包括:針對被確定為來自對應于可見性改變像素的多邊形相同的板的每個被追蹤的邊,顯示該被追蹤的邊。
[0004]以上非常寬泛地概述了本公開內容的特征和技術優點,以使得本領域的普通技術人員能夠較好地理解下述【具體實施方式】。在下文中,將描述構成權利要求的主題的本公開內容的其它特征及優點。本領域的普通技術人員將會理解:他們可以容易地以所公開的構思和【具體實施方式】為基礎來修改或設計用于實現與本公開內容相同目的的其它系統。本領域的普通技術人員還將會認識到:這樣的等同結構不會脫離本公開內容的最寬泛形式的精神和范圍。
[0005]在描述下面的“【具體實施方式】”之前,對本專利文獻全文中使用的某些詞或短語的定義進行說明將是有利的:術語“包括”和“包含”及其派生詞表示包括但不限于此;術語“或”是包括性的,表示“和/或”;短語“與…相關聯”和“與其相關聯”及其派生詞可以表示包括、被包括在…內、與…互連、包含、包含在…內、連接到或與…連接、耦接到或與…耦接、可與…通信、與…配合、交錯、并置、接近、縛接到或與…縛接、具有、具有…的性能等;術語“控制器”表示用于控制至少一個操作的任何裝置、系統或其部件,而不管該裝置是以硬件、固件、軟件還是以它們中的至少兩個的組合實施的。應當注意,與任何特定的控制器相關聯的功能無論是本地的還是遠程的,均可以是集中式的或分布式的。在本專利文獻全文中,提供了對某些詞和短語的定義,但本【技術領域】的普通技術人員將會理解:在許多(即便不是大部分)情況下,這樣的定義應用在這樣定義的詞和短語的當前以及將來的使用中。盡管一些術語可以包括各種各樣的實施方式,但是所附權利要求可以將這些術語特別地限制于【具體實施方式】。
【專利附圖】
【附圖說明】
[0006]為了更透徹地理解本公開內容及其優點,現在參照結合附圖的以下描述,在附圖中,相同的附圖標記表示相同的物體,并且在附圖中:
[0007]圖1示出了根據本公開內容的、可以實現混合隱藏線處理器的數據處理系統的框圖;
[0008]圖2A至圖2G示出了可以由根據本公開內容的圖1的數據處理系統處理的各種圖像的示例;
[0009]圖3示出了根據本公開內容的圖1的數據處理系統的一部分;
[0010]圖4示出了根據本公開內容的圖3的混合隱藏線處理器和存儲器的細節;以及
[0011]圖5是示出了根據本公開內容的用于提供混合隱藏線處理的方法的流程圖。
【具體實施方式】
[0012]在本專利文獻中,下述圖1?圖5及用于描述本公開內容的原理的各種實施方式僅是為了說明,而不應當被認為以任何方式來限制本公開內容的范圍。本領域的普通技術人員將會理解,本公開內容的原理可以以任何合適設置的設備來實施。將參照示例性的非限制性實施方式來描述本申請的各種創新性教示。
[0013]生成三維物體的二維圖像時常見的問題涉及識別并且消除隱藏線(即用戶可能不想顯示的線,這是因為這些線由于視角原因和/或由于被場景中的其它物體所遮擋而將呈現為隱藏的)。通常,用于識別隱藏線的方法是圖像空間算法或者物體空間算法。然而,這些技術中的每一個都存在缺點。
[0014]圖像空間處理包括使用深度緩沖器或者Z緩沖器,其將屏幕劃分成像素并基于像素執行可見性處理。如果在像素位置處存在不止一個物體,則在生成顯示時,將會使用與最接近觀看者的物體的部分相關的數據,從而隱藏圖像在該像素處遠離觀看者的任何部分。使用圖像空間處理導致相對快速的圖像生成。然而,與該處理相關聯的精度低于很多應用所期望的精度。
[0015]與圖像空間處理相比,諸如使用小平面(facetted)或圖像數據的精確數學表示的物體空間處理提供更高的精度。然而,對于創建相對大的組件(例如整個汽車、輪船等)的繪圖的用戶而言,物體空間技術可能需要太多的時間來顯示圖像以及太大的存儲占用量。通常,特定技術提供的精度越高,則圖像生成越慢,并且與該技術相關聯的存儲占用量越大。
[0016]因此,例如,Z緩沖器可以在視圖上限定固定的分辨率(例如X方向上1000個像素并且I方向上1000個像素)。可以對待顯示圖像進行曲面細分,即通過生成表示物體的多邊形的連接網或小平面來提供物體的任何曲面的平面近似。將多邊形和邊掃描到Z緩沖器中。掃描后的像素中的每個像素的“獲勝者(winner)”對應于隱藏線圖像。隨著模型的尺寸增加,Z緩沖器算法具有線性特性(S卩,它是η階系統)。Z緩沖器由于其階數而總的來說為最快類型的隱藏線處理器。另外,隨著多邊形的數目增加,多邊形的存儲需求是固定的,并且隨著邊的數目增加,邊的存儲需求是線性的。
[0017]然而,Z緩沖器技術的精度受限于視圖上設置的像素的數目(例如,在較大的組件上,1000個像素相對較小)。這表現為在生成圖像上的過沖(overshoots)和下沖(undershoots)?此外,所有的坐標都被四舍五入為整數以映射到Z緩沖器像素。該四舍五入可能導致Z緩沖器坐標的退化以及相關聯的可見性缺陷。另外,難以從Z緩沖器提取邊,并且需要折線或曲線輸出來繪制作品(creat1n)和注釋。
[0018]使用物體空間技術的小平面隱藏線處理器(facetted hidden-line processor)通常需要將所有的小平面的邊線段與模型中所有的其它小平面的邊線段相交。這會產生一系列的邊碎片(edge pieces),每個邊碎片具有一個可見性。然后,通過拓撲學、光線投射或者其它幾何測試來確定每個邊碎片的可見性。物體空間算法嘗試將相交候選和ray fire候選的數目限制到盡可能小的數目。
[0019]物體空間、小平面隱藏線處理器相對于精確隱藏線處理器的優點包括只需要進行小平面的邊線段之間的相交而不需要進行精確曲線之間的相交。線段是兩條線,因而其相交相對較快。此外,可見性改變點的精度受限于曲面細分公差(例如,1.0e-03或者1.0e-04個模型單位),這與從Z緩沖器獲得相比,導致更準確的圖像。最后,邊易于放置在繪圖中(即,邊是隱藏線處理器直接輸出的)。
[0020]然而,任何物體空間算法的階數為η2。因而,盡管能夠相對容易地獲得小平面算法的每次相交,但是該算法的階數最終會占主導,使得該技術遠慢于Z緩沖器算法。另外,雖然所有技術都嘗試對相交候選的數目η進行限制,但是技術的階數保持為η2。此外,當邊被放置在繪圖中時這些邊呈現小平面。同樣,當小平面的數目增加時,小平面的存儲需求是線性的,并且當邊的數目增加時,邊的存儲需求是線性的。
[0021]也使用物體空間技術的精確隱藏線處理器通常需要將所有的精確邊與模型中的所有其它精確邊相交。這會產生一系列的邊碎片,每個邊碎片具有一個可見性。然后,通過拓撲學、光線投射或者其它幾何測試來確定每個邊碎片的可見性。精確物體空間算法嘗試將相交候選和ray fire候選的數目限制到盡可能小的數目。
[0022]精確物體空間隱藏線處理器的優點包括提供針對可見性改變點的精度,該精度受限于建模公差(例如,1.0e-05或者1.0e-06個模型單位),與從Z緩沖器或者與物體空間小平面技術獲得的精度相比,這導致更準確的圖像。另外,邊和其精確曲線易于放置在繪圖中(即,它們是隱藏線處理器直接輸出的)。最后,由于使用精確曲線來生成繪圖,因此與實際生活類似地,邊呈現為光滑的且精確的。
[0023]然而,兩條精確邊之間的相交是兩條一般曲線之間的相交,所以較之兩條直線之間的相交相對較慢。另外,精確物體空間算法的階數為η2。結果,由于每個相交都相當耗時,以及由于最終會占主導的算法的階數為η2,因此精確算法比Z緩沖器算法或小平面算法要慢得多。另外,雖然所有的技術都嘗試對相交候選的數目η進行限制,但是技術的階數仍然為η2。此外,表面的存儲需求相對于表面的數目是線性的,但是在需要的存儲量中,每個表面可能相對昂貴。最后,當邊的數目增加時,邊的存儲需求是線性的。
[0024]為了克服傳統的隱藏線處理算法的限制,近來開發了一種隱藏線處理器,該隱藏線處理器以小平面算法的方式使線段邊相交,但是與使所有的邊相交不同,只使得特定的邊相交。通過使用Z緩沖器來識別待相交的邊。因此,提供了接近小平面算法級別的精度,同時提供了接近Z緩沖器算法級別的速度。這項被稱為快速隱藏線處理器的技術基于小平面模型。然而,使用軟件Z緩沖器來存儲多邊形。該技術提供線性性能(即階數η)。
[0025]對于快速隱藏線處理,多邊形掃描轉換包括:在多邊形的邊是外部邊的一部分的情況下,對像素加注釋。獲勝的邊和多邊形信息被存儲在Z緩沖器中。通過軟件Z緩沖器對邊的可見性進行追蹤。該處理具有線性性能(即階數n)。Z緩沖器追蹤通過查看當前邊變成消隱的位置處的像素,來對可能會隱藏被追蹤的邊的任何外部邊進行識別。這使得快速隱藏線處理器能夠以線性性能識別所有的邊相交,而不是如同由傳統的物體空間小平面隱藏線處理器所需求的那樣以η2性能識別。在確定像素的可見性之后,使用在像素處的獲勝的邊來進一步將可見性改變點細化成曲面細分的精度(例如,邊線段、邊線段相交)。
[0026]快速隱藏線處理器的優點包括在線性時間內識別待相交的邊(S卩,基于邊的數目,時間是恒定的)。這與需要η2性能來識別所有相交(S卩,每條邊與其它的每條邊的相交)的大多數物體空間隱藏線處理器不同。另外,由于該技術的級數以及使用軟件Z緩沖器作為其核心處理器的事實,該技術是相對快速執行的技術。當多邊形的數目增加時,多邊形的存儲需求是恒定的,并且進行的相交是在小平面的邊線段之間,即兩條線之間的相交。此外,通過Z緩沖器檢測可見性改變點的位置,并且只進行可見性改變處的相交。最后,可見性改變點的精度受限于曲面細分公差(例如,1.0e-03或1.0e-04個模型單位),這與從Z緩沖器得到的結果相比更加精確,并且邊易于放置在繪圖上(即,它們是隱藏線處理器直接輸出的)。
[0027]然而,利用快速隱藏線處理器進行的相交清理具有與邊和輪廓相關的限制。由于不準確的Z深度多邊形掃描轉換以及勝過多邊形的外部邊的多邊形的內部,邊經常不能贏得它們應該贏得的像素。此外,由于這種技術根據標準小平面處理技術追隨多邊形的邊界,因此利用這種技術生成的輪廓通常不準確。
[0028]圖1示出了根據本公開內容的、可以實現混合隱藏線處理器的數據處理系統100的框圖。對于一些實施方式,數據處理系統100可以被實現為具體由軟件配置的PDM系統,或者可以被實現為進行如本文中所描述的處理。對于具體的實施方式,數據處理系統100可以實現為如本文中所描述的多個互連的并且通信的系統中的每個系統。圖1中示出的數據處理系統100包括耦接至兩級高速緩存/橋104的處理器102,該兩級高速緩存/橋104耦接至本地系統總線106。本地系統總線106可以是例如外圍部件互連(PCI)體系結構總線。在描繪的示例中,主存儲器108和圖形適配器110也耦接至本地系統總線。圖形適配器110可以耦接至顯示器111。
[0029]其它外圍設備(例如局域網(LAN) /廣域網(WAN) /無線(例如W1-Fi)適配器112)也可以耦接至本地系統總線106。擴展總線接口 114可以將本地系統總線106耦接至輸入/輸出(I/O)總線116。I/O總線116可以耦接至鍵盤/鼠標適配器118、盤控制器120以及I/O適配器122。盤控制器120可以耦接至存儲裝置126,存儲裝置126可以是任何適合的機器可用的或機器可讀的存儲介質,該存儲介質包括但不限于(i )非易失性硬編碼型的介質,例如只讀存儲器(ROM)或者電可擦除可編程只讀存儲器(EEPROM); (ii)磁帶存儲設備;(iii)用戶可記錄型介質,例如軟盤、硬盤驅動器、只讀光盤存儲器(⑶-ROM)或數字多功能盤(DVD)以及(iv)其它已知光的、電的或磁的存儲設備。
[0030]在示出的示例中,I/O總線116還可以耦接至音頻適配器124,音頻適配器124可以耦接至揚聲器(圖1中未示出)以播放聲音。鍵盤/鼠標適配器118可以耦接至指示設備(圖1中未示出),例如鼠標、軌跡球、追蹤指示器等。
[0031]本領域的普通技術人員將會理解,圖1中描繪的硬件可以根據具體實現而改變。例如,也可以附加地或者代替所描繪的硬件而使用其它外圍設備,如光盤驅動器等。僅出于說明的目的而提供所描繪的示例,而并非對本公開內容的體系結構的限制。
[0032]數據處理系統100包括采用圖形用戶界面的操作系統。該操作系統允許在圖形用戶界面中同時呈現多個顯不窗口,每個顯不窗口為不同的應用提供界面,或者為同一應用的不同實例提供界面。用戶可以經由指示設備來操縱圖形用戶界面中的光標。
[0033]如果經過適當的修改,可以采用各種商業操作系統之一,例如位于美國華盛頓州的雷德蒙德市的微軟公司(Microsoft Corporat1n)的產品,S卩微軟Windows (注冊商標)版本。可以根據所描述的本公開內容來修改或者創建該操作系統。
[0034]LAN/WAN/無線適配器112可以耦接至網絡130 (其不是數據處理系統100的一部分),網絡130可以是任何公用或私用的數據處理系統網絡或者網絡的組合(包括因特網)。數據處理系統100可以通過網絡130與服務器系統140通信(服務器140也不是數據處理系統100的一部分)。對于一些實施方式,服務器系統140可以被實現為單獨的數據處理系統。
[0035]根據本公開內容的一個實施方式,數據處理系統100可以提供混合隱藏線處理以生成待發送至顯示器111的圖像。如同在下文中結合圖3至圖5更詳細地描述的那樣,可以通過基于Z緩沖器技術識別相對小的數目的待相交(例如在小平面技術中進行的相交)的邊來處理圖像。從而,提供與Z緩沖器算法的速度類似的速度,并提供與小平面算法的精度類似的精度。另外,對于一些實施方式,可以將精確邊而不是小平面的邊相交,從而導致精度類似于精確算法的精度而速度類似于Z緩沖器算法的速度。
[0036]使用下文中描述的混合隱藏線處理,由于多邊形掃描轉換并且由于多邊形的外部邊勝過多邊形的內部,邊贏得它們應當贏得的像素。另外,不是基于多邊形的邊而是根據頂點法線來生成輪廓。從而,輪廓可以穿過多邊形的中部,并且比沿著多邊形的邊界而生成的輪廓更準確。
[0037]圖2A至圖2G示出了可以由根據本公開內容的數據處理系統100處理的各種圖像的示例。這些示例簡單地示出了在本公開內容中使用的各種項目。圖2A示出了用于在二維顯示器(例如圖1的顯示器111)上顯示三維圖像的處理。二維顯示器可以對應于由X軸和y軸限定的平面。示出的示例包括錐體202和方塊204。實線表示可以顯示的線,而虛線表示不可以出現在錐體202和方塊204的二維顯示中的隱藏線。從而,如圖所示,從觀看者直視由X軸和I軸限定的平面的角度來看,方塊204部分地遮擋了錐體202的、方塊204在錐體202前方的一部分。作為這些類型的線的示例,標出了一條可見線208和一條隱藏線210。
[0038]例如,當處理錐體202的三維圖像以在二維屏幕上顯示時,可以對錐體202進行曲面細分以生成曲面細分的錐體220,如圖2B所示。這樣,為了開始處理圖像以進行顯示,可以通過大量的多邊形或小平面來近似錐體202的曲面。為了簡單起見,圖2B中示出的曲面細分的錐體220不包括錐體220的背面的隱藏線。然而,在曲面細分的錐體220中示出了被圖2A的方塊204隱藏的線。同樣,為了簡單起見,沒有以曲面細分的形式示出方塊204。
[0039]在本示例中,標出了錐體220的一個輪廓222。該輪廓222與正面多邊形和背面多邊形共有的邊相對應。因此,輪廓222不是物體(即錐體202)真實的邊;然而,從x-y透視圖來看,輪廓222將對于錐體202的觀看者表現為可見線。如同在下文中將詳細描述的那樣,應該理解的是,很多圖像的真實的精確輪廓將會穿過多邊形(已知為輪廓多邊形),而不是恰好沿著正面多邊形與背面多邊形之間的邊。
[0040]在圖2B示出的示例中還標出了一個外部邊224。該邊224為可見邊,如實線所示。隱藏的輪廓線段226和隱藏的外部邊228分別以虛線示出。還標出了內部邊230。應該理解的是,雖然將內部邊示為實線,但是不可以顯示內部邊,這是因為它們對應于構成曲面細分的物體的多邊形的邊,因而并不對應于該物體的實際的或可見的邊。
[0041]圖2C示出了曲面細分的錐體220的一部分以及遮擋了錐體220的一部分的曲面細分的方塊240的一部分。為了簡單起見,在本圖中省略了內部邊。如同在下文中將詳細描述的那樣,在多邊形掃描轉換期間,對外部邊進行識別。例如,對方塊240的外部邊242進行了識別。在多邊形掃描轉換之后,通過Z緩沖器追蹤每條外部邊以搜索可見性改變像素。從而,對于示出的示例,可以追蹤錐體220的邊244,直到該邊224在可見性改變像素246處變為消隱為止。然后,混合隱藏線處理器可以回想起先前識別的外部邊242在可見性改變像素246處存在。然后,混合隱藏線處理器執行被追蹤的邊244與外部邊242的相交,以識別可見性改變點248。從而,如圖2C所示以及如同在下文中將詳細描述的那樣,可見性改變像素246包括邊可以變成消隱的位置處的像素(板保護可能導致邊實際上沒有被隱藏),并且可見性改變點248為邊未變成消隱的位置處的點。可見性改變像素246不如可見性改變點248精確;然而,應該理解的是,示出的實施方式顯示了像素246與點248的分辨率之間的可能放大的差異。
[0042]圖2D示出了三維錐體250。為了示出當前實現的隱藏線處理技術中潛在的問題,示出了與錐體250的一部分相交的平面252。平面252與錐體250的相交產生了錐體250的圓形的橫截面254。以下可以使用與位于輪廓前側上的面的小片相對應的正面板256以及與位于輪廓后側上的面的小片相對應的背面板258,來提供板保護。圖2E示出了曲面細分的橫截面260,曲面細分的橫截面260表示由多邊形曲面細分近似的圖2D的圓形橫截面254。
[0043]圖2E示出了用于改進混合隱藏線處理器中的Z緩沖器追蹤的精度的技術。在本示例中,一個多邊形的外部邊上的點268與相鄰多邊形的內部邊上的點270具有相同的X和y Z緩沖器坐標。從而,如果使用標準處理,則與點268相比,點270將會贏得該像素,這是因為點270具有比點268更大的z值。然而,由于點268在外部邊上,因此點268將會贏得像素。因此,如同在下文中將詳細描述的那樣,混合隱藏線處理器提供板保護,以確保外部邊上的點268顯示在內部邊上的點270上。
[0044]圖2F與圖2G示出了還可以如何為雙曲表面(例如表面278與280)提供附加的板保護。對于示出的示例,表面278具有外部邊282,并且表面278和280 二者均具有輪廓284和板折線(plate-break line) 286。對于雙曲表面,輪廓284不能完全地限定正面板與背面板之間的邊界。這樣,可以針對這些表面278和280識別輪廓尖端點288,并且使用輪廓尖端點288來生成進一步限定板之間的邊界的附加的板折線286。
[0045]圖3示出了根據本公開內容的數據處理系統100的一部分300。應該理解的是,數據處理系統100是可以實現圖3中示出的部件的一種類型的系統的示例,并且在不脫離本公開內容的范圍的情況下,可以在任何其它合適地布置的圖像生成系統中實現這些部件。
[0046]對于示出的實施方式,部分300包括曲面細分單元302、存儲器304、混合隱藏線處理器306以及顯示器308。對于一些實施方式,可以使用通用處理器(例如圖1中的處理器102)來實現曲面細分單元302和/或混合隱藏線處理器306。可以耦接至存儲器304的曲面細分單元302能夠接收表示要顯示的三維物體的圖像數據。對于一些實施方式,曲面細分單元302可能能夠經由路徑310檢索來自存儲器304的圖像數據。對于一些實施方式,曲面細分單元302可以接收來自數據處理系統100的其它部件(圖3中未示出)的圖像數據。
[0047]曲面細分單元302能夠對精確圖像數據進行曲面細分,以生成曲面細分的圖像數據。曲面細分的圖像數據包括能夠識別構成待顯示的物體的曲面細分的版本的多個多邊形或者小平面的數據。例如,對于一些實施方式,曲面細分的圖像數據可以包括構成曲面細分的圖像的多個三角形或其它多邊形的頂點的每個頂點的坐標。
[0048]對于一些實施方式,曲面細分單元302能夠經由路徑312向混合隱藏線處理器306提供曲面細分的圖像數據。然而,對于其它實施方式,曲面細分單元302能夠經由路徑310將曲面細分的圖像數據存儲在存儲器304中,并且能夠經由路徑312提供就緒信號,來提醒混合隱藏線處理器306在存儲器304中存在曲面細分的圖像數據。
[0049]耦接至曲面細分單元302和存儲器304的混合隱藏線處理器306能夠接收來自曲面細分單元302的曲面細分的圖像數據或就緒信號。對于曲面細分的圖像數據存儲在存儲器304中的實施方式,混合隱藏線處理器306能夠基于就緒信號從存儲器304檢索曲面細分的圖像數據。然而,應該理解的是,本文中使用的“接收”曲面細分的圖像數據包括被動地接收數據以及主動地檢索數據。
[0050]在接收到曲面細分的圖像數據之后,混合隱藏線處理器306能夠識別由曲面細分的圖像數據表示的多邊形的邊,并且能夠選擇邊的子集以基于Z緩沖器算法進行相交。如同將在下文中結合圖4和圖5詳細描述的那樣,混合隱藏線處理器306能夠沿著多邊形的邊識別可見性改變像素,并且能夠將那些邊與也在可見性改變像素處的任何外部邊相交,以確定外部邊上的可見性改變點。混合隱藏線處理器306還能夠基于頂點法線來生成準確的輪廓,能夠進行關于Z緩沖器的準確Z深度多邊形掃描轉換,并且能夠提供對于外部邊和輪廓的板保護。在進行該隱藏線處理時,混合隱藏線處理器306能夠基于曲面細分的圖像數據相對快速并且相對準確地生成顯示數據。
[0051]耦接至混合隱藏線處理器306的顯示器308能夠經由路徑316接收來自混合隱藏線處理器306的顯示數據,并且能夠向數據處理系統100的用戶顯示基于該顯示數據的處理后的圖像。在另一實施方式中,混合隱藏線處理器可以向繪圖儀發送圖像數據,以創建硬拷貝紙質繪圖。
[0052]圖4示出了根據本公開內容的混合隱藏線處理器306和存儲器304的細節。對于一些實施方式,可以使用通用處理器(例如圖1中的處理器102)來實現混合隱藏線處理器306。對于示出的實施方式,混合隱藏線處理器306包括輪廓生成器402、板生成器404、多邊形掃描轉換器406、Z緩沖器分割器408、可見性追蹤器410、板保護器412、邊相交器414以及可選的精確邊跟蹤器416。另外,存儲器304包括多邊形420、邊422、板424、Z緩沖器426以及可選的精確邊428。
[0053]雖然為了簡單起見,將將混合隱藏線處理器306的部件402、404、406、408、410、412,414以及416示出或描述為分立的部件,但是應該理解,在不脫離本公開內容的范圍的情況下,可以將其中的任意兩個或更多個部件一起實現為單個部件。另外,在一些實施方式中,部件402、404、406、408、410、412、414以及416中的任何一個部件可以被實現為兩個或更多個部件。另外,下列描述假設在曲面細分的圖像數據中呈現的多邊形為三角形。然而,應該理解,在不脫離本公開內容的范圍的情況下,曲面細分的圖像數據可以表示其它類型的多邊形。
[0054]輪廓生成器402能夠基于由曲面細分的圖像數據表示的多邊形420的頂點的頂點法線準確地生成輪廓。在多邊形法線與視向量的點積為零處產生輪廓點。如果點在背面多邊形上,則點積為負,而如果點在正面多邊形上,則點積為正。這樣,輪廓生成器402能夠針對每個多邊形420在多邊形三個頂點中的每個頂點處執行輪廓函數(即,法線與視向量的點積),以生成輪廓。
[0055]輪廓生成器402能夠基于輪廓函數確定多邊形是正面多邊形還是背面多邊形。如果輪廓生成器402確定針對三角形三個頂點中的每個頂點的輪廓函數均為負,則輪廓生成器402將該多邊形識別為背面多邊形。因而,針對該多邊形不存在輪廓。輪廓生成器402還能夠在存儲器304的多邊形420部中將該多邊形標記為背面多邊形。
[0056]類似地,如果輪廓生成器402確定針對三角形三個頂點中的每個頂點的輪廓函數均為正,則輪廓生成器402將該多邊形識別為正面多邊形。因而,針對該多邊形不存在輪廓。輪廓生成器402還能夠在存儲器304的多邊形420部中將該多邊形標記為正面多邊形。
[0057]然而,如果輪廓生成器402確定三角形的輪廓函數是混合的,即,針對三角形三個頂點之一的至少一個輪廓函數為負且針對三角形三個頂點之一的至少一個輪廓函數為正,則輪廓生成器402將該多邊形識別為輪廓多邊形。在這種情況下,輪廓生成器402能夠沿著每條多邊形邊進行線性插值以識別真正的輪廓點。然而,由于針對頂點中的兩個頂點的輪廓函數將會具有相同的符號,因此在連接這兩個頂點的邊上不存在輪廓點。因此,輪廓生成器402可以沿著該三角形的另外兩條邊進行線性插值。該處理識別出該三角形中的兩個輪廓點。然后,輪廓生成器402能夠通過連接這兩個輪廓點來形成輪廓線段。當輪廓生成器402完成輪廓線段形成之后,輪廓生成器402能夠將根據不同的三角形形成的輪廓線段耦接在一起以生成輪廓邊,并且將輪廓邊存儲在存儲器304的邊422部中。
[0058]對于一些實施方式,輪廓生成器402能夠生成精確輪廓邊。例如,對于特定類型的面,輪廓的精確類型是已知的(例如,球體的輪廓為圓)。對于這些類型的面,輪廓生成器402可能能夠將正確類型的精確曲線擬合到曲面細分的輪廓。對于其它表面類型,輪廓生成器402可能能夠通過曲面細分的輪廓點來擬合三次B樣條,以生成精確輪廓曲線。
[0059]對于雙曲表面(例如圖2F與圖2G的表面278和280),輪廓生成器402還能夠識別這些表面的任何輪廓尖端點,并且能夠基于這些輪廓尖端點生成板折線。
[0060]板生成器404能夠生成正面板和背面板,例如圖2D中示出的正面板256和背面板258。對于一些實施方式,板生成器404能夠基于輪廓生成器402在存儲器304的多邊形420部中對正面多邊形的識別來生成正面板,并且能夠基于輪廓生成器402在存儲器304的多邊形420部中對背面多邊形的識別來生成背面板。從而,對于一些實施方式,板生成器404能夠通過將每個正面多邊形添加到存儲器304的板424部中存儲的正面板來生成正面板,并且能夠通過將每個背面多邊形添加到存儲器304的板424部中存儲的背面板來生成背面板。對于其它實施方式,板生成器404能夠通過將每個正面多邊形添加到存儲器304的板424部中存儲的板來生成正面板,并且能夠通過不將每個背面多邊形添加到板424中存儲的板來生成背面板。從而,對于這些實施方式,不存在來自存儲器304的板424部的多邊形表示該多邊形來自背面板。對于雙曲表面(例如圖2F與圖2G中示出的表面278和280),板生成器404還能夠基于由輪廓生成器402生成的板折線來生成板。
[0061]多邊形掃描轉換器406能夠將由曲面細分的圖像數據表示的多邊形或多變形420掃描轉換到Z緩沖器426中。對于一些實施方式,多邊形掃描轉換器406能夠提供質心掃描轉換,以在Z緩沖器可見性映射中生成連續函數。在掃描轉換期間,多邊形掃描轉換器406還能夠識別正被掃描轉換的多邊形420的外部邊。對于一些實施方式,多邊形掃描轉換器406能夠通過將作為外部邊或輪廓邊的一部分的像素標記為屬于外部邊,來將外部邊標識存儲在Z緩沖器426中。
[0062]Z緩沖器分割器408能夠將多邊形420的分界存儲在Z緩沖器426的板424中。因此,Z緩沖器分割器408能夠基于由板生成器404生成的板424將Z緩沖器426分割成單獨的區域或板,該單獨的區域或板對應于輪廓的同側上的面的小片。
[0063]如果追蹤的邊表現為變成消隱的,則可見性追蹤器410能夠通過Z緩沖器426來追蹤每條邊并且識別可見性改變像素,例如圖2C中示出的可見性改變像素246。對于一些實施方式,可見性追蹤器410可以通過Z緩沖器426對邊進行步進來確定被追蹤的邊在何處表現為變成消隱的。在步進處理期間,可見性追蹤器410將被追蹤的邊表現為變成消隱的位置處的像素識別成可見性改變像素。
[0064]然后,板保護器412能夠進行板保護。對于一些實施方式,板保護器412可以通過確定被追蹤的邊是否在來自相同的板的像素后面來進行板保護。如果板保護器412確定被追蹤的邊在來自相同的板的像素后面,則該被追蹤的邊沒有被隱藏。從而,如果邊和多邊形來自相同的板,則無論Z值如何多邊形都不隱藏該邊。
[0065]如果邊實際上被隱藏,即,板保護器412基于板保護沒有確定該邊應該可見,則邊相交器414能夠檢查存儲器304的Z緩沖器426部以確定可見性改變像素是否包含在多邊形掃描轉換期間先前標識的外部邊。如果可見性改變像素包含外部邊,則邊相交器414能夠從存儲器422的邊部分提取外部邊,并且將由可見性追蹤器410追蹤的邊與識別為與可見性改變像素對應的外部邊進行邊相交。對于一些實施方式,邊相交器414能夠將精確邊相交。例如,邊相交器414能夠將非均勻有理B樣條(NURBS)曲線與NURBS曲線相交而不是簡單地將線段與線段相交。
[0066]對于混合隱藏線處理器306包括精確邊跟蹤器416的一些實施方式,精確邊跟蹤器416能夠用存儲在存儲器304的精確邊428部中的精確邊信息代替小平面的邊的信息。從而,精確邊跟蹤器416能夠用精確邊代替每個多邊形的各小平面的邊,以提供更準確的顯示數據。混合隱藏線處理器306能夠基于上述處理生成顯示器308的顯示數據。
[0067]對于一些實施方式,與用精確邊428簡單代替小平面的邊相比,可以更直接地實現從小平面到精確圖像的轉換。對于這些實施方式,精確邊跟蹤器416能夠基于小平面輪廓在精確表面的投影將小平面輪廓轉換成精確輪廓,為了實現此目的,可以將小平面輪廓的端點投影到其關聯的精確邊428上。可以將小平面輪廓的內部點投影到下面的精確表面上。
[0068]另外,精確邊跟蹤器416能夠根據下面的精確表面的類型來將精確曲線擬合到投影點。例如,對于平面來說不存在輪廓。對于柱體和錐體來說,沿著輪廓沒有使用內部點。相反,使用了被投影到精確邊上的輪廓的兩個端點,并且在這兩個端點之間生成了線。對于球體來說,通過投影的曲面細分的輪廓點生成圓弧。對于其它表面類型來說,可以通過投影的曲面細分的輪廓點來生成三次B樣條曲線。在每個類型的曲線擬合期間,曲線的端點被保持在該端點所連接的精確邊上。
[0069]此外,對于這些實施方式,可以將可見性改變點從小平面轉換成精確。對于這些實施方式中的一些實施方式,這種轉換使用牛頓一拉夫森步進算法(Newton Raphsonstepping algorithm)來求解兩條精確曲線上的可見性改變點的位置。針對第一個可見性改變點,它被明確地移到精確邊的起始處。針對每個內部可見性改變點,將當前可見性改變點投影到當前邊上,以獲得起始細化值。將匹配的可見性改變點投影到投影坐標空間中的匹配邊上以獲得t值。執行牛頓一拉夫森步進函數以細化2D中的可見性改變點。該細化的可見性改變點被用作可見性改變點。沿著邊緩沖可見性改變點的列表。
[0070]圖5是示出根據本公開內容的用于提供混合隱藏線處理的方法500的流程圖,該方法可以由本文中公開的一個或更多個PDM數據處理系統執行。方法500開始于混合隱藏線處理器306接收曲面細分的圖像數據(步驟502)。對于一些實施方式,混合隱藏線處理器接收來自曲面細分單元302的曲面細分的圖像數據。對于其它實施方式,混合隱藏線處理器306可以從存儲器304檢索曲面細分的圖像數據。例如,混合隱藏線處理器306可以從存儲器304的多邊形420部檢索曲面細分的圖像數據。以下描述假設多邊形420為三角形。然而,可以理解的是,在不脫離本公開內容的范圍的情況下,曲面細分的圖像數據可以表示其它類型的多邊形。
[0071]輪廓生成器402標記多邊形420,同時基于多邊形420的頂點的頂點法線生成輪廓(步驟504)。例如,輪廓生成器402可以在每個多邊形420的三個多邊形頂點中的每個頂點處執行輪廓函數,即法線與視向量的點積。如果針對三角形的三個頂點中的每個頂點輪廓函數均為負,則輪廓生成器402將該多邊形識別為背面多邊形,并且將該多邊形本身標記在存儲器304的多邊形420部中。如果針對三角形的三個頂點中的每個頂點輪廓函數均為正,則輪廓生成器402將該多邊形識別為正面多邊形,并且將該多邊形本身標記在存儲器304的多邊形420部中。對于背面多邊形和正面多邊形二者都不存在輪廓。
[0072]然而,如果輪廓生成器402確定三角形的輪廓函數是混合的,則輪廓生成器402沿著每條多邊形邊進行線性插值,以識別兩個真正的輪廓點并且通過連接這兩個輪廓點來形成輪廓線段。由于頂點中的兩個頂點的輪廓函數將會具有相同的符號,因此在連接這兩個點的邊上不存在輪廓點。因而,輪廓生成器402可以沿著其它兩條邊進行線性插值,以識別真正的輪廓點。然后,輪廓生成器402將輪廓線段耦接在一起以生成輪廓邊,并且將該輪廓邊存儲在存儲器304的邊422部中。
[0073]對于一些實施方式,輪廓生成器402通過針對已知類型的面將正確類型的精確曲線擬合到曲面細分的輪廓,以及針對未知類型的面通過曲面細分的輪廓點來擬合三次B樣條,來生成精確輪廓邊。對于雙曲表面(例如圖2F與圖2G的表面278和280),輪廓生成器402可以識別表面的任何輪廓尖端點并且基于該輪廓尖端點生成板折線。
[0074]板生成器404生成板,板包括在輪廓的同側上的面的小片(步驟506)。對于一些實施方式,板生成器404能夠通過將由輪廓生成器402標記的每個正面多邊形420添加到正面板來生成正面板,并且能夠通過將由輪廓生成器402標記的每個背面多邊形420添加到背面板來生成背面板。對于雙曲表面(例如圖2F與圖2G的表面278和280),板生成器404可以基于由輪廓生成器402生成的板折線來生成板。
[0075]多邊形掃描轉換器406將由曲面細分的圖像數據表示的多邊形或多邊形420掃描轉換到Z緩沖器426中(步驟508)。對于一些實施方式,多邊形掃描轉換器406進行質心掃描轉換,以在Z緩沖器可見性映射中生成連續函數。在掃描轉換期間,多邊形掃描轉換器406識別多邊形420的外部邊和輪廓邊,并且將作為這些邊的一部分的像素標識為屬于存儲器304的Z緩沖器426部中的外部邊(步驟510)。
[0076]Z緩沖器分割器408基于由板生成器404生成的板424將Z緩沖器426分割成單獨的區域或者板(步驟512)。可見性追蹤器410開始通過Z緩沖器426追蹤邊的可見性(步驟514)。如果可見性追蹤器410完成對邊的追蹤而被追蹤的邊沒有表現為變成消隱的(步驟516),則可見性追蹤器410選擇下一條待追蹤的邊(步驟518)并且開始新的可見性追蹤(步驟514)。
[0077]然而,如果可見性追蹤器410確定被追蹤的邊表現為變成消隱的(步驟516),則可見性追蹤器410識別可見性改變像素,即,被追蹤的邊表現為變成消隱的位置處的像素(步驟520)。板保護器412進行板保護,以通過驗證被追蹤的邊實際上是否是隱藏的來確保輪廓和邊在多邊形上是優選的。板保護器412通過確定被追蹤的邊是否在來自相同的板的像素后面(即,被追蹤的邊和可見性改變像素二者都來自正面板或者二者都來自背面板)來進行該驗證(步驟522)。
[0078]如果板保護器412確定被追蹤的邊在來自相同的板的像素后面(步驟522),則板保護器412確定被追蹤的邊實際上不是被隱藏的,并且應該被顯示。因而,如果邊和多邊形來自相同的板,則該多邊形不隱藏該邊。然后,可見性追蹤器410繼續追蹤邊而不將邊隱藏到先前識別的可見性改變像素后面(步驟514)。然而,如果板保護器412確定被追蹤的邊在來自不同的板的像素后面(步驟522),則邊相交器414對可見性改變像素是不是外部邊的一部分做出確定(步驟524)。如果邊相交器414確定如同在步驟510中由多邊形掃描轉換器406所標識的那樣,可見性改變像素不是外部邊的一部分(步驟524),則可見性追蹤器410簡單地將該邊標識為在該像素位置處是隱藏的,然后繼續追蹤邊(步驟514)。
[0079]然而,如果邊相交器414確定如同在步驟510中由多邊形掃描轉換器406所標識的那樣,可能性改變像素是外部邊的一部分(步驟524),則邊相交器414將被追蹤的邊與可見性改變像素是其一部分的外部邊進行相交,以識別可見性改變點(步驟526)。對于一些實施方式,邊相交器414能夠使小平面的邊(即線段)相交。對于其它實施方式,邊相交器414能夠使精確邊(例如NURBS曲線)相交。
[0080]對于混合隱藏線處理器306包括精確邊跟蹤器416的實施方式,如果需要的話,精確邊跟蹤器416可以用存儲在存儲器304的精確邊428部中的精確邊信息代替多邊形的邊的信息(可選步驟528)。
[0081]如果還剩余其它邊要追蹤(步驟530),則選擇下一條邊(步驟518),并且可見性追蹤器410開始追蹤下一條邊(步驟514)。然而,當沒有剩余邊要追蹤時(步驟530),混合隱藏線處理器306基于上述處理技術生成顯示器308的顯示數據,并且顯示器308基于顯示數據顯示經處理的圖像(步驟532)。將可以理解的是,混合隱藏線處理器306可以在追蹤邊的同時生成顯示器308的顯示數據,而不是等到追蹤了所有的邊為止才生成顯示數據。
[0082]以這種方式,提供了更準確且更快速的隱藏線處理技術。例如,板保護的實現確保了邊(包括輪廓邊)不被多邊形的內部所隱藏。沒有被隱藏的邊可以用于進行次要誤差清理。根據頂點法線生成準確輪廓,并且與基于多邊形的邊生成的不準確輪廓相比,準確輪廓可以實際上穿過多邊形的中部。另外,與Z緩沖器步進相比,當實現質心掃描轉換時,提供了更準確的多邊形掃描轉換。最后,針對提供精確細化的實施方式,可以根據小平面輪廓和已知的精確表面類型來生成精確輪廓,并且可以用精確邊相交來代替線段相交,以提供更準確的結果。
[0083]本領域的普通技術人員應該理解,除非特別指出或對操作的順序有要求,上述處理中的某些步驟可以被省略、組合、同時或順序執行,或者按不同的順序執行。可以在本公開內容的范圍內對上述不同的示例性實施方式的處理和要素進行組合。
[0084]本領域的普通技術人員將會認識到,為了簡單和清楚起見,適于與本公開內容一起使用的所有數據處理系統的完整結構和操作將不在此處進行描繪或描述。而是,只對這么多數據處理系統為本公開內容是特有的或為本公開內容的理解是必要的內容進行描繪和描述。數據處理系統100的其它結構和操作可以遵循本領域已知的各種當前的實施和實踐中的任一種。
[0085]重要的是,盡管本公開內容包括了在全功能系統情況下的描述,但是本領域的普通技術人員將會理解的是,本公開內容的機制的至少一部分能夠以以任何形式包含在機器可用、計算機可用或計算機可讀介質中的指令的形式進行分布;還要注意的是,本公開內容均進行同樣的應用,而不管用于實際執行該分布的指令或信號承載介質或存儲介質的特定類型如何。機器可用/可讀或計算機可用/可讀介質包括:非易失性硬編碼型介質,如只讀存儲器(ROM)或電可擦除可編程只讀存儲器(EEPROM);以及用戶可記錄型介質,如軟盤、硬盤驅動器和只讀光盤存儲器(⑶-ROM)或數字多功能磁盤(DVD)。
[0086]所使用的附圖標記、詞匯的列表
[0087]100 數據處理系統
[0088]102 處理器
[0089]104 高速緩存/橋
[0090]106 本地系統總線
[0091]108 主存儲器
[0092]110 圖形適配器
[0093]111 顯示器
[0094]112 局域網/廣域網/無線適配器
[0095]114 擴展總線接口
[0096]116 輸入/輸出總線;
[0097]118 鍵盤/鼠標適配器
[0098]120 盤控制器
[0099]122 I/O 適配器
[0100]124 音頻適配器
[0101]130 網絡
[0102]140 服務器系統
[0103]202錐體
[0104]204方塊
[0105]208可見線
[0106]210隱藏線
[0107]220曲面細分的錐體
[0108]222輪廓
[0109]224可見的外部邊
[0110]226隱藏的輪廓線段
[0111]228隱藏的外部邊
[0112]230內部邊
[0113]240曲面細分的方塊
[0114]242外部邊
[0115]244邊、被追蹤的邊
[0116]246可見性改變像素
[0117]248可見性改變點
[0118]250三維錐體
[0119]252平面
[0120]254圓形橫截面
[0121]256正面板
[0122]258背面板
[0123]260曲面細分的橫截面
[0124]268點、外部邊的點
[0125]270點、內部邊的點
[0126]278表面
[0127]280表面
[0128]282外部邊
[0129]284輪廓
[0130]286板折線
[0131]288輪廓尖端點
[0132]300數據處理系統100的一部分
[0133]302曲面細分單元
[0134]304存儲器
[0135]306隱藏線處理器、混合隱藏線處理器
[0136]308顯示器
[0137]310路徑
[0138]312路徑
[0139]314
[0140]316路徑
[0141]402輪廓生成器
[0142]404板生成器
[0143]406多邊形掃描轉換器
[0144]408Z緩沖器分割器
[0145]410可見性追蹤器
[0146]412板保護器
[0147]414邊相交器
[0148]416精確邊跟蹤器
[0149]420多邊形部分
[0150]422邊部分
[0151]424板部分
[0152]426Z 緩沖器
[0153]428精確邊部分
[0154]500方法
[0155]502接收曲面細分的圖像數據
[0156]504標記多邊形并且生成輪廓
[0157]506生成板
[0158]508進行多邊形掃描轉換
[0159]510標識外部邊上的像素
[0160]512基于板對Z緩沖器進行分割
[0161]514追蹤邊的可見性
[0162]516被追蹤的邊的表現為變成消隱的?
[0163]518選擇下一條邊
[0164]520識別可見性改變像素
[0165]522可見性改變像素來自與被追蹤的邊相同的板?
[0166]524可見性改變像素是外部邊的一部分?
[0167]526將被追蹤的邊與外部邊進行相交,以識別可見性改變點
[0168]528使用精確邊來轉換成精確模型
[0169]530另外的邊?
[0170]532顯示經處理的圖像
[0171]ASIC專用集成電路
[0172]CAD計算機輔助設計
[0173]I/O輸入/輸出
[0174]LAN局域網
[0175]PCI外圍部件互連
[0176]PDM產品數據管理
[0177]PLM產品生命周期管理
[0178]WAN廣域網
【權利要求】
1.一種由產品數據管理數據處理系統(100)執行的、用于提供針對表示曲面細分的圖像數據的多個多邊形(420)的混合隱藏線處理的方法,每個多邊形(420)包括多條邊(422),所述方法包括: 由輪廓生成器(402)識別(504)背面板和正面板,其中,所述背面板包括位于所述曲面細分的圖像數據的輪廓的背面側上的多邊形(420),所述正面板包括位于所述曲面細分的圖像數據的輪廓的正面側上的多邊形; 在存儲器(304)中標記(506)識別出的面板的多邊形(402)本身; 執行(508) Z深度多邊形(402)掃描轉換,識別所述多邊形(420)的外部邊和輪廓邊,以及將轉換后的且識別出的數據存儲到Z緩沖器(426)中; 對所述Z緩沖器(426)中的作為外部邊的一部分的像素進行標識(510); 追蹤(514)所述邊; 識別(520)被追蹤的邊的子集中的每條被追蹤的邊的至少一個可見性改變像素; 針對每個可見性改變像素,確定(522)所述被追蹤的邊是否來自與對應于所述可見性改變像素的多邊形相同的板;以及 針對被確定為(524)來自與對應于所述可見性改變像素的多邊形相同的板的每條被追蹤的邊,顯示(532)該被追蹤的邊。
2.根據權利要求1所述的方法,其中,所述邊的至少一個子集中的每個子集包括外部邊和內部邊之一,所述方法還包括: 針對被追蹤的邊的子集中的、被確定為(524)與對應于所述可見性改變像素的多邊形相比來自不同的板的每條被追蹤的邊,識別對應于所述可見性改變像素的外部邊;以及針對每條識別出的外部邊,使被追蹤的邊與該外部邊相交(526),以識別可見性改變點。
3.根據權利要求2所述的方法,其中,使被追蹤的邊與該外部邊相交(526)包括:使第一線段與第二線段相交。
4.根據權利要求2所述的方法,其中,使被追蹤的邊與該外部邊相交(526)包括:使第一曲線與第二曲線相交。
5.根據權利要求1至4之一所述的方法,其中,所述多邊形包括三角形,并且在所述三角形的頂點的每個頂點處執行輪廓函數,其中,所述輪廓函數是在所述三角形的三個頂點的每個頂點處的法線與視向量的點積。
6.根據權利要求5所述的方法,其中, 如果針對三角形的三個頂點中的每個頂點的輪廓函數均為負,則將所述多邊形(402 )識別為背面多邊形,并且確定針對所述多邊形不存在輪廓; 如果針對三角形的三個頂點中的每個頂點的輪廓函數均為正,則將所述多邊形識別為正面多邊形,并且確定針對所述多邊形不存在輪廓;以及 如果針對所述多邊形的至少一個輪廓函數為負并且針對所述多邊形的至少一個輪廓函數為正,則將所述多邊形識別為輪廓多邊形,沿著所述輪廓多邊形(402)的邊進行線性插值以識別兩個輪廓點,并且通過連接所述兩個輪廓點來形成輪廓線段。
7.根據權利要求6所述的方法,其中,進行所述線性插值包括:沿著所述輪廓多邊形的第一邊和所述輪廓多邊形的第二邊進行所述線性插值,以及其中,所述輪廓多邊形的第三邊由針對其的所述輪廓函數具有相同符號的兩個頂點限定。
8.根據權利要求6所述的方法,其中,所述生成輪廓還包括:將針對所述輪廓多邊形中的每個輪廓多邊形的輪廓線段耦接在一起以生成輪廓邊。
9.根據權利要求8所述的方法,其中,所述生成輪廓還包括:通過下述至少之一來細化所述輪廓邊:(i)針對已知類型的面,將精確曲線擬合到所述輪廓邊,以及(ii)針對未知類型的面,通過每個輪廓線段的輪廓點來擬合三次B樣條。
10.一種數據處理系統,包括: 存儲器,其被配置成存儲表示曲面細分的圖像數據的多邊形、所述多邊形的外部邊以及正面板,所述正面板包括位于所述曲面細分的圖像數據的輪廓的正面側上的多邊形; 耦接至所述存儲器的混合隱藏線處理器,其中,所述處理器被配置成通過基于所述多邊形的頂點法線生成輪廓并提供對于所述外部邊和所述輪廓的板保護,來生成基于所述曲面細分的圖像數據的顯示數據;以及 耦接至所述處理器的顯示器,其中,所述顯示器被配置成顯示基于所述顯示數據的經處理的圖像。
11.根據權利要求10所述的數據處理系統,其中,所述處理器包括: 板生成器,其被配置成生成所述正面板,以及生成包括位于所述輪廓的背面側上的多邊形的背面板; 可見性追蹤器,其被配置成追蹤所述邊并且識別所述被追蹤的邊的子集中的每條被追蹤的邊的至少一個可見性改變像素;以及 板保護器,其被配置成通過以下方式來提供所述板保護:針對每個可見性改變像素,確定所述被追蹤的邊是否來自與對應于所述可見性改變像素的多邊形相同的板,以及針對被確定為來自與對應于所述可見性改變像素的多邊形相同的板的每條被追蹤的邊,使得該被追蹤的邊被顯示。
12.根據權利要求11所述的數據處理系統,其中,所述處理器還包括邊相交器,所述邊相交器被配置成:(i)針對所述被追蹤的邊的子集中的、被確定為與對應于所述可見性改變像素的多邊形相比來自不同的板的每條被追蹤的邊,識別對應于所述可見性改變像素的外部邊,以及(ii)針對每條識別出的外部邊,使所述被追蹤的邊與該外部邊相交,以識別可見性改變點。
13.根據權利要求11所述的數據處理系統,其中,所述多邊形包括三角形,以及其中,所述處理器還包括輪廓生成器,所述輪廓生成器被配置成針對每個多邊形,通過以下步驟來生成所述輪廓: 在所述多邊形的頂點中的每個頂點處執行輪廓函數; 如果針對三角形三個頂點中的每個頂點的輪廓函數均為負,則將所述多邊形識別為背面多邊形,并且確定針對所述多邊形不存在輪廓; 如果針對三角形三個頂點中的每個頂點的輪廓函數均為正,則將所述多邊形識別為正面多邊形,并且確定針對所述多邊形不存在輪廓;以及 如果針對所述多邊形的至少一個輪廓函數為負并且針對所述多邊形的至少一個輪廓函數為正,則將所述多邊形識別為輪廓多邊形,沿著所述輪廓多邊形的邊進行線性插值以識別兩個輪廓點,并且通過連接所述兩個輪廓點來形成輪廓線段。
14.根據權利要求13所述的數據處理系統,其中,所述輪廓生成器被進一步配置成識別所述輪廓多邊形的第一邊,并且沿著所述輪廓多邊形的第二邊和所述輪廓多邊形的第三邊進行所述線性插值,所述第一邊由針對其的所述輪廓函數具有相同符號的兩個頂點限定。
15.根據權利要求13所述的數據處理系統,其中,所述存儲器被進一步配置成存儲Z緩沖器,以及其中,所述處理器還包括多邊形掃描轉換器,所述多邊形掃描轉換器被配置成將所述多邊形的質心掃描轉換提供到所述Z緩沖器中。
16.根據權利要求15所述的數據處理系統,其中,所述處理器還包括Z緩沖器分割器,所述Z緩沖器分割器被配置成基于由所述板生成器生成的所述正面板和所述背面板將所述Z緩沖器中的多邊形分割成板。
17.—種編碼有可執行指令的非暫態計算機可讀介質,所述可執行指令在被執行時,使得一個或更多個數據處理系統執行如下步驟: 生成正面板和背面板,其中,所述正面板包括位于輪廓的正面側上的多邊形,所述背面板包括位于所述輪廓的背面側上的多邊形,每個多邊形包括多條邊; 追蹤所述邊; 識別所述被追蹤的邊的子集中的每條被追蹤的邊的至少一個可見性改變像素; 針對每個可見性改變像素,確定所述被追蹤的邊是否來自與對應于所述可見性改變像素的多邊形相同的板;以及 針對被確定為來自與對應于所述可見性改變像素的多邊形相同的板的每條被追蹤的邊,生成用于顯示的該被追蹤的邊。
18.根據權利要求17所述的計算機可讀介質,其中,所述邊的至少一個子集中的每個子集包括外部邊和內部邊之一,以及其中,所述計算機可讀介質還編碼有如下可執行指令:該可執行指令在被執行時,使得一個或更多個數據處理系統執行如下步驟: 針對所述被追蹤的邊的子集中的、被確定為與對應于所述可見性改變像素的多邊形相比來自不同的板的被追蹤的邊,識別對應于所述可見性改變像素的外部邊;以及 針對每條識別出的外部邊,使所述被追蹤的邊與該外部邊相交,以識別可見性改變點。
19.根據權利要求17所述的計算機可讀介質,其中,所述多邊形包括三角形,以及其中,所述計算機可讀介質還編碼有如下可執行指令:該可執行指令在被執行時,使得一個或更多個數據處理系統針對每個多邊形執行如下步驟: 在所述多邊形的頂點中的每個頂點處執行輪廓函數, 如果針對三角形三個頂點中的每個頂點的輪廓函數均為負,則將所述多邊形識別為背面多邊形,并且確定針對所述多邊形不存在輪廓; 如果針對三角形三個頂點中的每個頂點的輪廓函數均為正,則將所述多邊形識別為正面多邊形,并且確定針對所述多邊形不存在輪廓;以及 如果針對所述多邊形的至少一個輪廓函數為負并且針對所述多邊形的至少一個輪廓函數為正,則將所述多邊形識別為輪廓多邊形,沿著所述輪廓多邊形的邊進行線性插值以識別兩個輪廓點,并且通過連接所述兩個輪廓點來形成輪廓線段;以及將針對每個輪廓多邊形的輪廓線段耦接在一起以生成輪廓邊。
20.根據權利要求19所述的計算機可讀介質,其中,所述多邊形包括三角形,以及其中,所述計算機可讀介質還編碼有如下可執行指令:該可執行指令在被執行時,使得一個或更多個數據處理系統通過下述中至少之一來細化所述輪廓邊:(i)針對已知類型的面,將精確曲線擬合到所述輪廓邊,以及(ii)針對未知類型的面,通過每個輪廓線段的所述輪廓點來擬合三次B樣條。
【文檔編號】G06T15/40GK104488000SQ201280048164
【公開日】2015年4月1日 申請日期:2012年9月21日 優先權日:2011年9月29日
【發明者】加里·拉蒙·馬錢特, 沙伊列什·拉特納卡·卡邁爾卡爾 申請人:西門子產品生命周期管理軟件公司