201248542 六、發明說明: 【發明所屬之技術領域】 本發明是有關於一種三維圖形處理技術’且特別是有 關於一種景深消隱(coarse Z culling)方法、使用景深消隱的 三維圖形處理方法及其三維圖形處理裝置。 【先前技術】 景深緩衝(depth buffing)技術,或稱為Z緩衝 (Z-buffing)、Z 測試(Z-testing),是三維(three-dimension, 3D)圖形處理中用來解決圖形景深座標的過程,其可確定 在三維場景中被渲染場景的哪些部分將會被看見而顯示, 而哪些部分將會被隱藏。 舉例來說,當支援景深緩衝技術的圖形處理器 (Graphic Processing Unit; Gpu)在渲染三維圖形的立體物 件時,經處理後的每一個像素通常皆具有一 z值,藉以表 示此像素所表示之立體物件在螢幕上的「景深值」。這些 Z值便會贿在相對應位置的_區巾,賴緩衝區則被 稱為z緩衝區或者景深緩衝區(depth b秦)。景深緩衝區 通书以像素的X軸及YI+座標來形成用以保存每 列。如果場景中的另一個立體物件也在同: 景深值,像料,^ _顯示卡就會峨二者的 辛距離觀察者較近的物件’並且被保留的像 衝區中。上述的景深緩衝技術亦可稱 為戈不/木輕或z消隱(z_culling)。 201248542 然而,上述的景深缓衝演算法必須先行計算好該立體 物件的像素資料及其景深值,並且不管觀賞者最終看得見 或看不見該立體物件,都必須先取出景深暫存器中的像素 ;?、ί未’並與计鼻後像素資料的景深值進行比較,這需要佔 用系統記憶體相當大的頻寬(bandwidth),導致系統記憒體 與圖形處理器之間的頻寬經常成為影響圖形處理速度的主 要瓶頸,特別是現今的三維場景通常具有相當高的深度複 雜,(depth complexity)。因此,如何解決景深緩衝區的傳 輸1便成為三維圖形處理技術中欲待解決的問題。 為了減少對於景深緩衝器的存取,改善景深緩衝所存 在的問題’因而發展出許多方法來解決此問題,粗略景深 消隱(c_e Z culling)技術便是其中一種方式。粗略景深消 fe技術利用將螢幕上進行柵格化(咖⑷㈣以切割形成大 ^相同的影碑(tile)來’從而對立體物件進行標識,並在系 己設立景深消隱緩衝區,藉以記錄每個影磚内圖 物件二Π '景深值等屬性參數。當有新的立體 取上辻丄粗略景深消隱技術便從系統記憶體中讀 情影磚_立體物件是否已被遮蔽, 進而直接剔除被遮蔽的部分。 '、、:而現有粗略n肖隱技術 _ =中的景深消隱緩衝區進行存取,二;= 了相當比重的頻赏。始日,相士, 口凡逖疋曰佔云 理運算過程巾(例如,確略景深消隸術在其處 在龐大且複雜的算式的相2立置關係時)大多存 次夕樣繁複的判斷,並具備有大 201248542 量的數值比較。為了兼顧運算速度,演算法上需要同時進 行的算式也會造成硬體實現上的複雜度。藉此,如何持讀 降低系統記憶體的頻寬使用率’並可同時降低其運算複雜 度,便疋二維圖形處理技術中所欲待解決的問題。 【發明内容】 本發明提供一種景深消隱方法,藉由增加專屬的景深 快取纪憶體,使其能夠利用此快取記憶體來降低對於系統 主記憶體的讀寫鮮,藉以有效崎低對系統記憶體的存 取次數,並減少系統記憶體的頻寬佔用。 此外’本發明提供-種使用景深消隱的三_形處理 方法’其巾的景深消隱程序可專制景深快取記憶體 來降低對㈣、齡記憶_讀寫鮮,藉財效地降低對 糸統記憶體的存取次數,減少系統記憶體的頻寬佔用 升即時圖形處理的速度。 ^以另一方面而言,本發明提供一種使用景深消隱的三 ^圖形處理裝置,其内的景深消隱模組可利用專屬的景深 =記憶體來降低對於系敵記鍾的讀寫鮮,藉以有 統記憶體的存取次數,減少系統記憶體的頻 寬佔用,提升即時圖形處理的速度。 形二署本r月提出一種景深消隱方法,適用於三維圖 ’並且此景深消隱方法包括下列步驟。提供一 ΓΓ二紐’藉以暫存螢幕在栅格化後每—個影碑中 ^ 一個影磚觸應的錢鮮以及其待定最大景深值, 201248542 而螢幕可柵格化為多個料。上述的覆蓋鮮用以表示上 述影碑巾已㈣分的像純置,场 的最大值。 y知部分中每-個像素與觀察者視點之間各個 並且,知爾±述料及_所計算得_ =rrmask)、_最大景深值及繪製最小景深值,上述 圖塊疋用來組建三維_的—平面(例如—三角型)投夺至 製遮罩則可表示出上述圖塊 2磚田中的像素位置。上述_製最小景祕則是圖塊 中母一個像素與觀察者概之個景深距_最小值, 上述的繪製最大景祕則是圖塊中每—個像素與觀察者視 點之間各個景深距_最大值。以及,騎上述已知部分 的像素位置是否完全包括上述®塊的像素位置,並且配合 、、、曰製最小豕深值與待定最大景深值的比較,藉此便可決定 是否刪去上述圖塊,並可決定是否更新上述景深快取記憶 體中暫存的覆蓋遮罩以及待定最大景深值。 在本發明之一實施例中,景深消隱方法更包括下列步 驟。當上述的景深快取記憶體已滿時,則把景深快取記憶 體中的資料回存至三維圖形處理裝置的系統記憶體中。 於另一觀點而言,本發明提出一種使用景深消隱的三 維圖形處理方法,其可適用於三維圖形處理裝置上,藉以 將二維場景顯示於螢幕上,而此三維圖形處理方法包括下 列步驟。拆解三維場景以形成多個平面(例如多個三角 形)’並將螢幕栅格化(rasterize)而形成多個影磚,以計算產 201248542
Jr旦Ϊ圖塊的繪製遮I、緣製最大景深值及繪 值,並將上述繪製遮罩及其_最大景深值與 小景深值儲存於三維圖形處理裝置㈣統記㈣ ^外’依據上述繪製遮罩、綠製最大景難、緣製最 值及-景縣取記憶體進行—景深消隱程序,藉以 2疋否删去上述的圖塊。以及,t確定保留此圖塊時, 依據保留的圖塊進行一像素渲染程序。 其中’上述的景深消隱程序可包括下列步驟。提供上 快取記憶體,藉以暫存上述每-個影磚所對應的 t遮罩从肢最大景深值。麟上述糾及圖塊 2繪製遮罩、繪製最大景深值及繪製最小景深值。並且, 述已知部分的像素位置是^全包㈣塊的像素位 "配合繪製最小景紐與待线大景祕的比較,藉 將圖塊刪去’並藉以決定是否更新景深快“ ‘《體的覆蓋遮罩以及待定最大景深值。 唯圖:ί=而:’f發明提出—種使用景深消隱的三 =理;置包括有幾何轉換模組、系統記憶體、景深消Ξ =深緩Γ擎以及像素沒染弓1擎。幾何轉換模二' 2格化為多师碑,以計算產转應上述糾及圖塊^ =遮罩、㈣最大景深值及輕最小景深值,其中,圖 面,至影碑的像素資訊。系統記憶體可儲存 返的緣製遮軍及其繪製最大景深值麟製最小景深值。 201248542 景深消隱引擎則依騎製遮罩、 小景深值來進行景深消隱程序,二3士:、深值及1 會製最 塊。景深緩衝弓I擎利用未被刪否刪去上述圖 序,藉以更新影碑中的像素。^ =來進行景深緩衝程 的影碑像素來進行像素渲染程序'。、&木引擎則依據已更新 其令’上述景深㈣51擎包 而 快取記憶體、景深測試模組及景深更二,取^ :景深 組從系統記憶體中獲得上述果、·且。景涑讀取模 罩、繪製最大景深對應帽^ 則可暫存上述料所制賴蓋料^、=^記= 值。景深測試模組判斷上述之已知_⑽‘二= 全包括上述之圖塊的像素位置,並配合最疋否兀 大景深值的比較,藉以決定是“= 取記憶體的覆蓋遮罩以及待定最大景深值猎乂更新厅、冰快 眉的ίϋ上述’本發明實施例在景深緩衝模組中增加了專 取战體,使得在進行n肖隱方法時,能夠 2此快取記《來降低對㈣統主記憶體的讀寫頻率。 換句活說,以往在進行景深消隱方法時,必須 ^己憶體中的景深緩衝區。本實施例將景深緩衝區^常 =讀寫的資訊(例如料、景深資财)轉移域取記&體 仃處理’有效地降低對系統記憶體的存取次數,因而 〉'了系統記憶體的頻寬佔用。
S 8 201248542 舉實下- 【實施方式】 所述示明之示範性實施例’在附圖中說明 景是否已被完全遮蔽T此二:並且判斷這些三維場 或_深_序。例 =:=單位來比對出每二== ί部:Γ進仃更為精細的景深緩衝程序,也就是所述的第 於部分實施例中,當進行完 =:==:r每個素 部分也可以是像讀染程序。這兩科 的二維圖祕理方法相互獨立,並且各自具有完整的處ς 201248542 流程:因此’於本發明實施例以下的揭示内容中,主要插 述的疋上述第-部分的景深消隱程序,在此先行敘明。 冰圖1為投影於螢幕100之三角形11〇及三角形12〇的 範,示思圖’ ® 2為圖1之影碑(8,5)的立體透視圖。由 於三㈣的幾㈣性’例如三角形的三個頂點位於一共同 平面,因此iL體物件可由數目眾多的三㈣為基礎進行表 不。在此以三角形110及120作為立體物件的舉例,這兩 個二角形110及12〇有部分重疊,三角形11〇位在前面而 遮蔽住與二角形12〇相重疊的區域。三維圖形處理方法可 將三角形110及120進行柵格化處理,如圖丨中的柵袼線 所示,換句話說,可以將螢幕分割成多個大小相同的影磚 (tile),例如影磚(8,5),並依據這些影磚來投影轉換三角 形110及三角形120。一般而言,影碑可為邊長8像素乘8 像素(8x8)的矩形區域’但應用本實施例者可依據其設計需 求來調整影磚的區域大小,並不依此為限。 為了方便說明,在此將圖1的影磚(8,5)以景深方向 透視方式繪示於圖2中’景深值(Z)從接近觀賞者視點的,,〇,, 延伸至背景的,,F”(亦表示為無窮遠處)。往景深方向看去, 位在影磚(8,5)中之三角形110的圖塊210將會覆蓋住影 碑(8, 5)中之三角形120的圖塊220。景深消隱技術可提供 位在系統記憶體中的一景深消隱緩衝區,藉以儲存每個影 磚的最大景深值、覆蓋遮罩CM或甚至是繪製遮罩dm ^ 屬性參數。 201248542 其中,上述的最大景深值便是對應的影磚在經過各個 圖塊的繪製之後,目前最接近觀察者視點、並且尚未被覆 蓋的圖塊當中的每一個像素與觀察者視點之間的景深距離 最大值。覆蓋遮罩CM(covermask)則表示為對應的影磚中 已繪製過的像素位置。於本實施例與下述各個實施例中, 在此將已繪製過的像素位置稱為已知部分KP(kn〇Wn part)。繪製遮罩DM(draw mask)則是指本次進行繪製的圖 塊在對應的影射所投影的像素位置。以下舉例以說明 深消隱緩魏中的各項參數,藉以更為了解本實施例。、 假》又一維圖形處理方法先行處理三角形ιι〇,而圖塊 ^ -)中最大景深值的欄位被更新為,,0.4”,並且景 緩衝區(8 ’5)的覆蓋遮罩復攔位則如圖3所示進 二於與3為覆蓋遮罩cm及纟會製遮罩dm的示意圖。 制二二lx8像素的矩形區域,因此覆蓋遮^cm及繪 ί遮罩DM if 8X8遮罩。本實施例在覆蓋遮罩CM及繪 中,”1”表示影碑(8,5)中此位置的像素 並具有不是位在無窮遠處的景深值。而 窮未被描繪,其景深值可設置為無 位置是否存在有物體,==作用’用以指示出此像素 像素為“1”的區域可才日不出物體的景深位置。標不 述之已知部分),但/,成圖塊21G(亦可稱為本實施例所 L限定本發明’其他應用亦可以以”1” 11 201248542 表示尚未被描繪的像素位置,而則表示已進行處理繪製 的像素位置。 相對而言,正在進行繪製之圖塊220的最小及最大z 值分別為’’〇.6π及"0.8” ’並且圖塊220的繪製遮罩dm如圖 3所示。藉此’在繼續處理三角形12〇時,三維圖形處理 方法會提供圖3之圖塊220所對應的繪製遮罩dm,以及 其所有像素中的最小Z值”0.6”及最大Z值”0.8”。藉此,利 用覆蓋遮罩CM及緣製遮罩DM進行比較,由於圖塊220 在螢幕上的二維像素位置(在此簡稱為圖塊22〇的像素位 置)包括了先前已被繪製處理之圖塊21〇的像素位置,而且 圖塊220的最小z值,,〇 6,,大於景深消隱緩衝區(8,5)中的 最大Z值櫚位”〇 4” ’亦即圖塊22〇的最小z值”〇 y已大於 =2=的最大景深值,因此可知圖塊22〇已被圖塊21〇 完全遮蔽’縣發明的景深㈣方法便可雜將圖塊22〇 剔除不需利用此圖塊220進行接下來的景深緩衝程序。 本發明實施例還在景深消隱模組中增加一個 憶體’將經常需要讀寫的資料資訊(例如遮罩:Ϊ :;4 )轉移至此快取記憶體進行處理,使其能夠利用此 記憶體的存取次數,並減少系統』3 序在在系統記憶體内,而使得上述的景深消隱轻 仃過程t亦需時常對景深消隱緩衝區it行存取了所 201248542 以會佔去相當比重的頻寬這一問題 隱模組2運算咖以及減怖肖耗心了景深消 兴例為^ 明實施例,在此以圖4的電腦系統40作為 舉例,圖4疋電腦系統4〇的方塊作為 系統40可為個人電箸 於本貫把例中’電腦 冑。t+ Μ ϋ 腦、電子遊錢或相關硬 體電子裝置40包括有中央處理單元· 0更 電腦記憶體430及顯示單元44〇 〇 ’、'、 ^ 、 μ中i處!單元410控制電腦系統4〇的運作,例如執行 二理及運算’並可將運作期間所需的程式碼、 貝及數據暫存於電腦記題中。顯示裝置42〇(例如 顯不卡)則是專門進行影像、圖形的運算處理及晝面顯示, 其利々用處理器介® 45〇、記憶體介面460及顯示控制介面 470等橋接介面來分別耦接至中央處理單元41〇、電腦記憶 體430及顯示單元44〇(例如液晶平面顯示器)。於本實施例 中’顯不裝置420更包含有三維圖形處理裝置48〇,其特 ft對三維圖形進行運算處理,藉以實現本實施例所述之 景深消隱方法及使用景深消隱的三維圖形處理方法。 圖5是依照本發明實施例所述之三維圖形處理裴置 480的方塊圖’圖6是依照本發明實施例所述之三維圖形 處理方法的流程圖。請參照圖4及圖5,耦接至系統記憶 體590的三維圖形處理裝置480可將三維場景顯示於圖4 之顯示單元440的螢幕上,三維圖形處理裝置480包括有 幾何轉換模組51〇、景深消隱引擎520、景深緩衝引擎57〇 以及像素渲染引擎58〇,並且系統記憶體59〇中包括有景 13 201248542 深消隱緩衝區525及景深緩衝區575,藉以執行圖6所述 之三維圖形處理方法。 景深消隱引擎520則包括有景深讀取模組53〇、景深 ,取,憶體540、景深測試模組55〇及景深更新模組56〇, 藉以實現圖6之步驟S620以及步驟S630所述之景深消隱 方法。其中,系統記憶體59〇可以是電腦系統4〇的電腦記 憶體430 ’亦可以為顯示裝置物上專門用於三維影像處 理的顯示記憶體,本實施例並不限制於此。 此外’由先前的揭示中可知,部分實施例的三維圖形 處理裝置480在利用景深消隱引擎52()執行完景深消隱程 序後,可直接藉由像素i㈣擎來進行像素澄^ 序’以具體繚製出每個像素中的三維場景,而不需要再次 進行後續的像素景深緩衝㈣。因此,部分實施例的三 圖形處理裝置48G可以不需要景深緩衝引擎57(),亦可 不執行圖6的步驟S630。 在此以圖5的三維圖形處理裝置48〇配合圖6說明 實施例的二維圖形處理方法。於步驟S61〇中,幾 模組51G拆解三維空間的立體物件而形成多個基本元素 (primitives) ’這些基本元素可由點、線段、平面(例如, 角形)或多邊形來形成’並可由基本元素的頂點來定義。: 實施例以三角形作為上述基本元素的舉例。幾何轉換 510拆解上述二維空間的立體物件以形成多個三角形,、 將榮幕進彳T栅格化程序以使其切则彡成多個影磚,藉以蔣 上述二角型投fWj螢幕的影磚上,從而取得每個影碎所對 201248542 應的圖塊(例如,圖2及圖3中所繪示,位於影磚(8,习内 三角形110及120分別對應的圖塊21〇及220),換句話說, 這些圖塊是用來組建三料景的三㈣中的—部分,並且 這些圖塊為三角形投影在螢幕上且位於影磚中的像素。 此外,幾何轉換模組510利用影磚及圖塊來計算產生 繪製遮罩DM、%製最大景深值ΖΓ>ΜΑχ以及㈣最小景深 值ZDMIN。繪製遮罩DM則如圖3及其說明中所述,其可 標不出正在繪製的圖塊在影磚當中的像素位置,在此不再 贅述。繪s最小景深值ZDmin則是圖塊當巾的每—個像素 與觀察者視點(觀察者視點例如是z等於”〇”的位置)之間各 個景,距離的最小值。繪製最大景深值zrw則是圖塊當 中的每一個像素與觀察者視點之間各個景深距離的最大 值。 接著,於步驟S620中,景深消隱引擎52〇獲得計 =的缘製遮罩DM、㈣最大景深值ZDmax及綠製最小景 深值zdmin,並依據繪製遮罩DM、繪製最小景深值 ZD丽、%製最大景深值ZDmax及景深快取記憶體54〇的 相關遮罩、景深資訊,進行本發明實施例所述之景深消隱 程序,從而決定是否刪去相應的圖塊。圖6步驟S62〇戶^ 述的景深舰程序亦即本實闕所述的景深、;肖隱方法,复 详細致動方法將於圖7說明之。 回到圖6的步驟S63Q’景深緩衝引擎570耦接至景严 肩Ik、引擎520,並且當確定保留而不刪去相應的圖塊時, 景深缓衝引擎別則可利用此未被刪去而保留住的圖塊, 15 201248542 並配合系統記憶體590中的景深'緩衝區57 旦π 緩衝程序,藉以更新影磚中的像素。接著,進4::: 據至景深緩衝引擎570的像素沒染引擎柳】 的影碑像素騎-像雜_序’㈣已更f ^ 顯示於圖4之顯示單元440的營幕上。 办豕瓦 在此詳細說明本實施例的景深消隱程序,圖7 a 之步驟S620的流程圖。在此以圖5的景深消障引g52〇 配合圖7來說明景深消隱程序。 " 於步驟S710中,景深消隱引擎52〇提供有一景深快 取記憶體540 ’此景躲取記憶體54Q具有乡條快取線 (cache line) ’每條快取線可暫存每個影磚所對應的覆蓋遮 罩CM、待定最大景深值ΖΡΜΑχ以及輸出最大景深值 Z〇MAX。其中,待定最大景深值ΖρΜΑχ表示在影碑的各個 圖塊中的每一個像素與觀察者視點之間各個景深距離的最 大值。輸出最大景深值ZOMAX則是在對應的影磚已全部書 滿時使用的一個參數。當影磚中的每一個圖塊都有不是位 在無窮遠處的景深值時,便會將此時的待定最大景深值 ΖΡΜΑχ的值儲存為上述的輸出最大景深值ζ〇ΜΑχ,並使用 此輸出最大景深值zoMAX進行後續的三維圖形處理程序。 圖8是景深快取記憶體540中快取線的攔位圖,於本 實施例中,由於影磚為8x8像素的矩形區域,因此覆蓋遮 罩CM的襴位便為64位元(64-bit),每一位元對應一個像 素的遮蔽狀態,亦即,,,1”表示此像素被遮蔽,而”〇,,則表 示此像素未被遮蔽,藉此,便可從覆蓋遮罩CM得知已知
S 16 201248542 部分的像素位置。待定最大景深值ZIW以及輸出最 大景深值ΖΟΜΑΧ於本實施例中皆為16位元(16 bit)。以圖 1中的影磚(8,5)為例,由於先計算圖塊21〇(亦即,上述 的已知部分kp) ’所以其對應影磚的覆蓋遮罩CM如圖3 中所示,待定最大景深值ΖΡΜΑχ設定為”〇 4”。並且,由於 影磚(8 ’ 5)沒有被畫滿,所以暫時*會使職&最大景深 值ΖΟΜΑΧ,因而將其初始設為,,〇”,但是本發明不局限於 此。由於當影碑晝滿時,會將待定最A景深值ΖρΜΑχ的值 導入輸出最大景深值ZOMAX當巾,初始化的值(例如上述 的會被覆蓋’所以可將輸出最大景深值ζο·的值初 始化為任意值。 回到圖5及® 7,接著進入步驟S71S,景深讀取模組 530獲得由目6之步驟⑽計算產生的繪製遮罩DM、繪 製最大景雜zdmax鱗製最,丨、景雜ZDmin,便可以依 據繪製遮罩DM得知位在影磚中所欲更新的圖塊Dp。在 此仍以圖1中的影碑(8, 5)為例,當開始進行圖塊22〇 繪製的時候,其綠製遮罩DM如圖3所示,因此所述的圖 塊DP便是圖塊220,其綠製最大景深值ZD隨設定為 0.6,其繪製最小景深值zdmin則設定為”〇 8”。接著,景 深測試模組550判斷已知部分κρ是否佔滿整個影碑(步驟 S720)。 若已知部分ΚΡ並沒有佔滿整個影碑,如本例中的圖 塊210沒有占滿整個影碑,則景深測試模組55〇繼續判斷 已知部分κρ❸像素健是轉全純ffi&(d_part)Dp 17 201248542 的像位置(步驟S730)。例如,在本例中,判斷圖塊21〇(已 知部分KP)是否完全包括圖塊22〇(圖塊DP)。於本實施例 中,景深測試模組550可將覆蓋遮罩及繪製遮罩dM 進行一邏輯與(&)的動作。若邏輯與的結果等於繪製遮罩 DM時,便表示已知部分κρ的像素位置已完全包括圖塊 DP的像素位置(由步驟S73〇進入步驟S732),如本例中圖 塊210(已知部分KP)已完全包括圖塊22〇(圖塊Dp)。反之, 若邏輯與的結果不等於繪製遮罩DM時,則表示已知部分 KP的像素位置並沒有完全包括圖塊Dp的像素位置(由步 驟S730進入步驟S740),例如,請參見圖丨的景^碑(7,3)。 於步驟S732中,景深測試模組55〇便在繪製最小景 深值zdmin大於待定最大景深值ZPmax的時候(由步驟 S732進入步驟S734),判斷上述的圖塊Dp會被已知部分 KP遮蓋,因此將圖塊DP忽略或刪去,使其不需進行接續 的圖形處理。正如本例中,繪製最小景深值ZDmin”〇.6,,大 於待疋最大景深值ZPmax"0.4”,則證明圖塊220(圖塊DP) 被圖塊210(已知部分KP)遮蓋,因此將圖塊22〇(圖塊Dp) 刪去。 相對地,若繪製最小景深值ZDmin並沒有大於待定最 大景深值ZPMAX,則不刪去圖塊dp,並由步驟S732進入 步驟S736,景深測試模組550判斷圖塊DP的像素位置是 否與已知部分KP的像素位置相同,若步驟S736為否,則 直接進入步驟S750。相對地,若步驟S736為是,景深更 新模組560則將繪製最大景深值2:1)1^乂與待定最大景深值 201248542 ZPmax兩者之間的最小值存入並更新待定最大景深值 ZPMAX(步驟S738),並進入步驟S750。上述步驟S738亦 可表示為方程式(1): ^MAX ~ J ^^MAX ).................................. 回到步驟S730,若已知部分KP的像素位置並未完全 包括圖塊DP的像素位置’例如,圖1的影碑(7,3),則 不刪去圖塊DP,並進入步驟S740,景深更新模组56〇則 將繪製最大景深值ZDmax與待定最大景深值ΖΡμαχ兩者之 間的最大值存入並更新待定最大景深值ζρΜΑχ(步驟 S740) ’然後進入步驟S75〇。藉此,上述步驟S74〇亦可表 示為方程式(2): ^AiAX ~ > ^^MAX )...............................^2) 接著,在步驟S750中,景深更新模組56〇便將未被 刪去(或是已被保留)的圖塊DP及已知部分κρ的聯集作為 調整後的已知部分kp,藉以更新覆蓋遮罩CM。於本實施 例中,景深更新模組560可利用覆蓋遮罩CM及繪製遮罩 DM的進行—邏輯或(|)後的結果存人覆蓋遮罩cm,藉以完 成步驟S750。 於本實施例的步驟S760中,若已知部分κρ已佔滿整 個影磚時,也就是更新後的覆蓋遮罩CM之每個位元皆為 T時,表示此影碑已沒有位於無窮遠處的像素,景深更新 模組便可將狀最大景深值泣應存入輸出最大景深 ,ZOMAX。這時由於整個影磚中所有的像素的景深值都不 是無窮遠,㈣f彡射的每-個像素點都有碰,所以, 19 201248542 使用輸出最大景深值zoMAX來代表整個影磚的景深,在一 些特殊的情況下,會使計算更為簡便,下文中將詳細描述 這種情況。 藉此,若下次亦由步驟S715中讀取此影磚對應的繪 製遮罩DM及其繪製最大景深值ZDMAX與繪製最小^深值 ZDMm ’並判斷已知部分κρ已佔滿整個影磚時(步驟 S72〇) ’景深測試模組550便可利用繪製最小景深值ZDmin 是否大於輸出最大景深值ZOMAX(步驟S770),藉以比較出 圖塊DP是否已被已知部分KP所遮蔽,從而進入步驟§78〇 以直接刪去此圖塊DP。反之,如杲步驟S770為否,則尚 需進入步驟S730以續行此景深消隱方法。 另一方面,取決於景深快取記憶體54〇的容量或是景 深快取記憶體540中快取線的數量,景深快取記憶體54〇 不一定可以將每個影磚的覆蓋遮罩CM、待定最大景深值 Zpmax及輸出最大景深值2〇1^^進行暫存。因此,本實施 例的景深消隱方法在步驟S760後增加一步驟S790,當景 深測試模組550偵測到景深快取記憶體54〇已滿的時候, 則將景深快取記憶體540内的資料回存到系統記憶體的景 深消隱緩衝區525中,使得覆蓋遮罩CM、待定最大景深 值ZPmax及輸出最大景深值ZOMAX的相關資料得以保存。 基於上述,由於進入步驟S750的情況,例如,執行 步驟S738及步驟S740之後,以及當步驟S736為否之時^ 便無法利用景深消隱方法來進行立體物件的裁剪,因此, 本實施例的三維圖形處理裝置480可於景深消隱引擎52〇
S 20 201248542 進入S750的同時’利用景深緩衝引擎570來同時執行圖6 的步驟S630,藉以增加即時圖形處理的效能。於其他實施 例中,三維圖形處理裝置480亦可在圖7之步驟S79〇執 行完畢後再執行圖6的步驟S630,而不限制於此。 本實施例中每條快取線包括輸出最大景深值ζ〇ΜΑχ, 但並非用以限定本發明,亦可沒有此欄位資料,則圖7的 流程圖中步驟S720、S760、S770及S780可省略。 有鑒於此’在此以圖9Α及圖9Β作為舉例以更加了解 本發明實施例,圖9Α及圖9Β皆為景深消隱程序的舉例及 其景深方向示意圖。圖9Α及圖9Β以2x2的影磚作為舉 例,因此覆蓋遮罩CM及繪製遮罩2為 遮罩。 — 一, 請參照圖9A,假設快取線中覆蓋遮罩CM為 (1,1,1,0)待疋敢大景深值ΖρΜΑχ為”〇 ,輸出最大景深 值Ζ0ΜΑΧ Α預設的無窮遠”F”,並且已知部> κρ以覆蓋遮 罩CM的斜線部分來表示。繪製遮罩DMJ、DM_2皆為 製料DM_1賴⑽製最大景祕ZDmax 一、 、’日衣敢’、斤、深值ZDmin為”〇 8”,而繪製遮罩DM—2對應 的、會衣最大景深值ZDmax與纟”最小景深值ZD為 二。 ^遮罩讓一 齡別對應欲更新之 DP I 及 DP 2。 同時參照圖7及圖9A,若步驟S7M中景深讀取模 取製遮罩DM_1及其纟會製⑸、景深值ZDmin . ;已知部分KP並未佔滿整個影碑(步驟S720), 21 201248542 已知部分KP的像素位置完全包括欲更新之圖塊dp_1的 像素位置(步驟S730) ’而繪製最小景深值zdmin ”0.8,,大於 待定最大景深值ZPMAX”〇.4”(步驟S732),由圖9A可輕易 知曉’欲更新之圖塊DP_1的像素位置已完全被已知部分 KP所包括’因此便需將此圖塊dp_i刪去。 相對地,若步驟S715中讀取了繪製遮罩DM_2及其 繪製最小景深值ZDMini’〇.2”,由於已知部分κρ&未佔滿 整個影磚(步驟S720),已知部分ΚΡ的像素位置完全包括 了欲更新的圖塊DP_2(步驟S730),繪製最小景深值ZDmin '0.2”並沒有大於待定最大景深值”〇 4”(步驟 S732) ’並且已知部分κρ的像素位置與圖塊Dp一2的像素 位置相同(步驟S736)。藉此,由圖9A可知,欲更新的圖 塊DP_2將會描繪錢幕上,並且景彡磚巾所有的像素位置 皆由原先的”0.4”描繪到”0.2”,因此步驟則將繪製最大 ^值ZIW,0·2”及待定最大景深值ZIW0.4”兩者之間 步驟 卩’=')存入待定最大景深值ZP_,並於 门"η、巾將覆盘遮罩復(1,U,〇)及繪製遮罩DM L進行聯集後的結果(1,U,〇)存入覆蓋遮罩CM,並 的步臟〜S640來進行景深緩衝程序及像素 y於二Γ 圃 圖9A與圖9B的不斤 在於’繪製遮罩DM—卜DM_2為(
S715中的|深嘈敗媪細说,山υ猎此戈 制異,Γ 買取模 取了繪製遮罩DM 一 U 、厅、味值ZDMIN丨’0.8”。由圖9B可知,由於已矣
S 22 201248542 KP的像素位置並沒有完全包括圖塊1的像素位置(步 驟S730) ’因此在進行像素㈣程序後,更新後之已知部 为KP的像素會有部分的景深值為,另一部分更新的 彡#下角的像素)景深值則為”0 8”。 藉此,於步驟S740中,將繪製繪製最大景深值 ZDmAX”0.8”及待定最大景深值ZPmax,,0.4”兩者之間的最大 值(亦即n’)存入待定最大景深值ZPmax,並於步驟s75〇 中將覆蓋遮罩叫1,1,1取緣製遮罩DM(G,0,1,1)進行聯 集後的結果(1,1,1,1)存人覆蓋鮮CM。接著,由於已知部 分kp已佔滿整個影碑,換言之,覆蓋遮罩CM為(丨从 時,則於步-驟S760將待定最大景深值ΖρΜΑχ ”〇 8,,存入快 取線的輸出最大景深值Ζ〇ΜΑχ。 才:對地’請重新參照圖7及圖9B,若步驟S715中的 景深讀取模組53〇讀取了输製遮罩腿―2及其繪製最小景 深值ZD_ ”0.2”。由圖9B可知,由於已知部分κρ的像 素位置並沒有完全包括圖塊Dp_2的像素位置(步驟 S730) ’目此在進行像素㈣程序後,更新後之已知部分 KP的像素會有部分的景深值為”〇·4,,,另—部分更新的像 素(例如影磚右下角的像素)景深值則為”〇2”。藉此,如上 面所述,步驟S740將綠製最大景深值zdmax”L”及待定 最大景深值ZPmax”〇.4”兩者之間的最大值(亦即,"〇4”)存 入待定最大景深值zpMax,並執行步驟S75〇、步驟S76〇 等相關動作,在此不再贅述。 23 201248542 ’’不上所述,本發明實施例在景深緩 屬的景深快取記憶體,使得在進行景深消障二中增加了專 利用此快取記憶體來降低對於 ^ =時,能夠 換句話說’以往在進行景深消隱方法時 頻率。 統記憶體中的景深消隱緩衝區。本實施例將讀寫系 記憶體進、景料_移至快取 因而減少了系統記憶體的頻寬佔用。 评取-人數’ 本發:然t發:月Γ實施例揭露如上’然其並非用以限定 本發明之件Γ 術領域中具有通常知識者,在不脫離 發明二範圍内,當可作些許之更動與潤都,故本 蒦乾圍當視後附之申請專利範圍所界定者為準。 【圖式簡單說明】 馬投影於螢幕之兩個重疊三角形的範例示意圖。 圖2灸㈤ 馬圖1之影磚(8,5)的立體透視圖。 圖3為覆蓋遮罩及繪製遮罩的示意圖。 圖4是電腦系統的方塊圖。 圖5是依照本發明實施例所述之使用景深消隱的三維 圖形處理裝置的方塊圖。 圖6是依照本發明實施例所述之使用景深消隱的三維 圖形處理方法的流程圖。 圖7是圖6之步驟S62〇的流程圖。 圖8是景深快取記憶體中快取線的欄位圖。 24 201248542 圖9A及圖9B為景深消隱程序的舉例及其景深方向示 意圖。 【主要元件符號說明】 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 :景深消隱緩衝區 25 201248542 530 :景深讀取模組 540 :景深快取記憶體 550 :景深測試模組 560 :景深更新模組 570 :景深緩衝引擎 575 :景深緩衝區 580 :像素渲染引擎 590 :系統記憶體 S610〜S790 :步驟 ZPMAX :待定最大景深值 ZOmax :輸出最大景深值 26