本發(fā)明涉及用于在基于圖塊的計算機圖形系統(tǒng)中產(chǎn)生和陰影化計算機圖形圖像的方法和系統(tǒng)。
背景技術:基于圖塊的渲染是用于渲染2D或3D計算機圖形圖像的眾所周知的技術。圖像被再分成多個通常為矩形的塊或圖塊,并且每個塊或圖塊包括多個圖像像素。從存儲器中讀取表示幾何對象的圖元數(shù)據(jù)并將其傳輸至屏幕空間。圖元通常為多邊形的,但也可能是線或點。之后為每個圖塊創(chuàng)建用于指示圖元的對象列表,并且如果存在圖元的話,這些圖元部分或全部地位于該圖塊內(nèi)。每個圖塊獨立地被渲染。對于每個圖塊,在各個對象列表中標識的圖元被處理并且隱藏面消除可以被執(zhí)行。可見對象的合成像素數(shù)據(jù)接著被傳遞至陰影化單元,該陰影化單元將紋理和陰影應用至可見對象內(nèi)的每個像素。在已經(jīng)為圖塊中的每個像素確定了最終像素值之后,圖塊的像素數(shù)據(jù)被寫入存儲器中以用于在輸出設備上顯示。對于三角圖元,圖元數(shù)據(jù)將通常包括定義了頂點的數(shù)據(jù)和這些圖元數(shù)據(jù)所定義的表面,其中用標記來指示待應用的相關陰影和紋理數(shù)據(jù)。
技術實現(xiàn)要素:根據(jù)本發(fā)明的第一方面,提供了一種用于在基于圖塊的計算機圖形系統(tǒng)中產(chǎn)生和陰影化計算機圖形圖像的方法,該方法包括以下步驟:提供幾何數(shù)據(jù);從所述幾何數(shù)據(jù)獲得多個圖元;從所述多個圖元中的至少一者獲得一個或多個修改后圖元;對于多個圖像圖塊中的每個圖像圖塊,獲得包括標識了從中獲得至少部分位于圖塊內(nèi)的每個修改后圖元的圖元的數(shù)據(jù)的對象列表;以及使用各自的對象列表來陰影化每個圖塊以用于顯示。根據(jù)本發(fā)明的第二方面,提供了一種用于在基于圖塊的計算機圖形系統(tǒng)中產(chǎn)生和陰影化計算機圖形圖像的方法,該方法包括以下步驟:提供幾何數(shù)據(jù);從所述幾何數(shù)據(jù)獲得多個圖元;從所述多個圖元中的至少一者獲得一個或多個修改后圖元;對于多個圖塊中的每個圖塊,獲得包括標識了至少部分位于圖塊內(nèi)的每個修改后圖元的數(shù)據(jù)的對象列表;以及使用各自的對象列表來陰影化每個圖塊以用于顯示。本發(fā)明的實施方式具有以下優(yōu)勢:(全部或部分地)位于特定圖塊內(nèi)的所有修改后圖元能夠從該圖塊的對象列表來確定。申請人已經(jīng)意識到,在基于圖塊的計算機圖形系統(tǒng)中,對于每個圖塊而言,如果修改后圖元僅在該圖塊的對象列表已經(jīng)產(chǎn)生之后被從一個或多個在該對象列表中標識的圖元中獲得,那么并非事實上所有位于該圖塊中的修改后圖元都將被創(chuàng)建。正如申請人已經(jīng)意識到的,這是因為根據(jù)從中獲得修改后圖元的圖元,這些修改后圖元可以位于一個或多個不同的圖塊中。以示出為目的,圖5是顯示了劃分為四個矩形圖塊T1至T4的圖像170的圖示。在該圖示中,一個圖元180完全位于圖塊3(T3)中。從圖元180獲得的兩個修改后圖元以在圖元中被陰影化的方式示出。這些修改后圖元中的一者(由參考數(shù)字190所指示)也位于圖塊3中。但是,另一個修改后圖元200在鄰近的圖塊中,即圖塊4(T4)中。因而,在該示例中,如果修改后圖元僅在每個圖塊的對象列表已經(jīng)被獲得之后才被獲得,那么在各個圖塊的渲染期間,圖塊4的圖像將是不準確的。圖塊3的對象列表將包括用于標識圖元180的數(shù)據(jù)。因而,在使用其對象列表來渲染圖塊3的情況下,修改后圖元190能夠針對該圖塊被獲得并被處理。但是,圖塊4的對象列表將不包括用于標識圖元180的數(shù)據(jù),因為圖元180不位于圖塊4內(nèi)。因此,在使用其對象列表渲染圖塊4的情況下,圖元200不能針對圖塊4被獲得并被處理。因而,本發(fā)明使得更加準確、更好質(zhì)量的圖像能夠在基于圖塊的計算機圖形渲染系統(tǒng)中被產(chǎn)生。在實施方式中,一個或多個修改后圖元中的至少一者為所述多個圖元中的其中一個圖元的轉化、縮放和/或旋轉后的實例。幾何數(shù)據(jù)可以定義用于用基于圖塊的計算機圖形系統(tǒng)進行顯示的對象。所述對象可以為表面數(shù)據(jù)的補?。╬atch),以及獲得所述多個圖元的步驟可以包括鑲嵌表面數(shù)據(jù)的補丁以獲得多個鑲嵌后的圖元。在本發(fā)明的第二方面的實施方式中,一個或多個修改后圖元中的每一者可以被分配唯一標識符;并且,對于每個對象列表,用于標識每個至少部分位于該圖塊內(nèi)的修改后圖元的數(shù)據(jù)可以包括那個修改后圖元的各自的唯一標識符。但是,申請人已經(jīng)意識到,本發(fā)明的第一方面中定義的可替換的解決方案為可以存儲標識了從中獲得至少部分位于圖塊內(nèi)的每個修改后圖元的圖元的數(shù)據(jù),而不是存儲標識了至少部分位于特定圖塊內(nèi)的每個修改后圖元的數(shù)據(jù)。也就是,一個或多個修改后圖元可以被分配與從中獲得這些修改后圖元的圖元相同的標識符。從中獲得至少部分位于圖塊內(nèi)的每個修改后圖元的圖元可以位于不同的圖塊中。本發(fā)明的該方面具有以下缺點:修改后圖元可能需要在陰影化每個圖塊的情況下被重新獲得以用于顯示。但是,申請人已經(jīng)意識到,本發(fā)明的該方面具有以下顯著的優(yōu)勢:可以減少需要被存儲在對象列表中的數(shù)據(jù)量,并且更充分地壓縮存儲在對象列表中的數(shù)據(jù)是可能的。因而,需要存儲對象列表的存儲器和需要寫入對象列表至存儲器或從存儲器讀取對象列表的存儲器帶寬可以被有益地減少。通過示例的方式,鄰近的圖元或空間上的本地圖元(例如根據(jù)鑲嵌表面數(shù)據(jù)的補丁而獲得的鑲嵌后圖元)通常被分配連續(xù)的整數(shù)以作為標識符。連續(xù)整數(shù)的行程(run)可以使用簡單的方法(諸如行程長度編碼(runlengthencoding))而簡單地被壓縮。但是,如果整數(shù)因為相關聯(lián)的圖元不位于圖塊內(nèi)而沒有位于對象列表中,那么這些壓縮技術的有效性是有限的。向的圖元分配與從中獲得修改后的圖元的圖元相同的標識符(整數(shù))增加了存在于特定對象列表內(nèi)的圖元整數(shù)的更長行程的機會。這是特定的實例,因為在許多應用中,至少一個修改后的圖元將位于從中獲得該修改后的圖元的圖元的附近。因此,如果圖元剛好位于圖塊之外,那么該圖元的修改后圖元中的一者可以位于該圖塊內(nèi)是可能的。在本發(fā)明的該方面中,陰影化步驟可以包括從從中獲得修改后的圖元的圖元中重新獲得至少部分位于所述圖塊中的每個修改后的圖元。在實施方式中,獲得一個或多個修改后的圖元的步驟可以包括應用遞增地獲得修改后的圖元的序列的修改函數(shù)。如果所述序列中多個修改后的圖元至少部分地位于一個圖塊中,則該方法還可以包括存儲用于指示所述多個修改后的圖元的序列中的第一和/或最后位置的數(shù)據(jù)。在該實施方式中,所述陰影化步驟可以包括重新獲得所述修改后的圖元的序列并將至少一些所述修改后的圖元存儲在高速緩存中。這意味著不需要多于一次地獲得這些修改后的圖元及可以針對不同圖塊來恢復所述序列。陰影化步驟可以包括重新獲得修改后的圖元的序列的一部分并存儲修改函數(shù)的狀態(tài)和最后重新獲得的修改后的圖元,藉此修改函數(shù)能夠開始從所述最后重新獲得的圖元中重新獲得所述修改后的圖元的序列。根據(jù)本發(fā)明的第一方面,還提供了一種用于在基于圖塊的計算機圖形系統(tǒng)中產(chǎn)生和陰影化計算機圖形圖像的系統(tǒng),該系統(tǒng)包括:至存儲器設備的接口;以及處理器,該處理器被配置成:經(jīng)由所述接口從所述存儲器設備讀取幾何數(shù)據(jù);從所述幾何數(shù)據(jù)獲得多個圖元;從所述多個圖元中的至少一者獲得一個或多個修改后的圖元;對于多個圖塊中的每個圖塊,獲得包括標識了從中獲得至少部分位于圖塊內(nèi)的每個修改后的圖元的圖元的數(shù)據(jù)的對象列表;以及使用各自的對象列表來陰影化每個圖塊以用于顯示。根據(jù)本發(fā)明的第二方面,還提供了一種用于在基于圖塊的計算機圖形系統(tǒng)中產(chǎn)生和陰影化計算機圖形圖像的系統(tǒng),該系統(tǒng)包括:至存儲器設備的接口;以及處理器,該處理器被配置成:經(jīng)由所述接口從所述存儲器設備讀取幾何數(shù)據(jù);從所述幾何數(shù)據(jù)獲得多個圖元;從所述多個圖元中的至少一者獲得一個或多個修改后的圖元;對于多個圖塊中的每個圖塊,獲得包括標識了至少部分位于圖塊內(nèi)的每個修改后的圖元的數(shù)據(jù)的對象列表;以及使用各自的對象列表來陰影化每個圖塊以用于顯示。附圖說明本發(fā)明的實施方式將參照附圖僅以示例的方式進行描述,其中:圖1是根據(jù)本發(fā)明優(yōu)選實施方式的顯示了用于在基于圖塊的渲染系統(tǒng)中產(chǎn)生和陰影化計算機圖形圖像的設備的示意圖;圖2是根據(jù)本發(fā)明實施方式的顯示由圖塊化單元(tilingunit)執(zhí)行的步驟的流程圖;圖3是根據(jù)本發(fā)明實施方式的顯示由圖塊化單元執(zhí)行的步驟的又一流程圖;圖4是根據(jù)本發(fā)明優(yōu)選實施方式的顯示由圖塊化單元執(zhí)行的步驟的流程圖;圖5是示出了被劃分成多個圖塊的圖像的圖示;圖6a和6b是根據(jù)本發(fā)明實施方式的存儲在圖5所示的圖塊的對象列表中的信息的示意圖。具體實施方式在以下本發(fā)明的優(yōu)選實施方式中,多個圖元為通過鑲嵌表面數(shù)據(jù)的補丁產(chǎn)生的鑲嵌圖元。但是,應當理解的是本發(fā)明并不限于該實施方式且可以同樣與由其他方式產(chǎn)生的鑲嵌圖元一起使用或與非鑲嵌圖元一起使用。圖1顯示了根據(jù)本發(fā)明優(yōu)選實施方式的示意圖,該示意圖示出了用于在基于圖塊的渲染系統(tǒng)中產(chǎn)生和陰影化計算機圖形圖像的圖形流水線。定義了用于顯示的對象的幾何數(shù)據(jù)10被提供給幾何處理單元20,該幾何處理單元20從對象數(shù)據(jù)中獲得多個圖元。在該實施方式中,該幾何處理單元20包括鑲嵌單元,該鑲嵌單元從表面數(shù)據(jù)的補丁中獲得多個鑲嵌圖元。鑲嵌是已知的技術,該技術將低細節(jié)的模型分解為多個鑲嵌圖元,所述低細節(jié)的模型例如是更高階的表面,其一般在計算機圖形工業(yè)中被稱為“補丁”?!把a丁”通常為定義了一組控制點的多項式方程的函數(shù),這些控制點描述了關于變量“t”(用于二維曲線)或域坐標“u、v”(用于三維曲線)的曲線形狀。在計算機圖形中使用的補丁的一個示例是Bezier(貝塞爾)補丁,但本領域技術人員應當理解也存在其他補丁。目前,通常使用平面補?。╢latpatch),例如三角補丁,這些平面補丁被分成之后由函數(shù)進行位移和/或依賴位移高度圖的多個圖元來創(chuàng)建多個鑲嵌圖元。正如本領域技術人員已知的,圖形流水線中表面數(shù)據(jù)的補丁的鑲嵌能夠由多個應用編程接口(API)(例如,微軟11API)支持。微軟11API支持位移映射,藉此鑲嵌圖元可以處于距離補丁的表面位移后的位置處。在鑲嵌圖元已經(jīng)獲得之后,待修改的鑲嵌圖元被傳遞至修改單元30,該修改單元30可以包括編程元件。本領域技術人員應當理解,哪些圖元將被修改由圖形流水線確定。對于待修改的鑲嵌圖元中的每個鑲嵌圖元,修改單元30或者對圖元進行剔除,或者將修改函數(shù)應用至與該圖元相關聯(lián)的幾何數(shù)據(jù)以產(chǎn)生該圖元的一個或多個被幾何修改后的實例(修改后的圖元)。修改單元30可以應用任何幾何變換,包括轉化、旋轉或縮放變換,或這些變換的任意組合。關于應用什么樣的幾何變換,修改單元30可以是可編程的。每個修改后的圖元可以根據(jù)從中獲得該修改后的圖元的圖元(輸入圖元)而覆蓋圖像的整個不同區(qū)域,或者每個修改后的圖元所覆蓋的區(qū)域可以與由輸入圖元所覆蓋的圖像區(qū)域相重疊。在該示例中,所述函數(shù)產(chǎn)生多個修改后的圖元。多個修改后的圖元中的每個修改后圖元處于距離從中獲得這些修改后的圖元的圖元位置位移后的位置處。這些圖元可以被遞增地產(chǎn)生。例如,第一個產(chǎn)生的圖元可能最接近輸入圖元的位置,隨后產(chǎn)生的每個實例漸漸遠離輸入圖元的位置。但是,這僅僅是一個示例,并且這些修改后的圖元可以以任何次序或順序(包括任意的次序)產(chǎn)生。進一步地,應當理解的是,例如在散焦模糊應用中,多個修改后的圖元可以以與輸入圖元有小的偏移的方式被產(chǎn)生,而沒有必要以增加與輸入圖元的距離的方式被產(chǎn)生。修改單元可以將可編程函數(shù)應用于輸入圖元的頂點,或者將可編程函數(shù)應用于表面數(shù)據(jù)的補?。ㄝ斎雸D元從該表面數(shù)據(jù)的補丁中獲得)并接著對表面數(shù)據(jù)的修改后補丁進行鑲嵌以獲得輸入圖元的修改后實例。所產(chǎn)生的圖元被傳遞至圖塊化單元40,所述所產(chǎn)生的圖元包括未修改的和修改后的圖元??蛇x地,圖元可以首先被傳遞至修剪和剔除單元(未示出),該修剪和剔除單元移除了例如任意背向圖元(back-facingprimitive)、屏幕外圖元或不可見圖元,并且剩余的圖元然后可以被傳遞至投影單元(也未示出),該投影單元將圖元轉換到屏幕空間中。圖2是示出了由圖塊化單元40執(zhí)行的步驟的流程圖。首先,在步驟90,圖塊化單元40將屏幕空間視區(qū)圖像劃分成多個圖塊,每個圖塊包括多個圖像像素。圖塊通常為矩形,但也可以為其他形狀。在步驟100,對于每個圖塊,圖塊化單元40接著確定是否每個圖元都至少部分位于該圖塊中。也就是,是否圖元的至少一部分位于圖塊的可視區(qū)域中。這可以使用多個已知技術來進行。在步驟110,圖塊化單元40獲得對象列表,對于每個圖塊,該對象列表指示至少部分位于該圖塊中的圖元。即使沒有位于圖塊中的圖元并因而該圖塊的對象列表是空的,也會為那個圖塊創(chuàng)建對象列表。本領域技術人員還應當理解,有可能不是每個被確定為位于圖塊中的圖元實際上都在該圖塊的對象列表中被指示。例如,在圖塊化階段,可以確定圖元被圖塊中的其他圖元模糊化了,并因而該圖元在圖塊中是不可見的。該圖元可能因而不能在該圖塊的對象列表中被指示出,以節(jié)省以后不必要的處理該圖元的步驟。未修改的圖元可以以多種方式被指示出。優(yōu)選地,標識每個圖元的標識符被存儲在各自的對象列表中。每個圖元例如可以被分配索引,或者每個圖元頂點可以被分配索引。這些標識符可以為各個圖元或圖元頂點引入或提供至幾何數(shù)據(jù)的指針。但是,在該實施方式中,對于每個鑲嵌圖元而言,正如在申請人已公開的英國專利公開號No.2480012中所描述的那樣,不是存儲用于圖元的完整幾何數(shù)據(jù),而是存儲例如針對補丁的一組控制點和鑲嵌參數(shù)之類的數(shù)據(jù),根據(jù)該數(shù)據(jù)能夠隨后獲得那個圖元的幾何數(shù)據(jù)。圖3是示出根據(jù)本發(fā)明實施方式的用于指示修改后的圖元的方法的流程圖。在步驟120,每個修改后的圖元被分配了唯一標識符。例如,每個修改后的圖元可以被分配連續(xù)的整數(shù)。如果輸入圖元被分配了整數(shù)0,那么多個新的圖元實例可以分別被分配整數(shù)1,2,3,4……n。在步驟130,如果確定了其中一個或多個修改后的圖元至少部分位于圖塊內(nèi),那么,在步驟140,每個修改后圖元的唯一標識符被存儲在那個圖塊的對象列表中。僅以示出為目的,圖6a顯示了可以被存儲在圖5所示的圖塊3和4的對象列表中的信息。在該示例中,考慮圖元180(輸入圖元)被分配了標識符0。修改后的圖元190被分配了標識符1以及修改后的圖元200被分配了標識符2。在圖塊3的對象列表中,存儲了圖元180的標識符(0),還存儲了修改后的圖元200的標識符(1)。在圖塊4的對象列表中,存儲了修改后的圖元200的標識符(2)。圖4是根據(jù)本發(fā)明優(yōu)選實施方式的顯示了用于指示修改后的圖元的可替換方法的流程圖。在步驟150,如果確定了其中一個或多個修改后的圖元位于圖塊內(nèi),那么在步驟160,輸入圖元的標識符(一個/多個索引)被存儲在那個圖塊的對象列表中,其中從輸入圖元中可以產(chǎn)生那些修改后的圖元。換句話說,每個修改后的圖元可以被分配與輸入圖元相同的標識符(一個/多個索引)。例如,如果輸入圖元被分配了整數(shù)0,那么那個圖元的每個修改后的實例也可以被分配索引0。輸入圖元的一個/多個索引可以被存儲一次,以用于那個圖元的位于圖塊內(nèi)的每個修改后實例,但是優(yōu)選地,每個列表僅存儲輸入圖元的一個/多個索引一次,而不管那個圖元的位于特定圖塊內(nèi)的實例的數(shù)量。圖6b顯示了在該優(yōu)選實施方式中可以被存儲在圖5中的圖塊3和4的對象列表中的信息。在圖塊3的對象列表中,存儲了圖元180的標識符(0)。應當注意的是,在該示例中,僅存儲圖元180的標識符(0)一次,雖然圖元180和從圖元180獲得的修改后圖元190二者都位于圖塊3內(nèi)。在圖塊4的對象列表中,圖元180的標識符(0)也被存儲。在該實施方式中,不能從圖塊的對象列表中識別出在對象列表中被標識出的哪個或者多少個圖元實例是位于該圖塊內(nèi)的。但是,盡管如此,該實施方式具有以下優(yōu)勢:如果輸入圖元的實例中的至少一個實例位于圖塊內(nèi),則從中獲得修改后的實例的該輸入圖元在對象列表中被標識出,而不管該輸入圖元自身是否位于該圖塊內(nèi)。因而,與以上實施方式類似,所有位于該圖塊內(nèi)的修改后圖元可以被處理以使用其對象列表精確地對圖塊進行陰影化。此外,該優(yōu)選實施方式使得存儲在對象列表中的數(shù)據(jù)能夠以高度壓縮格式進行存儲。如以下更加詳細描述的那樣,為了對圖塊進行陰影化,相同的修改函數(shù)被再次應用至在對象列表中所標識的每個圖元。接著,一旦修改后的圖元已經(jīng)被重新產(chǎn)生,那么哪些圖元位于圖塊內(nèi)(如果有的話)就可以使用以上描述的已知技術來確定。然而,該實施方式是有缺點的,即不僅必須重新產(chǎn)生任何位于圖塊內(nèi)的修改后圖元,而且會不必要地計算實際上未位于圖塊內(nèi)的修改后圖元。假定每個圖元可以具有幾百或幾千個修改后實例,那么這會帶來巨大的計算資源浪費。優(yōu)選地,包括多個比特的標記因而被存儲在圖塊的對象列表中或被存儲在存儲器的另一區(qū)域中,該標記用于指示在對象列表中所標識的哪些圖元在該圖塊內(nèi)具有修改后實例。這避免了必須將修改函數(shù)再次應用至對象列表中所標識的所有圖元,同時保留了能夠?qū)ο罅斜碇械臄?shù)據(jù)以高度壓縮格式進行存儲的優(yōu)勢。如以上提到的,修改后的圖元經(jīng)常被遞增地產(chǎn)生,以使一個修改后的圖元根據(jù)輸入圖元創(chuàng)建,并且接著第二個修改后的圖元根據(jù)該修改后的圖元創(chuàng)建,等等,直至修改后的圖元的序列已經(jīng)被獲得。在該實施方式中,更優(yōu)選地,除了存儲標識了圖元(從該圖元中獲得修改后的圖元的序列)的標識符之外,還存儲了指示位于圖塊內(nèi)的這些修改后的圖元的序列中的第一個和/或最后一個位置的數(shù)據(jù)。該數(shù)據(jù)可以被存儲在該圖塊的對象列表中或存儲在存儲器的另一區(qū)域中。該實施方式具有以下優(yōu)勢:在修改后的圖元的序列的子集位于特定圖塊內(nèi)的情況下,不是所有的修改后圖元的序列都需要相對于那個圖塊被重新獲得,如以下更具體解釋的那樣。但是,存在著這樣的折衷:需要為在對象列表中被標識的每個圖元存儲用于指示第一個和/或最后一個序列位置的數(shù)據(jù)。在該描述的實施方式中,在圖元為鑲嵌圖元的情況下,本領域技術人員應當理解,可以具有由每個補丁所產(chǎn)生的幾千個圖元。為每個圖元存儲該位置數(shù)據(jù)將需要大量的存儲器。申請人因此已經(jīng)意識到,在該實施方式中,一個很好的折衷辦法是確定位于圖塊內(nèi)的任何修改后圖元的最高和/或最低序列位置,這些修改后圖元從鑲嵌圖元中獲得,這些鑲嵌圖元從表面數(shù)據(jù)的補丁中獲得。這意味著對于整個補丁而言,需要每個圖塊存儲僅兩個整數(shù)。該技術可能導致產(chǎn)生更多不需要的修改后圖元,但需要較少存儲器,同時避免了重新獲得一些不需要的修改后圖元。在一些實施方式中,可能存在著不止一種類型的修改單元30,該修改單元30將不同的修改函數(shù)應用至輸入圖元。在這些實施方式中,優(yōu)選地,每個修改函數(shù)被分配了標識符,并且標識了修改函數(shù)的標識符被存儲起來,其中,該修改函數(shù)產(chǎn)生位于特定圖塊內(nèi)的修改后的圖元。該標識符可以被存儲在該圖塊的對象列表中或被存儲在其他位置。在這些實施方式中,指示修改后的圖元的序列中的第一和/或最后位置的數(shù)據(jù)可以關于每個修改單元而被存儲。可以例如以本領域技術人員公知的方式通過使用索引/頂點緩沖器來壓縮索引的列表。申請人的未公開英國專利申請No.1104066.4描述了多種用于壓縮由表面數(shù)據(jù)補丁的鑲嵌而獲得的鑲嵌圖元的索引列表的技術,這些技術利用了表面數(shù)據(jù)的鑲嵌補丁的內(nèi)部結構知識。應當理解的是,為修改后的圖元分配與輸入圖元相同的一個/多個索引的重大意義在于可以使用相同的壓縮技術來壓縮所述一個/多個索引。對象列表50可以被存儲在存儲器中,例如緩沖器中。返回參照圖1,在本發(fā)明的優(yōu)選實施方式中,為了對每個圖塊進行陰影化以用于顯示,圖塊的對象列表被讀取,并且在必要時,存儲在對象列表中的索引列表被解壓縮。在該實施方式中,鑲嵌圖元的索引和相關聯(lián)的補丁數(shù)據(jù)和鑲嵌因子被傳遞至鑲嵌單元(未示出)。鑲嵌單元對表面數(shù)據(jù)的補丁進行再次鑲嵌以獲得在對象列表中被標識的鑲嵌圖元的幾何數(shù)據(jù)。修改函數(shù)接著可以被修改單元60再次應用于與其中一個或多個圖元相關聯(lián)的幾何數(shù)據(jù)以重新獲得一個或多個修改后的圖元,例如,在讀取了用于指示該圖元的修改后實例位于圖塊內(nèi)的數(shù)據(jù)的情況下。修改單元60可以是與修改單元30相同的單元或可以是單獨的單元,該單獨的單元與修改單元30應用相同的修改函數(shù)。在在圖塊化之前使用應用不同修改函數(shù)的多個修改單元產(chǎn)生修改后圖元的情況下,應當理解的是,在圖塊化之前,修改單元60必須應用與被應用至輸入圖元的函數(shù)相同的修改函數(shù)??梢酝ㄟ^例如讀取該圖元的修改函數(shù)標識符來確定哪個修改函數(shù)應該被應用。如以上所提到的,一些修改單元可以遞增地進行操作,并且即使已知圖元的哪些實例位于特定圖塊內(nèi),也不可能僅產(chǎn)生這些實例。在這種情況下,由修改單元60產(chǎn)生的所有修改后實例可以被存儲在本地存儲器中,例如高速緩存中。這具有以下優(yōu)勢:在這些實例遍布一個以上的圖塊的情況下,關于另一圖塊,修改單元可以不需要針對相同的圖元被應用第二次。在修改單元60被應用于在對象列表中所標識的圖元之前,可以確定修改后的圖元實例是否已經(jīng)被存儲在高速緩存中。如果是的話,對于那個圖元而言,就不需要再次重新應用修改單元60。在可替換的實施方式中,修改單元60可以在位于特定圖塊內(nèi)的最后一個圖元已經(jīng)被產(chǎn)生之后被停止。這例如可以通過讀取指示出序列中位于該圖塊內(nèi)的最后一個圖元的數(shù)據(jù)來確定。在該實施方式中,修改單元60的狀態(tài)以及最后產(chǎn)生的修改后圖元可以被存儲起來,以使修改單元能夠從已經(jīng)針對另一圖塊而停止的地方繼續(xù)執(zhí)行。因而,例如在前100個修改后圖元已經(jīng)被產(chǎn)生且接著隨后的圖塊需要第101個修改后圖元的情況下,修改單元并不需要從起始處開始重新獲得修改后圖元的序列。位于特定圖塊內(nèi)的第一個修改后圖元可以通過讀取指示出序列中位于圖塊內(nèi)的第一個修改后圖元的位置的數(shù)據(jù)來確定。在該可替換的實施方式中,在修改單元60被應用于在對象列表中標識的圖元之前,可以確定是否具有相同標識符的任意修改后圖元都被存儲在高速緩存中。如果是的話,可以提取序列中與所需要的修改后圖元最接近的修改后圖元,并且,在修改單元的狀態(tài)已經(jīng)被存儲的情況下,修改單元可以從該修改后圖元繼續(xù)執(zhí)行直至產(chǎn)生所需要的修改后圖元。在修改后圖元必須被遞增地產(chǎn)生的應用中,序列中較早的最接近的修改后圖元可以不必是最接近的修改后圖元。一旦修改后的實例已經(jīng)被重新產(chǎn)生,則如果必要的話,哪些實例位于特定圖塊中可以使用以上描述的已知技術來確定。對于每個圖塊,在針對位于該圖塊中的每個修改后圖元和未修改后圖元的數(shù)據(jù)已經(jīng)被獲得之后,圖元可以被處理以使用已知技術來渲染圖像。例如,圖元可以被傳遞至隱藏面消除單元70,該隱藏面消除單元70消除了圖塊中不可見的任何表面,并且所得到的像素數(shù)據(jù)可以被傳遞至紋理和陰影化單元80,在用于顯示的最終像素值被寫入存儲器之前,該紋理和陰影化單元80應用像素或紋理陰影化。