TWI581209B - 景深消隱方法、使用景深消隱的三維圖形處理方法及其裝置 - Google Patents
景深消隱方法、使用景深消隱的三維圖形處理方法及其裝置 Download PDFInfo
- Publication number
- TWI581209B TWI581209B TW101108287A TW101108287A TWI581209B TW I581209 B TWI581209 B TW I581209B TW 101108287 A TW101108287 A TW 101108287A TW 101108287 A TW101108287 A TW 101108287A TW I581209 B TWI581209 B TW I581209B
- Authority
- TW
- Taiwan
- Prior art keywords
- depth
- field
- tile
- value
- field value
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
- G06T15/405—Hidden part removal using Z-buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
本發明是有關於一種三維圖形處理技術,且特別是有關於一種景深消隱(coarse Z culling)方法、使用景深消隱的三維圖形處理方法及其三維圖形處理裝置。
景深緩衝(depth buffing)技術,或稱為Z緩衝(Z-buffing)、Z測試(Z-testing),是三維(three-dimension,3D)圖形處理中用來解決圖形景深座標的過程,其可確定在三維場景中被渲染場景的哪些部分將會被看見而顯示,而哪些部分將會被隱藏。
舉例來說,當支援景深緩衝技術的圖形處理器(Graphic Processing Unit;GPU)在渲染三維圖形的立體物件時,經處理後的每一個像素通常皆具有一Z值,藉以表示此像素所表示之立體物件在螢幕上的「景深值」。這些Z值便會保存在相對應位置的緩衝區中,這個緩衝區則被稱為Z緩衝區或者景深緩衝區(depth buffer)。景深緩衝區通常以像素的X軸及Y軸座標來形成用以保存每個像素景深值的二維陣列。如果場景中的另一個立體物件也在同一個像素生成渲染像素時,那麼圖形顯示卡就會比較二者的景深值,並保留距離觀察者較近的物件,並且被保留的像素景深保存到景深緩衝區中。上述的景深緩衝技術亦可稱為或景深消隱或Z消隱(Z-culling)。
然而,上述的景深緩衝演算法必須先行計算好該立體物件的像素資料及其景深值,並且不管觀賞者最終看得見或看不見該立體物件,都必須先取出景深暫存器中的像素景深,並與計算後像素資料的景深值進行比較,這需要佔用系統記憶體相當大的頻寬(bandwidth),導致系統記憶體與圖形處理器之間的頻寬經常成為影響圖形處理速度的主要瓶頸,特別是現今的三維場景通常具有相當高的深度複雜度(depth complexity)。因此,如何解決景深緩衝區的傳輸量便成為三維圖形處理技術中欲待解決的問題。
為了減少對於景深緩衝器的存取,改善景深緩衝所存在的問題,因而發展出許多方法來解決此問題,粗略景深消隱(coarse Z culling)技術便是其中一種方式。粗略景深消隱技術利用將螢幕上進行柵格化(rasterize)以切割形成大小相同的影磚(tile)來,從而對立體物件進行標識,並在系統記憶體中設立景深消隱緩衝區,藉以記錄每個影磚內圖像的最大景深值、最小景深值等屬性參數。當有新的立體物件進行處理時,粗略景深消隱技術便從系統記憶體中讀取上述屬性參數來判斷影磚內的立體物件是否已被遮蔽,進而直接剔除被遮蔽的部分。
然而,現有粗略景深消隱技術在處理過程中時常對系統記憶體中的景深消隱緩衝區進行存取,因此還是會佔去了相當比重的頻寬。並且,現有粗略景深消隱技術在其處理運算過程中(例如,確定景深的相對位置關係時)大多存在龐大且複雜的算式、以及多樣繁複的判斷,並具備有大量的數值比較。為了兼顧運算速度,演算法上需要同時進行的算式也會造成硬體實現上的複雜度。藉此,如何持續降低系統記憶體的頻寬使用率,並可同時降低其運算複雜度,便是三維圖形處理技術中所欲待解決的問題。
本發明提供一種景深消隱方法,藉由增加專屬的景深快取記憶體,使其能夠利用此快取記憶體來降低對於系統主記憶體的讀寫頻率,藉以有效地降低對系統記憶體的存取次數,並減少系統記憶體的頻寬佔用。
此外,本發明提供一種使用景深消隱的三維圖形處理方法,其中的景深消隱程序可利用專屬的景深快取記憶體來降低對於系統主記憶體的讀寫頻率,藉以有效地降低對系統記憶體的存取次數,減少系統記憶體的頻寬佔用,提升即時圖形處理的速度。
以另一方面而言,本發明提供一種使用景深消隱的三維圖形處理裝置,其內的景深消隱模組可利用專屬的景深快取記憶體來降低對於系統主記憶體的讀寫頻率,藉以有效地降低對系統記憶體的存取次數,減少系統記憶體的頻寬佔用,提升即時圖形處理的速度。
藉此,本發明提出一種景深消隱方法,適用於三維圖形處理裝置,並且此景深消隱方法包括下列步驟。提供一景深快取記憶體,藉以暫存螢幕在柵格化後每一個影磚中至少一個影磚所對應的覆蓋遮罩以及其待定最大景深值,而螢幕可柵格化為多個影磚。上述的覆蓋遮罩用以表示上述影磚中已知部分的像素位置,上述的待定最大景深值則是已知部分中每一個像素與觀察者視點之間各個景深距離的最大值。
並且,獲得依據上述影磚及圖塊所計算得到的繪製遮罩(draw mask)、繪製最大景深值及繪製最小景深值,上述圖塊是用來組建三維圖形的一平面(例如一三角型)投影至上述影磚的像素,而上述的繪製遮罩則可表示出上述圖塊在影磚當中的像素位置。上述的繪製最小景深值則是圖塊中每一個像素與觀察者視點之間各個景深距離的最小值,上述的繪製最大景深值則是圖塊中每一個像素與觀察者視點之間各個景深距離的最大值。以及,判斷上述已知部分的像素位置是否完全包括上述圖塊的像素位置,並且配合繪製最小景深值與待定最大景深值的比較,藉此便可決定是否刪去上述圖塊,並可決定是否更新上述景深快取記憶體中暫存的覆蓋遮罩以及待定最大景深值。
在本發明之一實施例中,景深消隱方法更包括下列步驟。當上述的景深快取記憶體已滿時,則把景深快取記憶體中的資料回存至三維圖形處理裝置的系統記憶體中。
於另一觀點而言,本發明提出一種使用景深消隱的三維圖形處理方法,其可適用於三維圖形處理裝置上,藉以將三維場景顯示於螢幕上,而此三維圖形處理方法包括下列步驟。拆解三維場景以形成多個平面(例如多個三角形),並將螢幕柵格化(rasterize)而形成多個影磚,以計算產生對應上述影磚及圖塊的繪製遮罩、繪製最大景深值及繪製最小景深值,並將上述繪製遮罩及其繪製最大景深值與繪製最小景深值儲存於三維圖形處理裝置的系統記憶體中。此外,依據上述繪製遮罩、繪製最大景深值、繪製最小景深值及一景深快取記憶體進行一景深消隱程序,藉以決定是否刪去上述的圖塊。以及,當確定保留此圖塊時,依據保留的圖塊進行一像素渲染程序。
其中,上述的景深消隱程序可包括下列步驟。提供上述之景深快取記憶體,藉以暫存上述每一個影磚所對應的覆蓋遮罩以及待定最大景深值。獲得上述影磚及圖塊所對應的繪製遮罩、繪製最大景深值及繪製最小景深值。並且,判斷上述已知部分的像素位置是否完全包括圖塊的像素位置,並配合繪製最小景深值與待定最大景深值的比較,藉以決定是否將圖塊刪去,並藉以決定是否更新景深快取記憶體的覆蓋遮罩以及待定最大景深值。
於其他觀點而言,本發明提出一種使用景深消隱的三維圖形處理裝置,藉以將三維場景顯示於螢幕上。三維圖形處理裝置包括有幾何轉換模組、系統記憶體、景深消隱引擎、景深緩衝引擎以及像素渲染引擎。幾何轉換模組用以拆解三維場景而形成多個平面(例如,三角形),並將螢幕柵格化為多個影磚,以計算產生對應上述影磚及圖塊的繪製遮罩、繪製最大景深值及繪製最小景深值,其中,圖塊是上述平面投影至影磚的像素資訊。系統記憶體可儲存上述的繪製遮罩及其繪製最大景深值與繪製最小景深值。景深消隱引擎則依據繪製遮罩、繪製最大景深值及繪製最小景深值來進行景深消隱程序,藉以決定是否刪去上述圖塊。景深緩衝引擎利用未被刪去的圖塊來進行景深緩衝程序,藉以更新影磚中的像素。像素渲染引擎則依據已更新的影磚像素來進行像素渲染程序。
其中,上述景深消隱引擎包括有景深讀取模組、景深快取記憶體、景深測試模組及景深更新模組。景深讀取模組從系統記憶體中獲得上述影磚及其圖塊所對應的繪製遮罩、繪製最大景深值及繪製最小景深值。景深快取記憶體則可暫存上述影磚所對應的覆蓋遮罩以及待定最大景深值。景深測試模組判斷上述之已知部分的像素位置是否完全包括上述之圖塊的像素位置,並配合繪製最小景深值與待定最大景深值的比較,藉以決定是否刪去圖塊。景深更新模組則利用景深測試模組的決定結果,藉以更新景深快取記憶體的覆蓋遮罩以及待定最大景深值。
基於上述,本發明實施例在景深緩衝模組中增加了專屬的景深快取記憶體,使得在進行景深消隱方法時,能夠利用此快取記憶體來降低對於系統主記憶體的讀寫頻率。換句話說,以往在進行景深消隱方法時,必須經常讀寫系統記憶體中的景深緩衝區。本實施例將景深緩衝區中經常被讀寫的資訊(例如遮罩、景深資料等)轉移至快取記憶體進行處理,有效地降低對系統記憶體的存取次數,因而減少了系統記憶體的頻寬佔用。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
現將詳細參考本發明之示範性實施例,在附圖中說明所述示範性實施例之實例。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/符號代表相同或類似部分。
以目前的三維圖形處理方法中,景深緩衝技術通常會區分為兩個部分來進行。於第一部分中,首先會以螢幕上的影磚(tile)為單位將三維場景進行標識,藉以概略性地識別各個影磚中三維場景的大致位置,並且判斷這些三維場景是否已被完全遮蔽,此部分被稱為粗略景深消隱程序、或稱為景深消隱程序。在執行完第一部分之後,本實施例會以像素(pixel)為單位來比對出每個三維場景的遮蔽狀況,從而進行更為精細的景深緩衝程序,也就是所述的第二部份。
於部分實施例中,當進行完上述的景深消隱程序後,亦可直接以像素為單位具體地繪製出每個三維場景的像素內容。換句話說,部分實施例在執行完景深消隱程序後,可直接進入像素渲染程序,以具體繪製出每個像素中的三維場景,因此第二部分也可以是像素渲染程序。這兩部分的三維圖形處理方法相互獨立,並且各自具有完整的處理流程。因此,於本發明實施例以下的揭示內容中,主要描述的是上述第一部分的景深消隱程序,在此先行敘明。
圖1為投影於螢幕100之三角形110及三角形120的範例示意圖,圖2為圖1之影磚(8,5)的立體透視圖。由於三角形的幾何特性,例如三角形的三個頂點位於一共同平面,因此立體物件可由數目眾多的三角形為基礎進行表示。在此以三角形110及120作為立體物件的舉例,這兩個三角形110及120有部分重疊,三角形110位在前面而遮蔽住與三角形120相重疊的區域。三維圖形處理方法可將三角形110及120進行柵格化處理,如圖1中的柵格線所示,換句話說,可以將螢幕分割成多個大小相同的影磚(tile),例如影磚(8,5),並依據這些影磚來投影轉換三角形110及三角形120。一般而言,影磚可為邊長8像素乘8像素(8×8)的矩形區域,但應用本實施例者可依據其設計需求來調整影磚的區域大小,並不依此為限。
為了方便說明,在此將圖1的影磚(8,5)以景深方向透視方式繪示於圖2中,景深值(Z)從接近觀賞者視點的"0"延伸至背景的"F"(亦表示為無窮遠處)。往景深方向看去,位在影磚(8,5)中之三角形110的圖塊210將會覆蓋住影磚(8,5)中之三角形120的圖塊220。景深消隱技術可提供位在系統記憶體中的一景深消隱緩衝區,藉以儲存每個影磚的最大景深值、覆蓋遮罩CM或甚至是繪製遮罩DM等屬性參數。
其中,上述的最大景深值便是對應的影磚在經過各個圖塊的繪製之後,目前最接近觀察者視點、並且尚未被覆蓋的圖塊當中的每一個像素與觀察者視點之間的景深距離最大值。覆蓋遮罩CM(cover mask)則表示為對應的影磚中已繪製過的像素位置。於本實施例與下述各個實施例中,在此將已繪製過的像素位置稱為已知部分KP(known part)。繪製遮罩DM(draw mask)則是指本次進行繪製的圖塊在對應的影磚中所投影的像素位置。以下舉例以說明景深消隱緩衝區中的各項參數,藉以更為了解本實施例。
假設三維圖形處理方法先行處理三角形110,而圖塊210的最小及最大Z值分別為"0.2"及"0.4",因此景深消隱緩衝區(8,5)中最大景深值的欄位被更新為"0.4",並且景深消隱緩衝區(8,5)的覆蓋遮罩CM欄位則如圖3所示進行更新,圖3為覆蓋遮罩CM及繪製遮罩DM的示意圖。由於影磚為8×8像素的矩形區域,因此覆蓋遮罩CM及繪製遮罩DM皆為8×8遮罩。本實施例在覆蓋遮罩CM及繪製遮罩DM的欄位中,"1"表示影磚(8,5)中此位置的像素已進行處理繪製,並具有不是位在無窮遠處的景深值。而"0"則表示此位置的像素尚未被描繪,其景深值可設置為無窮遠。這裡"0"和"1"僅起到標識作用,用以指示出此像素位置是否存在有物體,並不指示出物體的景深位置。標示像素為“1”的區域可形成圖塊210(亦可稱為本實施例所述之已知部分),但非以限定本發明,其他應用亦可以以"1"表示尚未被描繪的像素位置,而"0"則表示已進行處理繪製的像素位置。
相對而言,正在進行繪製之圖塊220的最小及最大Z值分別為"0.6"及"0.8",並且圖塊220的繪製遮罩DM如圖3所示。藉此,在繼續處理三角形120時,三維圖形處理方法會提供圖3之圖塊220所對應的繪製遮罩DM,以及其所有像素中的最小Z值"0.6"及最大Z值"0.8"。藉此,利用覆蓋遮罩CM及繪製遮罩DM進行比較,由於圖塊220在螢幕上的二維像素位置(在此簡稱為圖塊220的像素位置)包括了先前已被繪製處理之圖塊210的像素位置,而且圖塊220的最小Z值"0.6"大於景深消隱緩衝區(8,5)中的最大Z值欄位"0.4",亦即圖塊220的最小Z值"0.6"已大於圖塊210的最大景深值,因此可知圖塊220已被圖塊210完全遮蔽,則本發明的景深消隱方法便可直接將圖塊220剔除,不需利用此圖塊220進行接下來的景深緩衝程序。
本發明實施例還在景深消隱模組中增加一個專屬的景深快取記憶體,將經常需要讀寫的資料資訊(例如遮罩、景深資料等)轉移至此快取記憶體進行處理,使其能夠利用此快取記憶體來降低對於系統主記憶體的讀寫頻率,藉以有效地降低對系統記憶體的存取次數,並減少系統記憶體的頻寬佔用。藉此,便可解決在現有技術中,由於景深消隱緩衝區是建立在系統記憶體內,而使得上述的景深消隱程序在執行過程中亦需時常對景深消隱緩衝區進行存取,所以會佔去相當比重的頻寬這一問題,同時也節省了景深消隱模組的運算時間以及減少所消耗的頻寬。
為實現本發明實施例,在此以圖4的電腦系統40作為舉例,圖4是電腦系統40的方塊圖。於本實施例中,電腦系統40可為個人電腦、筆記型電腦、電子遊戲機或相關硬體。電子裝置40包括有中央處理單元410、顯示裝置420、電腦記憶體430及顯示單元440。
中央處理單元410控制電腦系統40的運作,例如執行程式、資訊處理及運算,並可將運作期間所需的程式碼、資訊及數據暫存於電腦記憶體430中。顯示裝置420(例如顯示卡)則是專門進行影像、圖形的運算處理及畫面顯示,其利用處理器介面450、記憶體介面460及顯示控制介面470等橋接介面來分別耦接至中央處理單元410、電腦記憶體430及顯示單元440(例如液晶平面顯示器)。於本實施例中,顯示裝置420更包含有三維圖形處理裝置480,其特別針對三維圖形進行運算處理,藉以實現本實施例所述之景深消隱方法及使用景深消隱的三維圖形處理方法。
圖5是依照本發明實施例所述之三維圖形處理裝置480的方塊圖,圖6是依照本發明實施例所述之三維圖形處理方法的流程圖。請參照圖4及圖5,耦接至系統記憶體590的三維圖形處理裝置480可將三維場景顯示於圖4之顯示單元440的螢幕上,三維圖形處理裝置480包括有幾何轉換模組510、景深消隱引擎520、景深緩衝引擎570以及像素渲染引擎580,並且系統記憶體590中包括有景深消隱緩衝區525及景深緩衝區575,藉以執行圖6所述之三維圖形處理方法。
景深消隱引擎520則包括有景深讀取模組530、景深快取記憶體540、景深測試模組550及景深更新模組560,藉以實現圖6之步驟S620以及步驟S630所述之景深消隱方法。其中,系統記憶體590可以是電腦系統40的電腦記憶體430,亦可以為顯示裝置420上專門用於三維影像處理的顯示記憶體,本實施例並不限制於此。
此外,由先前的揭示中可知,部分實施例的三維圖形處理裝置480在利用景深消隱引擎520執行完景深消隱程序後,可直接藉由像素渲染引擎580來進行像素渲染程序,以具體繪製出每個像素中的三維場景,而不需要再次進行後續的像素景深緩衝程序。因此,部分實施例的三維圖形處理裝置480可以不需要景深緩衝引擎570,亦可以不執行圖6的步驟S630。
在此以圖5的三維圖形處理裝置480配合圖6說明本實施例的三維圖形處理方法。於步驟S610中,幾何轉換模組510拆解三維空間的立體物件而形成多個基本元素(primitives),這些基本元素可由點、線段、平面(例如,三角形)或多邊形來形成,並可由基本元素的頂點來定義。本實施例以三角形作為上述基本元素的舉例。幾何轉換模組510拆解上述三維空間的立體物件以形成多個三角形,並將螢幕進行柵格化程序以使其切割形成多個影磚,藉以將上述三角型投影到螢幕的影磚上,從而取得每個影磚所對應的圖塊(例如,圖2及圖3中所繪示,位於影磚(8,5)內三角形110及120分別對應的圖塊210及220),換句話說,這些圖塊是用來組建三維場景的三角形中的一部分,並且這些圖塊為三角形投影在螢幕上且位於影磚中的像素。
此外,幾何轉換模組510利用影磚及圖塊來計算產生繪製遮罩DM、繪製最大景深值ZDMAX以及繪製最小景深值ZDMIN。繪製遮罩DM則如圖3及其說明中所述,其可標示出正在繪製的圖塊在影磚當中的像素位置,在此不再贅述。繪製最小景深值ZDMIN則是圖塊當中的每一個像素與觀察者視點(觀察者視點例如是Z等於"0"的位置)之間各個景深距離的最小值。繪製最大景深值ZDMAX則是圖塊當中的每一個像素與觀察者視點之間各個景深距離的最大值。
接著,於步驟S620中,景深消隱引擎520獲得計算出的繪製遮罩DM、繪製最大景深值ZDMAX及繪製最小景深值ZDMIN,並依據繪製遮罩DM、繪製最小景深值ZDMIN、繪製最大景深值ZDMAX及景深快取記憶體540的相關遮罩、景深資訊,進行本發明實施例所述之景深消隱程序,從而決定是否刪去相應的圖塊。圖6步驟S620所述的景深消隱程序亦即本實施例所述的景深消隱方法,其詳細致動方法將於圖7說明之。
回到圖6的步驟S630,景深緩衝引擎570耦接至景深消隱引擎520,並且當確定保留而不刪去相應的圖塊時,景深緩衝引擎570則可利用此未被刪去而保留住的圖塊,並配合系統記憶體590中的景深緩衝區575來進行一景深緩衝程序,藉以更新影磚中的像素。接著,進入步驟S640,耦接至景深緩衝引擎570的像素渲染引擎580依據已更新的影磚像素進行一像素渲染程序,以將已更新的影磚像素顯示於圖4之顯示單元440的螢幕上。
在此詳細說明本實施例的景深消隱程序,圖7是圖6之步驟S620的流程圖。在此以圖5的景深消隱引擎520配合圖7來說明景深消隱程序。
於步驟S710中,景深消隱引擎520提供有一景深快取記憶體540,此景深快取記憶體540具有多條快取線(cache line),每條快取線可暫存每個影磚所對應的覆蓋遮罩CM、待定最大景深值ZPMAX以及輸出最大景深值ZOMAX。其中,待定最大景深值ZPMAX表示在影磚的各個圖塊中的每一個像素與觀察者視點之間各個景深距離的最大值。輸出最大景深值ZOMAX則是在對應的影磚已全部畫滿時使用的一個參數。當影磚中的每一個圖塊都有不是位在無窮遠處的景深值時,便會將此時的待定最大景深值ZPMAX的值儲存為上述的輸出最大景深值ZOMAX,並使用此輸出最大景深值ZOMAX進行後續的三維圖形處理程序。
圖8是景深快取記憶體540中快取線的欄位圖,於本實施例中,由於影磚為8×8像素的矩形區域,因此覆蓋遮罩CM的欄位便為64位元(64-bit),每一位元對應一個像素的遮蔽狀態,亦即,"1"表示此像素被遮蔽,而"0"則表示此像素未被遮蔽,藉此,便可從覆蓋遮罩CM得知已知部分KP的像素位置。待定最大景深值ZPMAX以及輸出最大景深值ZOMAX於本實施例中皆為16位元(16-bit)。以圖1中的影磚(8,5)為例,由於先計算圖塊210(亦即,上述的已知部分KP),所以其對應影磚的覆蓋遮罩CM如圖3中所示,待定最大景深值ZPMAX設定為"0.4"。並且,由於影磚(8,5)沒有被畫滿,所以暫時不會使用輸出最大景深值ZOMAX,因而將其初始設為"0",但是本發明不局限於此。由於當影磚畫滿時,會將待定最大景深值ZPMAX的值導入輸出最大景深值ZOMAX當中,初始化的值(例如上述的"0")會被覆蓋,所以可將輸出最大景深值ZOMAX的值初始化為任意值。
回到圖5及圖7,接著進入步驟S715,景深讀取模組530獲得由圖6之步驟610計算產生的繪製遮罩DM、繪製最大景深值ZDMAX及繪製最小景深值ZDMIN,便可以依據繪製遮罩DM得知位在影磚中所欲更新的圖塊DP。在此仍以圖1中的影磚(8,5)為例,當開始進行圖塊220繪製的時候,其繪製遮罩DM如圖3所示,因此所述的圖塊DP便是圖塊220,其繪製最大景深值ZDMAX設定為"0.6",其繪製最小景深值ZDMIN則設定為"0.8"。接著,景深測試模組550判斷已知部分KP是否佔滿整個影磚(步驟S720)。
若已知部分KP並沒有佔滿整個影磚,如本例中的圖塊210沒有占滿整個影磚,則景深測試模組550繼續判斷已知部分KP的像素位置是否完全包括圖塊(drawn part)DP的像素位置(步驟S730)。例如,在本例中,判斷圖塊210(已知部分KP)是否完全包括圖塊220(圖塊DP)。於本實施例中,景深測試模組550可將覆蓋遮罩CM及繪製遮罩DM進行一邏輯與(&)的動作。若邏輯與的結果等於繪製遮罩DM時,便表示已知部分KP的像素位置已完全包括圖塊DP的像素位置(由步驟S730進入步驟S732),如本例中圖塊210(已知部分KP)已完全包括圖塊220(圖塊DP)。反之,若邏輯與的結果不等於繪製遮罩DM時,則表示已知部分KP的像素位置並沒有完全包括圖塊DP的像素位置(由步驟S730進入步驟S740),例如,請參見圖1的影磚(7,3)。
於步驟S732中,景深測試模組550便在繪製最小景深值ZDMIN大於待定最大景深值ZPMAX的時候(由步驟S732進入步驟S734),判斷上述的圖塊DP會被已知部分KP遮蓋,因此將圖塊DP忽略或刪去,使其不需進行接續的圖形處理。正如本例中,繪製最小景深值ZDMIN"0.6"大於待定最大景深值ZPMAX"0.4",則證明圖塊220(圖塊DP)被圖塊210(已知部分KP)遮蓋,因此將圖塊220(圖塊DP)刪去。
相對地,若繪製最小景深值ZDMIN並沒有大於待定最大景深值ZPMAX,則不刪去圖塊DP,並由步驟S732進入步驟S736,景深測試模組550判斷圖塊DP的像素位置是否與已知部分KP的像素位置相同,若步驟S736為否,則直接進入步驟S750。相對地,若步驟S736為是,景深更新模組560則將繪製最大景深值ZDMAX與待定最大景深值ZPMAX兩者之間的最小值存入並更新待定最大景深值ZPMAX(步驟S738),並進入步驟S750。上述步驟S738亦可表示為方程式(1):
ZP MAX =min(ZP MAX ,ZD MAX )...............................(1)
回到步驟S730,若已知部分KP的像素位置並未完全包括圖塊DP的像素位置,例如,圖1的影磚(7,3),則不刪去圖塊DP,並進入步驟S740,景深更新模組560則將繪製最大景深值ZDMAX與待定最大景深值ZPMAX兩者之間的最大值存入並更新待定最大景深值ZPMAX(步驟S740),然後進入步驟S750。藉此,上述步驟S740亦可表示為方程式(2):
ZP MAX =max(ZP MAX ,ZD MAX )...............................(2)
接著,在步驟S750中,景深更新模組560便將未被刪去(或是已被保留)的圖塊DP及已知部分KP的聯集作為調整後的已知部分KP,藉以更新覆蓋遮罩CM。於本實施例中,景深更新模組560可利用覆蓋遮罩CM及繪製遮罩DM的進行一邏輯或(|)後的結果存入覆蓋遮罩CM,藉以完成步驟S750。
於本實施例的步驟S760中,若已知部分KP已佔滿整個影磚時,也就是更新後的覆蓋遮罩CM之每個位元皆為"1"時,表示此影磚已沒有位於無窮遠處的像素,景深更新模組560便可將待定最大景深值ZPMAX存入輸出最大景深值ZOMAX。這時由於整個影磚中所有的像素的景深值都不是無窮遠,即該影磚中的每一個像素點都有物體,所以,使用輸出最大景深值ZOMAX來代表整個影磚的景深,在一些特殊的情況下,會使計算更為簡便,下文中將詳細描述這種情況。
藉此,若下次亦由步驟S715中讀取此影磚對應的繪製遮罩DM及其繪製最大景深值ZDMAX與繪製最小景深值ZDMIN,並判斷已知部分KP已佔滿整個影磚時(步驟S720),景深測試模組550便可利用繪製最小景深值ZDMIN是否大於輸出最大景深值ZOMAX(步驟S770),藉以比較出圖塊DP是否已被已知部分KP所遮蔽,從而進入步驟S780以直接刪去此圖塊DP。反之,如果步驟S770為否,則尚需進入步驟S730以續行此景深消隱方法。
另一方面,取決於景深快取記憶體540的容量或是景深快取記憶體540中快取線的數量,景深快取記憶體540不一定可以將每個影磚的覆蓋遮罩CM、待定最大景深值ZPMAX及輸出最大景深值ZOMAX進行暫存。因此,本實施例的景深消隱方法在步驟S760後增加一步驟S790,當景深測試模組550偵測到景深快取記憶體540已滿的時候,則將景深快取記憶體540內的資料回存到系統記憶體的景深消隱緩衝區525中,使得覆蓋遮罩CM、待定最大景深值ZPMAX及輸出最大景深值ZOMAX的相關資料得以保存。
基於上述,由於進入步驟S750的情況,例如,執行步驟S738及步驟S740之後,以及當步驟S736為否之時,便無法利用景深消隱方法來進行立體物件的裁剪,因此,本實施例的三維圖形處理裝置480可於景深消隱引擎520進入S750的同時,利用景深緩衝引擎570來同時執行圖6的步驟S630,藉以增加即時圖形處理的效能。於其他實施例中,三維圖形處理裝置480亦可在圖7之步驟S790執行完畢後再執行圖6的步驟S630,而不限制於此。
本實施例中每條快取線包括輸出最大景深值ZOMAX,但並非用以限定本發明,亦可沒有此欄位資料,則圖7的流程圖中步驟S720、S760、S770及S780可省略。
有鑒於此,在此以圖9A及圖9B作為舉例以更加了解本發明實施例,圖9A及圖9B皆為景深消隱程序的舉例及其景深方向示意圖。圖9A及圖9B以2×2的影磚作為舉例,因此覆蓋遮罩CM及繪製遮罩DM_1~DM_2皆為2×2遮罩。
請參照圖9A,假設快取線中覆蓋遮罩CM為(1,1,1,0),待定最大景深值ZPMAX為"0.4",輸出最大景深值ZOMAX為預設的無窮遠"F",並且已知部分KP以覆蓋遮罩CM的斜線部分來表示。繪製遮罩DM_1、DM_2皆為(1,1,1,0),繪製遮罩DM_1對應的繪製最大景深值ZDMAX與繪製最小景深值ZDMIN為"0.8",而繪製遮罩DM_2對應的繪製最大景深值ZDMAX與繪製最小景深值ZDMIN為"0.2"。繪製遮罩DM_1、DM_2則分別對應欲更新之圖塊DP_1及DP_2。
請同時參照圖7及圖9A,若步驟S715中景深讀取模組讀取了繪製遮罩DM_1及其繪製最小景深值ZDMIN"0.8",由於已知部分KP並未佔滿整個影磚(步驟S720),已知部分KP的像素位置完全包括欲更新之圖塊DP_1的像素位置(步驟S730),而繪製最小景深值ZDMIN "0.8"大於待定最大景深值ZPMAX "0.4"(步驟S732),由圖9A可輕易知曉,欲更新之圖塊DP_1的像素位置已完全被已知部分KP所包括,因此便需將此圖塊DP_1刪去。
相對地,若步驟S715中讀取了繪製遮罩DM_2及其繪製最小景深值ZDMIN "0.2",由於已知部分KP並未佔滿整個影磚(步驟S720),已知部分KP的像素位置完全包括了欲更新的圖塊DP_2(步驟S730),繪製最小景深值ZDMIN "0.2"並沒有大於待定最大景深值ZPMAX "0.4"(步驟S732),並且已知部分KP的像素位置與圖塊DP_2的像素位置相同(步驟S736)。藉此,由圖9A可知,欲更新的圖塊DP_2將會描繪在螢幕上,並且影磚中所有的像素位置皆由原先的"0.4"描繪到"0.2",因此步驟S738將繪製最大景深值ZDMAX"0.2"及待定最大景深值ZPMAX"0.4"兩者之間的最小值(亦即,"0.2")存入待定最大景深值ZPMAX,並於步驟S750中將覆蓋遮罩CM(1,1,1,0)及繪製遮罩DM(1,1,1,0)進行聯集後的結果(1,1,1,0)存入覆蓋遮罩CM,並可利用圖6的步驟S630~S640來進行景深緩衝程序及像素渲染程序。
請同時參照圖7及圖9B,圖9A與圖9B的不同之處在於,繪製遮罩DM_1、DM_2為(0,0,1,1)。藉此,若步驟S715中的景深讀取模組530讀取了繪製遮罩DM_1及其繪製最小景深值ZDMIN "0.8"。由圖9B可知,由於已知部分KP的像素位置並沒有完全包括圖塊DP_1的像素位置(步驟S730),因此在進行像素渲染程序後,更新後之已知部分KP的像素會有部分的景深值為"0.4",另一部分更新的像素(例如影磚右下角的像素)景深值則為"0.8"。
藉此,於步驟S740中,將繪製繪製最大景深值ZDMAX"0.8"及待定最大景深值ZPMAX"0.4"兩者之間的最大值(亦即,"0.8")存入待定最大景深值ZPMAX,並於步驟S750中將覆蓋遮罩CM(1,1,1,0)及繪製遮罩DM(0,0,1,1)進行聯集後的結果(1,1,1,1)存入覆蓋遮罩CM。接著,由於已知部分KP已佔滿整個影磚,換言之,覆蓋遮罩CM為(1,1,1,1)時,則於步驟S760將待定最大景深值ZPMAX "0.8"存入快取線的輸出最大景深值ZOMAX。
相對地,請重新參照圖7及圖9B,若步驟S715中的景深讀取模組530讀取了繪製遮罩DM_2及其繪製最小景深值ZDMIN "0.2"。由圖9B可知,由於已知部分KP的像素位置並沒有完全包括圖塊DP_2的像素位置(步驟S730),因此在進行像素渲染程序後,更新後之已知部分KP的像素會有部分的景深值為"0.4",另一部分更新的像素(例如影磚右下角的像素)景深值則為"0.2"。藉此,如上面所述,步驟S740將繪製最大景深值ZDMAX"0.2"及待定最大景深值ZPMAX"0.4"兩者之間的最大值(亦即,"0.4")存入待定最大景深值ZPMAX,並執行步驟S750、步驟S760等相關動作,在此不再贅述。
綜上所述,本發明實施例在景深緩衝模組中增加了專屬的景深快取記憶體,使得在進行景深消隱方法時,能夠利用此快取記憶體來降低對於系統主記憶體的讀寫頻率。換句話說,以往在進行景深消隱方法時,必須經常讀寫系統記憶體中的景深消隱緩衝區。本實施例將景深消隱緩衝區中經常被讀寫的資訊(例如遮罩、景深資料)轉移至快取記憶體進行處理,有效地降低對系統記憶體的存取次數,因而減少了系統記憶體的頻寬佔用。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...螢幕
110、120...三角形
Z...景深值
F...無窮遠
210、220、DP_1~DP_2...圖塊
CM...覆蓋遮罩
DM、DM_1~DM_2...描繪遮罩
KP...已知部分
40...電腦系統
410...中央處理單元
420...顯示裝置
430...電腦記憶體
440...顯示單元
450...處理器介面
460...記憶體介面
470...顯示控制介面
480...三維圖形處理裝置
510...幾何轉換模組
520...景深消隱引擎
525...景深消隱緩衝區
530...景深讀取模組
540...景深快取記憶體
550...景深測試模組
560...景深更新模組
570...景深緩衝引擎
575...景深緩衝區
580...像素渲染引擎
590...系統記憶體
S610~S790...步驟
ZPMAX...待定最大景深值
ZOMAX...輸出最大景深值
圖1為投影於螢幕之兩個重疊三角形的範例示意圖。
圖2為圖1之影磚(8,5)的立體透視圖。
圖3為覆蓋遮罩及繪製遮罩的示意圖。
圖4是電腦系統的方塊圖。
圖5是依照本發明實施例所述之使用景深消隱的三維圖形處理裝置的方塊圖。
圖6是依照本發明實施例所述之使用景深消隱的三維圖形處理方法的流程圖。
圖7是圖6之步驟S620的流程圖。
圖8是景深快取記憶體中快取線的欄位圖。
圖9A及圖9B為景深消隱程序的舉例及其景深方向示意圖。
S610~S640...步驟
Claims (18)
- 一種景深消隱方法,適用於一三維圖形處理裝置,該景深消隱方法包括:提供一景深快取記憶體,藉以暫存一螢幕柵格化之多個影磚的其中之一所對應的一覆蓋遮罩以及一待定最大景深值,其中該覆蓋遮罩表示該影磚中一已知部分的像素位置,且該待定最大景深值為該已知部分中各個像素對應一視點的最大景深值;獲得依據該影磚及一圖塊所計算產生的一繪製遮罩、一繪製最大景深值及一繪製最小景深值,其中該圖塊是組建一三維圖形的一平面投影至該影磚的像素,該繪製遮罩表示該影磚中該圖塊的像素位置,該繪製最小景深值為該圖塊中各個像素對應該視點的最小景深值,且該繪製最大景深值為該圖塊中各個像素對應該視點的最大景深值;判斷該已知部分的像素位置是否完全包括該圖塊的像素位置,配合該繪製最小景深值與該待定最大景深值的比較,藉以決定是否刪去該圖塊,並決定是否更新該景深快取記憶體的該覆蓋遮罩以及該待定最大景深值;當該已知部分的像素位置完全包括該圖塊的像素位置但是不等於該圖塊的像素位置,且該繪製最小景深值不大於該待定最大景深值的時候,該待定最大景深值保持不變;以及當該已知部分的像素位置等於該圖塊的像素位置,且該繪製最小景深值不大於該待定最大景深值的時候,使用 該繪製最大景深值與該待定最大景深值之間的最小值來更新該待定最大景深值,其中該些影磚的其中之一所對應的該覆蓋遮罩以及該待定最大景深值係從一系統記憶體中獲得並且暫存在該景深快取記憶體。
- 如申請專利範圍第1項所述之景深消隱方法,更包括下列步驟:當該景深快取記憶體已滿時,將該景深快取記憶體中的資料回存至該三維圖形處理裝置的該系統記憶體,其中該系統記憶體耦接至該景深快取記憶體。
- 如申請專利範圍第1項所述之景深消隱方法,決定是否刪去該圖塊包括下列步驟:當該已知部分的像素位置完全包括該圖塊的像素位置,且該繪製最小景深值大於該待定最大景深值的時候,刪去該圖塊。
- 如申請專利範圍第1項所述之景深消隱方法,決定是否刪去該圖塊包括下列步驟:當該已知部分的像素位置並未完全包括該圖塊的像素位置,或者當該已知部分的像素位置完全包括該圖塊的像素位置且該繪製最小景深值不大於該待定最大景深值的時候,保留該圖塊,並調整該待定最大景深值;以及將保留之該圖塊及該已知部分的聯集作為調整後之該已知部分,以更新該覆蓋遮罩。
- 如申請專利範圍第4項所述之景深消隱方法,調整該待定最大景深值更包括下列步驟:當該已知部分的像素位置並未完全包括該圖塊的像素位置的時候,使用該繪製最大景深值與該待定最大景深值之間的最大值來更新該待定最大景深值。
- 如申請專利範圍第1項所述之景深消隱方法,其中:該景深快取記憶體更暫存該影磚所對應的一輸出最大景深值,當該已知部分佔滿該影磚時,將該待定最大景深值存入該輸出最大景深值,以及,當該繪製最小景深值大於該輸出最大景深值的時候,刪去該圖塊。
- 一種使用景深消隱的三維圖形處理方法,適用於一三維圖形處理裝置以將一三維場景顯示於一螢幕,該三維圖形處理方法包括:拆解該三維場景以形成至少一平面,將該螢幕柵格化為多個影磚,以依據該些影磚的其中之一及一圖塊計算產生一繪製遮罩、一繪製最大景深值及一繪製最小景深值,並將該繪製遮罩、該繪製最大景深值及該繪製最小景深值儲存於該三維圖形處理裝置的一系統記憶體,其中該圖塊是該平面投影至該影磚的像素,該繪製遮罩表示該影磚中該圖塊的像素位置,該繪製最小景深值為該圖塊中各個像素對應該視點的各個景深值中的最小景深值,且該繪製最大景深值為該圖塊中各個像素對應該視點的各個景深值中的最大景深值; 依據該繪製遮罩、該繪製最大景深值、該繪製最小景深值及一景深快取記憶體進行一景深消隱程序,藉以決定是否刪去該圖塊;以及當確定保留該圖塊時,依據保留的該圖塊進行一像素渲染程序,其中該景深消隱程序包括下列步驟:提供該景深快取記憶體,其中該景深快取記憶體暫存該些影磚其中之一所對應的一覆蓋遮罩以及一待定最大景深值,該覆蓋遮罩表示該影磚中一已知部分的像素位置,且該待定最大景深值為該已知部分中各個像素對應該視點的各個景深值中的最大景深值;獲得該影磚及該圖塊所對應的該繪製遮罩、該繪製最大景深值及該繪製最小景深值;判斷該已知部分的像素位置是否完全包括該圖塊的像素位置,配合該繪製最小景深值與該待定最大景深值的比較,藉以決定是否刪去該圖塊,並決定是否更新該景深快取記憶體的該覆蓋遮罩以及該待定最大景深值;當該已知部分的像素位置完全包括該圖塊的像素位置但是不等於該圖塊的像素位置,且該繪製最小景深值不大於該待定最大景深值的時候,該待定最大景深值保持不變;以及當該已知部分的像素位置等於該圖塊的像素位置,且該繪製最小景深值不大於該待定最大景深值的時候,使用該繪製最大景深值與該待定最大景深值之間的最小值來更新該待定最大景深值, 其中該些影磚的其中之一所對應的該覆蓋遮罩以及該待定最大景深值係從一系統記憶體中獲得並且暫存在該景深快取記憶體。
- 如申請專利範圍第7項所述之三維圖形處理方法,該景深消隱程序更包括下列步驟:當該景深快取記憶體已滿時,將該景深快取記憶體中的資料回存至該三維圖形處理裝置的該系統記憶體,其中,該系統記憶體耦接至該景深快取記憶體。
- 如申請專利範圍第7項所述之三維圖形處理方法,決定是否刪去該圖塊包括下列步驟:當該已知部分的像素位置完全包括該圖塊的像素位置,且該繪製最小景深值大於該待定最大景深值的時候,刪去該圖塊。
- 如申請專利範圍第7項所述之三維圖形處理方法,決定是否刪去該圖塊包括下列步驟:當該已知部分的像素位置並未完全包括該圖塊的像素位置,或者當該已知部分的像素位置完全包括該圖塊的像素位置且該繪製最小景深值不大於該待定最大景深值的時候,保留該圖塊,並調整該待定最大景深值;以及將保留之該圖塊及該已知部分的聯集作為調整後之該已知部分,以更新該覆蓋遮罩。
- 如申請專利範圍第10項所述之三維圖形處理方法,調整該待定最大景深值更包括下列步驟: 當該已知部分的像素位置並未完全包括該圖塊的像素位置的時候,使用該繪製最大景深值與該待定最大景深值之間的最大值來更新該待定最大景深值。
- 如申請專利範圍第7項所述之三維圖形處理方法,其中:該景深快取記憶體更暫存該影磚所對應的一輸出最大景深值,當該已知部分佔滿該影磚時,將該待定最大景深值存入該輸出最大景深值,以及,當該繪製最小景深值大於該輸出最大景深值的時候,刪去該圖塊。
- 一種使用景深消隱的三維圖形處理裝置,用以將一三維場景顯示於一螢幕,該三維圖形處理裝置包括:一幾何轉換模組,拆解該三維場景以形成至少一平面,並將該螢幕柵格化為多個影磚,以依據該些影磚其中之一及一圖塊以計算產生一繪製遮罩、一繪製最大景深值及一繪製最小景深值,其中該圖塊是該平面投影至該影磚的像素,該繪製遮罩表示該影磚中該圖塊的像素位置,該繪製最小景深值為該圖塊中各個像素對應該視點的最小景深值,該繪製最大景深值為該圖塊中各個像素對應該視點的最大景深值;一景深消隱引擎,耦接至該幾何轉換模組,用以依據該繪製遮罩、該繪製最大景深值及該繪製最小景深值進行一景深消隱程序,藉以決定是否刪去該圖塊;一景深緩衝引擎,耦接至該景深消隱引擎,用於當確定不刪去該圖塊時,依據該圖塊進行一景深緩衝程序,以更新該影磚的像素;以及 一像素渲染引擎,耦接至該景深緩衝引擎,依據更新之該影磚的像素進行一像素渲染程序,其中該景深消隱引擎包括:一景深讀取模組,從一系統記憶體中獲得該影磚及該圖塊所對應的該繪製遮罩、該繪製最大景深值及該繪製最小景深值;一景深快取記憶體,耦接至該景深讀取模組,用以暫存該影磚所對應的一覆蓋遮罩以及一待定最大景深值,該覆蓋遮罩表示該影磚中一已知部分的像素位置,且該待定最大景深值為該已知部分中該些像素的最大景深值;一景深測試模組,耦接至該景深讀取模組以及該景深快取記憶體,用以判斷該已知部分的像素位置是否完全包括該圖塊的像素位置,配合該繪製最小景深值與該待定最大景深值的比較,藉以決定是否刪去該圖塊;以及一景深更新模組,耦接至該景深測試模組以及該景深快取記憶體,用以依據該景深測試模組的決定結果來更新該景深快取記憶體的該覆蓋遮罩以及該待定最大景深值,其中當該已知部分的像素位置完全包括該圖塊的像素位置但是不等於該圖塊的像素位置,且該繪製最小景深值不大於該待定最大景深值的時候,該景深更新模組將該待定最大景深值保持不變;以及當該已知部分的像素位置等於該圖塊的像素位置,且該繪製最小景深值不大於該待定最大景深值的時候,該景深更新模組使用該繪製最大景深值與該待定最大景深值之間的最小值來更新該待定最大景深值, 其中該些影磚的其中之一所對應的該覆蓋遮罩以及該待定最大景深值係從一系統記憶體中獲得並且暫存在該景深快取記憶體。
- 如申請專利範圍第13項所述之三維圖形處理裝置,當該景深快取記憶體已滿時,將該景深快取記憶體中的資料回存至該三維圖形處理裝置的該系統記憶體,其中,該系統記憶體耦接至該景深快取記憶體。
- 如申請專利範圍第13項所述之三維圖形處理裝置,其中當該已知部分的像素位置完全包括該圖塊的像素位置,且該繪製最小景深值大於該待定最大景深值的時候,該景深測試模組刪去該圖塊。
- 如申請專利範圍第13項所述之三維圖形處理裝置,其中當該已知部分的像素位置並未完全包括該圖塊的像素位置,或者當該已知部分的像素位置完全包括該圖塊的像素位置且該繪製最小景深值不大於該待定最大景深值的時候,該景深更新模組保留該圖塊,調整該待定最大景深值,以及將保留之該圖塊及該已知部分的聯集作為調整後之該已知部分,以更新該覆蓋遮罩。
- 如申請專利範圍第16項所述之三維圖形處理裝置,當該已知部分的像素位置並未完全包括該圖塊的像素位置的時候,該景深更新模組使用該繪製最大景深值與該待定最大景深值之間的最大值來更新該待定最大景深值。
- 如申請專利範圍第13項所述之三維圖形處理裝置,其中該景深快取記憶體更暫存該影磚所對應的一輸出 最大景深值,當該已知部分佔滿該影磚時,該景深更新模組將該待定最大景深值存入該輸出最大景深值,並且,當該繪製最小景深值大於該輸出最大景深值的時候,景深測試模組刪去該圖塊。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110137364.0A CN102208112B (zh) | 2011-05-25 | 2011-05-25 | 景深消隐方法、三维图形处理方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201248542A TW201248542A (en) | 2012-12-01 |
TWI581209B true TWI581209B (zh) | 2017-05-01 |
Family
ID=44696925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101108287A TWI581209B (zh) | 2011-05-25 | 2012-03-12 | 景深消隱方法、使用景深消隱的三維圖形處理方法及其裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9019271B2 (zh) |
CN (1) | CN102208112B (zh) |
TW (1) | TWI581209B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013130030A1 (en) | 2012-02-27 | 2013-09-06 | Intel Corporation | Using cost estimation to improve performance of tile rendering for image processing |
US10242481B2 (en) | 2012-03-15 | 2019-03-26 | Qualcomm Incorporated | Visibility-based state updates in graphical processing units |
CN102929904B (zh) * | 2012-07-25 | 2016-06-22 | 北京世纪天宇科技发展有限公司 | 一种验证栅格数据的方法及系统 |
US8941676B2 (en) * | 2012-10-26 | 2015-01-27 | Nvidia Corporation | On-chip anti-alias resolve in a cache tiling architecture |
GB201223089D0 (en) * | 2012-12-20 | 2013-02-06 | Imagination Tech Ltd | Hidden culling in tile based computer generated graphics |
GB2544679B (en) | 2012-12-20 | 2017-08-16 | Imagination Tech Ltd | Tessellating patches of surface data in tile based computer graphics rendering |
US9390550B2 (en) * | 2013-04-18 | 2016-07-12 | Intel Corporation | Culling for higher-order motion blur rasterization |
KR102116708B1 (ko) * | 2013-05-24 | 2020-05-29 | 삼성전자 주식회사 | 그래픽스 프로세싱 유닛 |
EP3046079B1 (en) | 2013-09-13 | 2021-02-24 | Square Enix Holdings Co., Ltd. | Rendering device |
US9311743B2 (en) | 2013-10-23 | 2016-04-12 | Qualcomm Incorporated | Selectively merging partially-covered tiles to perform hierarchical z-culling |
US9934604B2 (en) * | 2013-12-27 | 2018-04-03 | Intel Corporation | Culling using masked depths for MSAA |
CN105574806B (zh) * | 2015-12-10 | 2019-03-15 | 上海兆芯集成电路有限公司 | 影像处理方法及其装置 |
US10380789B2 (en) * | 2016-09-16 | 2019-08-13 | Intel Corporation | Method and apparatus for efficient depth prepass |
CN109325992B (zh) * | 2018-10-19 | 2023-07-04 | 珠海金山数字网络科技有限公司 | 图像绘制方法和装置、计算设备及存储介质 |
US10839595B2 (en) * | 2019-02-13 | 2020-11-17 | Intel Corporation | Apparatus and method for optimizing a hierarchical depth buffer |
CN112116519B (zh) | 2019-06-19 | 2022-12-27 | 畅想科技有限公司 | 图形处理系统中的粗略深度测试 |
US11107269B2 (en) * | 2019-12-09 | 2021-08-31 | Intel Corporation | Enhancing hierarchical depth buffer culling efficiency via mask accumulation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW449730B (en) * | 1998-10-14 | 2001-08-11 | Hitachi Ltd | A three dimensional graphic processor |
US7450120B1 (en) * | 2003-12-19 | 2008-11-11 | Nvidia Corporation | Apparatus, system, and method for Z-culling |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246415B1 (en) * | 1998-04-30 | 2001-06-12 | Silicon Graphics, Inc. | Method and apparatus for culling polygons |
US6492991B1 (en) * | 1998-08-28 | 2002-12-10 | Ati International Srl | Method and apparatus for controlling compressed Z information in a video graphics system |
US6885378B1 (en) * | 2000-09-28 | 2005-04-26 | Intel Corporation | Method and apparatus for the implementation of full-scene anti-aliasing supersampling |
US7218317B2 (en) * | 2003-08-25 | 2007-05-15 | Via Technologies, Inc. | Mechanism for reducing Z buffer traffic in three-dimensional graphics processing |
US6937244B2 (en) * | 2003-09-23 | 2005-08-30 | Zhou (Mike) Hong | Apparatus and method for reducing the memory traffic of a graphics rendering system |
JP4113524B2 (ja) * | 2004-09-13 | 2008-07-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | キャッシュ・メモリ・システムとその制御方法 |
TW200744019A (en) | 2006-05-23 | 2007-12-01 | Smedia Technology Corp | Adaptive tile depth filter |
US8547382B2 (en) * | 2008-05-30 | 2013-10-01 | Advanced Micro Devices, Inc. | Video graphics system and method of pixel data compression |
GB0810311D0 (en) * | 2008-06-05 | 2008-07-09 | Advanced Risc Mach Ltd | Graphics processing systems |
TWI393980B (zh) | 2009-06-08 | 2013-04-21 | Nat Univ Chung Cheng | The method of calculating the depth of field and its method and the method of calculating the blurred state of the image |
-
2011
- 2011-05-25 CN CN201110137364.0A patent/CN102208112B/zh active Active
-
2012
- 2012-03-12 TW TW101108287A patent/TWI581209B/zh active
- 2012-05-25 US US13/480,477 patent/US9019271B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW449730B (en) * | 1998-10-14 | 2001-08-11 | Hitachi Ltd | A three dimensional graphic processor |
US7450120B1 (en) * | 2003-12-19 | 2008-11-11 | Nvidia Corporation | Apparatus, system, and method for Z-culling |
Also Published As
Publication number | Publication date |
---|---|
US9019271B2 (en) | 2015-04-28 |
CN102208112B (zh) | 2015-08-05 |
US20120299910A1 (en) | 2012-11-29 |
TW201248542A (en) | 2012-12-01 |
CN102208112A (zh) | 2011-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI581209B (zh) | 景深消隱方法、使用景深消隱的三維圖形處理方法及其裝置 | |
US11748840B2 (en) | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters | |
EP3673463B1 (en) | Rendering an image from computer graphics using two rendering computing devices | |
US10614549B2 (en) | Varying effective resolution by screen location by changing active color sample count within multiple render targets | |
US11182952B2 (en) | Hidden culling in tile-based computer generated images | |
US10102663B2 (en) | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location | |
US20170316544A1 (en) | Varying effective resolution by screen location by altering rasterization parameters | |
KR102122454B1 (ko) | 이전 타일의 이미지를 이용하여 현재 프레임을 렌더링하는 방법 및 장치 | |
JP4116648B2 (ja) | オクルージョンカリング方法および描画処理装置 | |
US8743114B2 (en) | Methods and systems to determine conservative view cell occlusion | |
JP4142065B2 (ja) | 縮小zバッファ生成方法、隠面消去方法、およびオクルージョンカリング方法 | |
JP4977712B2 (ja) | ディスプレースクリーン上に立体画像をレンダリングするコンピュータグラフィックスプロセッサならびにその方法 | |
KR101681056B1 (ko) | 정점 처리 방법 및 장치 | |
TW201915937A (zh) | 具有可組態變換參數的多空間演現 | |
JP2015515059A (ja) | シーンにおける不透明度レベルを推定する方法とそれに対応する装置 | |
US10535188B2 (en) | Tessellation edge shaders | |
JPWO2008126392A1 (ja) | 画像生成装置及び画像生成方法 | |
US20210272348A1 (en) | Varying effective resolution by screen location by changing active color sample count within multiple render targets | |
US7256796B1 (en) | Per-fragment control for writing an output buffer | |
US20070008316A1 (en) | Computer graphics rendering method and apparatus | |
CN115715464A (zh) | 用于遮挡处理技术的方法和装置 |