欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于減少圖形繪示系統(tǒng)的記憶體流量的設(shè)備及其方法

文檔序號:6423891閱讀:180來源:國知局
專利名稱:用于減少圖形繪示系統(tǒng)的記憶體流量的設(shè)備及其方法
技術(shù)領(lǐng)域
本發(fā)明是有關(guān)于一種電腦圖形的產(chǎn)生與顯示,且特別是有關(guān)于一種在產(chǎn)生和顯示圖形影像步驟中減少對z緩沖區(qū)的必要存取的電腦圖形顯示方法。
背景技術(shù)
電腦圖形顯示系統(tǒng)是允許圖形影像顯示在像素輸出設(shè)備。請參閱圖1所示,是簡單繪示一系統(tǒng)的半概要方區(qū)塊的示意圖,該系統(tǒng)包括一處理器10、一框架緩沖器12、顯示監(jiān)視器14與顯示控制器16。顯示監(jiān)視器14包括用于顯示多數(shù)個像素的一螢光幕。在電子螢?zāi)恢校袼匾话闶亲钚〉目啥ㄖ返脑亍T谖灩饽簧蠁为?dú)的像素是被定址于x和y座標(biāo)中,類似于將點(diǎn)定址在圖形或矩陣中的方式。框架緩沖器12是存在主記憶體18中,并儲存對應(yīng)于像素數(shù)字地圖的一圖形影像。像素數(shù)字地圖可藉由像方格(或像矩陣)的像素陣列來表示,其中每一像素是被賦予顏色和明暗值。
當(dāng)設(shè)計顯示系統(tǒng)時,考慮肉眼是相當(dāng)重要的。肉眼有三類型光感受細(xì)胞,其是被稱之為錐體。三類型錐體中的每一個對應(yīng)到不同波長的光。相應(yīng)的,具有不同波長內(nèi)容的光是被感受為不同顏色的光。彩色顯示系統(tǒng)長期存在人類如何感受工作的知識;然而,在電子系統(tǒng)上顯示顏色的方式則還在繼續(xù)發(fā)展。
一個基本的彩色顯示系統(tǒng)使用一個RGB顏色系統(tǒng)。在這樣系統(tǒng)中,R對應(yīng)于一個紅顏色來源、G對應(yīng)于一個綠色來源以及B對應(yīng)于一個藍(lán)色顏色來源。藉由選擇RGB顏色來源的波長內(nèi)容,可以涵蓋整個顏色的范圍。因此,藉由混合或結(jié)合不同數(shù)量的紅色、綠色或藍(lán)色來源,可達(dá)到一大范圍的顏色。從整個顏色的范圍,其以數(shù)學(xué)來表示一顏色至一顏色集是如此重要的。這樣的數(shù)學(xué)表示法稱顏色空間。
RGB是一疊加性顏色系統(tǒng),其中是以三原色紅色、綠色和藍(lán)色的加總來形成希望的顏色。在一個典型的RGB彩色空間中,每一組的范圍是為0至255。當(dāng)三個來源為零時,其結(jié)果顏色是黑色;當(dāng)三個來源是255時,其結(jié)果顏色是白色。
對于RGB顏色系統(tǒng)而言,其是可能使用RGB彩色空間。然而,其它彩色空間也可利用包括YIQ、YUV、YCbCr和CMYK。數(shù)學(xué)轉(zhuǎn)換可能用來將一彩色空間轉(zhuǎn)換至另一個。在目前特殊興趣的發(fā)明上,不但YCbCr彩色空間常用在廣播和電視系統(tǒng)上,而且也用于電腦圖形的實(shí)施。
歷史上,不同的彩色空間為不同的應(yīng)用作演變。在每個案子中,彩色空間的被選擇也許不再是可適用的原因。在一個特殊彩色空間上,由于數(shù)學(xué)元素可更加簡單或更加快速的被處理,也許可做出一個選擇。而由于減少記憶體體需求或減少在數(shù)位式匯流排(即總線,以下均稱為匯流排)上的頻寬,也許可做出一個選擇。
關(guān)于YCbCr彩色空間,其發(fā)展如部份ITU-R BT.601中世界數(shù)位式組成影視標(biāo)準(zhǔn),并被使用于電視的傳輸。YCbCr是代表YUV彩色空間中對稱和偏差的層級,其中Y代表輝度(或亮度)、U代表顏色,以及V代表飽和值。在YCbCr彩色空間中,RGB彩色空間被分離成亮度部份,Y,以及二個色差部份,Cb和Cr。在歷史上,選擇YCbCr超過RGB的原因是減少減少儲存和頻寬的需求。
在開發(fā)YCbCr彩色空間時,其是考慮到肉眼對亮度的改變比對顏色的改變要來的敏感。工程師發(fā)現(xiàn)輝度或亮度的百分之60到70是被視為“綠色”,相應(yīng)地,在色差部份,Cb和Cr,亮度資訊是可從藍(lán)色和紅色中被移除。
為了在RGB格式中產(chǎn)生相同的顏色,所有三顏色組成需具有相等的頻寬。此時則需要更多儲存空間和頻寬。而且,處理在RGB空間中的一個影像是更加復(fù)雜的,因?yàn)槿我幌袼氐念伾母淖兌急仨毴プx取所有的RGB值、執(zhí)行演算,以及然后儲存。但是,顏色資訊被儲存在強(qiáng)度與顏色格式中,所以一些處理步驟可能更快。結(jié)果是,Cb和Cr提供顏色的色調(diào)與飽和資訊,且Y提供顏色的亮度資訊。Y的范圍被定義在16至235,而Cb和Cr的范圍被定義在16至240,且128是等于零。由于肉眼對Cb和Cr是較不敏感的,工程師認(rèn)為對于Cr和Cb,不需以和Y一樣高的比率傳送其資訊(即數(shù)據(jù))。且其僅需較少儲存空間和頻寬,并減少設(shè)計成本。
因此,儲存和頻寬是設(shè)計時需考慮的地方,所以許多現(xiàn)代數(shù)位式圖形系統(tǒng)都較喜歡YCbCr彩色空間。在YCbCr彩色空間之內(nèi),其包括各種的格式包括有4:4:4、4:2:2、4:1:1和4:2:0格式。這些格式是提供具有某些交替的不同等級的壓縮。特別是,4:2:0格式提供某些壓縮優(yōu)點(diǎn)但是因?yàn)檫@樣的執(zhí)行方式,所以,記憶體頻寬將成為一個問題。典型顯示系統(tǒng)在執(zhí)行4:2:0格式時是使用儲存元件(例如,靜態(tài)隨機(jī)存取記憶體(Static RandomAccess Memory,簡稱SRAM)或是動態(tài)隨機(jī)存取記憶體(Dynamic RandomAccess Memory,簡稱DRAM)),其中,Y、Cb和Cr資訊被儲存記憶體中不同的分頁。而且,典型的系統(tǒng)檢索資訊用于二個像素時,其是一次檢索Y資訊的二個項(xiàng)目,和每個Cb和Cr資訊的一個項(xiàng)目。因而,在現(xiàn)有習(xí)知系統(tǒng)中,檢索一對像素的顏色資訊時,其是要求三分頁。令人滿意的是,因此提供改善過記憶體頻寬的電腦顯示系統(tǒng)。更令人滿意的是,在顯示一影像時可減少需求記憶體分頁數(shù)量的電腦顯示系統(tǒng)。
請繼續(xù)參閱圖1所示,當(dāng)一個新圖形影像將被顯示時,處理器10計算和更新在框架緩沖器12中像素值。在顯示步驟期間,顯示控制器16作為框架緩沖器12與顯示監(jiān)視器14間的一個介面,其是藉由取得在框架緩沖器12中的像素值與將他們轉(zhuǎn)換成為用于繪示在顯示監(jiān)視器14的影視信號。
在處理一個三維圖形目標(biāo)時,經(jīng)常將目標(biāo)的深度屬性稱之為z-值(z-value),且其是被考慮更新所有在框架緩沖器12中的像素值??紤]如果新目標(biāo)被處理是配置在已顯示目標(biāo)后邊且部份地遮掩,只有新目標(biāo)可看見的部份應(yīng)被顯示。但如果新目標(biāo)被已顯示目標(biāo)完全地遮掩,框架緩沖器12則不必要更新,且新目標(biāo)將不被繪示在顯示監(jiān)視器14。
三維目標(biāo)經(jīng)常藉由一頂點(diǎn)集合來定義多邊形表面。每一頂點(diǎn)由對應(yīng)于抽象X-、Y-和Z-軸的x、y和z維度來定義。著名地,X-和Y-軸定義一投影平面,Z-軸則代表到投影平面的一個距離。因此,z座標(biāo)值表示由具體x和y座標(biāo)所定義出的一目標(biāo)在像素區(qū)的深度。一般來說,它代表從觀測點(diǎn)到人觀察顯示監(jiān)視器14的一個抽象距離的一個距離。
請進(jìn)一步來參閱圖1所示,z緩沖區(qū)20被配置儲存用于每一像素的z-值,即每一像素的深度值。用這些z-值,可以執(zhí)行一個三維目標(biāo)的深度分析。這分析經(jīng)常被稱為一個隱藏面移除步驟。由于隱藏面不會被繪示在顯示監(jiān)視器14,他們可能被考慮移除。例如,當(dāng)一個新目標(biāo)移動進(jìn)入投影平面顯示部份時,即判斷新目標(biāo)是否是可看見的,以及是否應(yīng)該被顯示,或新目標(biāo)是否被在投影平面的已顯示目標(biāo)所掩藏而不需要顯示?,F(xiàn)有習(xí)知系統(tǒng)一般是為根據(jù)像素對像素來判斷新目標(biāo)是否應(yīng)該被顯示。因而,對被繪示的每一像素,其是藉由X、Y座標(biāo)以及新目標(biāo)的深度值(例如z-值)與現(xiàn)在以顯示目標(biāo)的深度值(例如z-值)的比較來定義。
例如,如果比較后表示新像素需被繪示于在z緩沖區(qū)20中的舊像素前面(例如新z-值比舊z-值少)時,則以新z-值替換z-值,且顏色系統(tǒng)(例如RBG或YCbCr)中,框架緩沖器12內(nèi)舊像素顯示的地方將被用于新像素的參數(shù)所覆寫。相反地,如果比較后表示新像素配置在z緩沖區(qū)20中的舊像素后面(例如新z-值比舊z-值多)時,其將被掩藏且不需要被顯示。在這個情況下,z-值被保留在z緩沖區(qū),而新z-值被擯除。其是表示繼續(xù)顯示舊像素,且不會被新像素替換。
上述現(xiàn)有習(xí)知步驟存在有以下幾個缺點(diǎn)。首先,對時間和記憶體頻寬來說,將z緩沖區(qū)20中每一像素初始化成常數(shù)值(一般是背景的數(shù)值)是昂貴的。此外,像素對像素分析在目標(biāo)的顯示期間需要對讀取z緩沖區(qū)以對舊像素和新像素的z-值作比較。由于z緩沖區(qū)很大且無法被儲存在晶片中,因此需要一外在儲存器來作存取,而值得注意的是z-數(shù)值比較將降低繪示步驟的速度。另外,在執(zhí)行像素對像素比較時,計算周期是相當(dāng)耗時的。相對地,需要電腦圖形產(chǎn)生和顯示系統(tǒng)和方法,其中執(zhí)行隱藏面移除時將耗費(fèi)較少計算周期和記憶體頻寬。

發(fā)明內(nèi)容
本發(fā)明的目的在于,本發(fā)明特別定位于減少上述與現(xiàn)有習(xí)知相關(guān)的缺點(diǎn)。特別的是,本發(fā)明包括在電腦圖形顯示系統(tǒng)之內(nèi)被使用來消除z緩沖區(qū)初始化的設(shè)備。另外,通過對本發(fā)明的用途,此系統(tǒng)以像素群為單位執(zhí)行z-比較,而不是計算密集的像素對像素比較,以減少執(zhí)行影像繪示時z緩沖區(qū)存取的次數(shù),從而更加適于實(shí)用。
本發(fā)明的目的及解決其技術(shù)問題是采用以下的技術(shù)方案來實(shí)現(xiàn)的。依據(jù)本發(fā)明提出的一種繪示圖形基本資料至框架緩沖器的方法,適用于顯示之用,該框架緩沖器被分成大小相等的多數(shù)個像素區(qū)塊,每一該像素區(qū)塊具有至少二深度層,該框架緩沖器具有相對應(yīng)用于該框架緩沖器中每一像素之一深度值的一z緩沖區(qū),該深度值是用以判斷顯示時每一該像素的可見性,該方法包括判斷在該框架緩沖器內(nèi)的該些像素區(qū)塊受到該圖形基本資料影響與否;對每一受影響區(qū)塊,調(diào)整每一受影響區(qū)塊的深度層,判斷用于每一受影響區(qū)塊的該圖形基本資料的任一像素與每一受影響區(qū)塊的任一深度層相交與否,而將每一受影響區(qū)塊分成大小相等的多數(shù)個子區(qū)塊,每一該子區(qū)塊具有一子區(qū)塊遮罩,該子區(qū)塊遮罩包括用于每一該子區(qū)塊的一位元;以及如果用于每一受影響區(qū)塊的該圖形基本資料的任一像素與任一深度層相交時,即設(shè)定一旗標(biāo)來表示該z緩沖區(qū)要求一次區(qū)塊更新,以及形成一像素遮罩來表示在每一受影響區(qū)塊內(nèi)的該些像素為相交像素,并且合并該子區(qū)塊遮罩與該像素遮罩來判斷哪些子區(qū)塊具有該相交像素;再次判斷在該框架緩沖器內(nèi)的該些區(qū)塊受到該圖形基本資料影響與否;以及對每一受影響區(qū)塊,調(diào)整每一受影響區(qū)塊的深度層,判斷每一受影響區(qū)塊的更新旗標(biāo)是否被設(shè)定,如果該更新旗標(biāo)未被設(shè)定,則根據(jù)被調(diào)整的深度層將可見像素繪示至該框架緩沖器;如果該更新旗標(biāo)被設(shè)定,則根據(jù)該子區(qū)塊遮罩對被影響的每一受影響區(qū)塊的每一該些子區(qū)塊判斷每一該子區(qū)塊受到該些相交像素的影響與否;以及當(dāng)該子區(qū)塊受到影響時,則讀取該z緩沖區(qū)、調(diào)整該相交像素的可見性項(xiàng)目與將任一可見像素繪示至該框架緩沖器。
本發(fā)明的目的及解決其技術(shù)問題還可采用以下技術(shù)措施進(jìn)一步實(shí)現(xiàn)。
前述的繪示圖形基本資料至框架緩沖器的方法,其中所述的每一受影響區(qū)塊是具有一前深度層與一后深度層,并且在每一受影響區(qū)塊中,該前深度層與該后深度層的該深度值各具有其范圍,并具有最小值與最大值,且最小值是為較接近值;以及其中該圖形基本資料具有用于在每一受影響區(qū)塊中的像素的該深度值的范圍,該些像素是受該圖形基本資料所影響,該圖形基本資料的范圍具有最小值與最大值。
前述的繪示圖形基本資料至框架緩沖器的方法,其中一遮罩是與該區(qū)塊有關(guān),該遮罩描述在每一區(qū)塊中的哪些像素是屬于該前深度層與該后深度層。
前述的繪示圖形基本資料至框架緩沖器的方法,其中一遮罩是與該圖形基本資料有關(guān),該遮罩描述在每一區(qū)塊中的哪些像素是受該圖形基本資料所影響。
前述的繪示圖形基本資料至框架緩沖器的方法,其中在每一受影響區(qū)塊中受該圖形基本資料影響的該些像素是與該前深度層及該后深度層均相交;其中該像素遮罩是表示在每一受影響區(qū)塊中全部受影響的該些像素為該些相交像素;其中該前深度層與該后深度層的該深度值均被調(diào)整至具有一范圍,該范圍介于(i)該圖形基本資料的最小值與該前深度層最小值之間的最小值以及(ii)該圖形基本資料的最大值與該后深度層最大值之間的最大值,且包括該前深度層、該后深度層與在每一受影響區(qū)塊中受該圖形基本資料所影響的該些像素。
前述的繪示圖形基本資料至框架緩沖器的方法,其中在該區(qū)塊中受該圖形基本資料所影響的該些像素是與該前深度層相交而非該后深度層;其中該像素遮罩是表示該前深度層的哪些像素為相交像素;其中若在每一受影響區(qū)塊中受影響的該些像素是全部涵蓋該區(qū)塊中的該后深度層,該前深度層與該后深度層的該深度值的范圍則被調(diào)整介于(i)該圖形基本資料的最小值與該前深度層最小值之間的最小值以及(ii)該圖形基本資料的最大值與該前深度層最大值之間的最大值,且包括該前深度層的像素與在每一受影響區(qū)塊中受該圖形基本資料影響的該些像素;其中若在每一受影響區(qū)塊中受影響的該些像素非全部涵蓋該區(qū)塊中的該后深度層,該前深度層的該深度值的范圍則被調(diào)整介于(i)該圖形基本資料的最小值與該前深度層最小值之間的最小值,(ii)該圖形基本資料的最大值與該前深度層的最大值之間的最大值,用以包含在該前深度層中受該圖形基本資料影響的所有像素;以及該后深度層的該深度值的范圍未改變且僅包括未受該圖形基本資料影響的該些像素所涵蓋的像素。
前述繪示圖形基本資料至框架緩沖器的方法,其中在每一區(qū)塊中的受該圖形基本資料影響的該些像素是與該后深度層相交,而非該前深度層,并且該前深度層非完全涵蓋受該圖形基本資料影響的該些像素;其中該像素遮罩是表示該后深度層的哪些像素為相交像素;其中該后深度層被調(diào)整的范圍是介于(i)該圖形基本資料的最小值與該后深度層最小值之間的最小值,(ii)該圖形基本資料的最大值與該后深度層的最大值之間的最大值,用以包含在該后深度層中受該圖形基本資料所影響的所有像素;以及其中該前深度層的范圍未改變。
本發(fā)明的目的及解決其技術(shù)問題還采用以下的技術(shù)方案來實(shí)現(xiàn)。依據(jù)本發(fā)明提出的一種圖形繪示設(shè)備,其包括一框架緩沖器,用于儲存多數(shù)個像素,該框架緩沖器被分成大小相等的多數(shù)個像素區(qū)塊,每一該些像素區(qū)塊被分成大小相等的多數(shù)個子區(qū)塊;一z緩沖區(qū),與該框架緩沖器相關(guān),該z緩沖區(qū)儲存該框架緩沖器中每一該些像素的一深度值,該深度值是用以決定顯示時的每一該像素的可見度;以及一圖形處理器,用于處理該z緩沖區(qū)和該框架緩沖器中的該些像素,該圖形處理器包括一z范圍緩沖區(qū),具有多數(shù)個欄位用以表示該些區(qū)塊其中之一前深度層的一深度值范圍與一后深度層的一深度值范圍,一遮罩是用以表示該些區(qū)塊其中之一的哪些像素位在該前深度層中與該后深度層中;以及用于儲存該些子區(qū)塊資訊的欄位,該些子區(qū)塊資訊用于表示該些子區(qū)塊的該z緩沖區(qū)需被讀取與否;一第一暫存器,具有用于表示在該些區(qū)塊其中之一的哪些像素是受一圖形基本資料所影響的欄位,且用于表示在該些區(qū)塊其中之一的該些像素的該深度值是受該圖形基本資料的影響;一第二暫存器,具有用于表示在該些區(qū)塊其中之一中的該些像素需要z緩沖區(qū)讀取的欄位;以及一旗標(biāo),用于表示為了該些區(qū)塊其中之一,該z緩沖區(qū)需要被讀取。
本發(fā)明的目的及解決其技術(shù)問題還可采用以下技術(shù)措施進(jìn)一步實(shí)現(xiàn)。
前述的圖形繪示設(shè)備,其中所述的圖形處理器是被配置于判斷在該些區(qū)塊其中之一中的哪些像素是受該圖形基本資料影響,并且在該些區(qū)塊其中之一中的該些像素的該深度值是受該圖形基本資料影響,以作為設(shè)定該第一暫存器的依據(jù);判斷在該些區(qū)塊其中之一中受圖形基本資料影響的該些像素相交于該前深度層、該后深度層或兩者與否;若該z緩沖區(qū)需要被讀取,則設(shè)定該旗標(biāo);根據(jù)在該些區(qū)塊其中之一中受該圖形基本資料影響的該些像素與受影響的該些像素的該深度值來調(diào)整在該z緩沖器中該前深度層與該后深度層的范圍;如果該旗標(biāo)未被設(shè)定,根據(jù)被調(diào)整的該前深度層與該后深度層將一可見像素繪示至該框架緩沖器;如果該旗標(biāo)已被設(shè)定,則根據(jù)相交的判斷來判斷在區(qū)塊中的哪些像素要求讀取該z緩沖區(qū),并相對地設(shè)定在該第二暫存器的欄位、判斷在該些區(qū)塊其中之一中的哪些子區(qū)塊要求讀取該z緩沖區(qū),并相對地設(shè)定該z緩沖區(qū)的欄位、讀取該z緩沖區(qū)以獲得用于該些子區(qū)塊其中之一的該深度值,以及根據(jù)由z緩沖區(qū)中得到的該些子區(qū)塊其中之一的該深度值將可見像素繪示至該框架緩沖器。
本發(fā)明與現(xiàn)有技術(shù)相比具有明顯的優(yōu)點(diǎn)和有益效果。由以上技術(shù)方案可知,本發(fā)明特別定位于減少上述與現(xiàn)有習(xí)知相關(guān)的缺點(diǎn)。特別的是,本發(fā)明包括在電腦圖形顯示系統(tǒng)之內(nèi)被使用來消除z緩沖區(qū)初始化的設(shè)備。另外,通過對本發(fā)明的用途,此系統(tǒng)以像素群為單位執(zhí)行z-比較,而不是計算密集的像素對像素比較,以減少執(zhí)行影像繪示時z緩沖區(qū)存取的次數(shù)。
為了達(dá)到前述發(fā)明目的,本發(fā)明的主要技術(shù)內(nèi)容如下本發(fā)明提出一種繪示圖形基本資料至框架緩沖器的方法,其是作顯示之用,其中框架緩沖器被分成像素大小相等的多數(shù)個區(qū)塊,每一個區(qū)塊具有至少二深度層,以及其中框架緩沖器具有用于框架緩沖器中每一像素的深度值伴生的z緩沖區(qū),且此深度值是用以判斷顯示時這些像素的可見性。此方法包括下列步驟。判斷在框架緩沖器內(nèi)的區(qū)塊是否受到圖形基本資料與否。對受到影響的每一區(qū)塊而言,調(diào)整區(qū)塊的深度層,且判斷用于區(qū)塊的圖形基本資料的任一像素是否與區(qū)塊的任一深度層相交,并將區(qū)塊分成大小相等的多數(shù)個子區(qū)塊,每一子區(qū)塊具有子區(qū)塊遮罩,此子區(qū)塊遮罩包括用于每一子區(qū)塊的一位元。如果用于區(qū)塊的圖形基本資料的任一像素與區(qū)塊的任一深度層相交時,即設(shè)定一旗標(biāo)來表示z緩沖區(qū)要求一次區(qū)塊更新,以形成像素遮罩來表示在區(qū)塊內(nèi)的像素為相交像素,且合并具有子區(qū)塊遮罩的像素遮罩來判斷這些子區(qū)塊是否具有相交像素。再次判斷在框架緩沖器內(nèi)的區(qū)塊是否受到圖形基本資料所影響。對受到影響的每一區(qū)塊,調(diào)整區(qū)塊的深度層,并判斷區(qū)塊是否內(nèi)含設(shè)定用來更新的旗標(biāo)。如果區(qū)塊內(nèi)未含設(shè)定用來更新的旗標(biāo)時,則根據(jù)被調(diào)整的深度層將可見像素繪示至框架緩沖器。如果用來更新的該旗標(biāo)被設(shè)定時,則根據(jù)子區(qū)塊遮罩對被影響的區(qū)塊的每一子區(qū)塊判斷每一子區(qū)塊是否受到相交像素的影響。當(dāng)每一子區(qū)塊受到影響時,則為了相交像素讀取z緩沖區(qū)、調(diào)整可見性項(xiàng)目與將任一可見像素繪示至框架緩沖器。
本發(fā)明的一實(shí)施例,所采用的多邊形類型是一三角形。在本發(fā)明的另一觀點(diǎn)中,每一區(qū)塊具有相對應(yīng)的前深度層與后深度層,其中每一層具有最小深度值到最大深度值的深度值范圍,其中極值例如是被儲存于z范圍緩沖區(qū)。
依照本發(fā)明的較佳實(shí)施例所述,圖形繪示設(shè)備包括框架緩沖器、z緩沖區(qū)與圖形處理器。該圖形處理器包括z范圍緩沖區(qū)、第一暫存器、第二暫存器與一旗標(biāo)??蚣芫彌_器是用來儲存將被顯示的像素,且將框架緩沖器分成大小相等的多數(shù)個區(qū)塊,且每一區(qū)塊被分成大小相等的的多數(shù)個子區(qū)塊。z緩沖區(qū)是與框架緩沖器有關(guān),且儲存框架緩沖器中用于每一像素的深度值。深度值是用來判斷顯示時像素的可見性。圖形處理器是用來處理z緩沖區(qū)和框架緩沖器的像素。z范圍緩沖區(qū)具有一區(qū)域,其是用于表示一區(qū)塊中前深度層的深度值、后深度層的深度值,而遮罩則用來表示區(qū)塊中在前深度層與后深度層的像素;以及用于儲存子區(qū)塊資訊的一區(qū)域,其是為了表示子區(qū)塊是否必須讀取z緩沖區(qū)。第一暫存器具有一區(qū)域,其是用于表示區(qū)塊中的像素是受圖形基本資料影響,以及表示受圖形基本資料影響的區(qū)塊中的像素的深度值。第二暫存器具有一區(qū)域,其是用于表示區(qū)塊中的像素要求去讀取z緩沖區(qū),且旗標(biāo)表示為了區(qū)塊必須去讀取z緩沖區(qū)。圖形處理器被配置作為(i)判斷區(qū)塊中的像素是否受圖形基本資料影響以及區(qū)塊中的像素的深度值是否受圖形基本資料影響,然后再據(jù)以設(shè)定第一暫存器的區(qū)域;(ii)判斷區(qū)塊中受圖形基本料影響的像素是否相交前深度層、后深度層或兩層;(iii)如果為了區(qū)塊必須讀取z緩沖區(qū)時,即設(shè)定一旗標(biāo);(iv)根據(jù)區(qū)塊中被圖形基本資料影響的像素調(diào)整z范圍緩沖區(qū)中前和后深度層的范圍及受影響像素的深度值范圍;(v)如果旗標(biāo)未設(shè)定,根據(jù)所調(diào)整的前和后深度層繪示可看見的像素至框架緩沖器;(vi)如果旗標(biāo)已設(shè)定,判斷在區(qū)塊中哪一個像素需要對z緩沖區(qū)作讀取,且根據(jù)相交判斷來設(shè)定第二暫存器中的區(qū)域,其中相交判斷是為判斷區(qū)塊中的哪個子區(qū)塊需要z緩沖區(qū)被讀取及相應(yīng)地設(shè)定z范圍緩沖區(qū)的區(qū)域,而讀取z緩沖區(qū)是為獲得子區(qū)塊的深度值,且根據(jù)所獲得子區(qū)塊的深度值繪示可看見的像素至框架緩沖器。
如此一來,本發(fā)明的讀取操作顯著地減少了某些z-范圍緩沖區(qū)演算法的執(zhí)行。而且,在本發(fā)明中將不會有沖突,且z-緩沖區(qū)操作被消除。很多繪示演算也會被消除。
這樣,被通過的實(shí)施,沖突不是存在在之內(nèi)的地方子區(qū)塊,經(jīng)由上述可知,本發(fā)明是一種繪示圖形基本資料的系統(tǒng)與方法。其是可用兩個通行方法來達(dá)成,在第一通行中,對于受圖形基本資料所影響的每一區(qū)塊,判斷其中的像素是否相交于該區(qū)塊的前及/或后深度層。如果他們與區(qū)塊中的像素相交,即設(shè)定一旗標(biāo)來表示需要讀取z緩沖區(qū),以判斷區(qū)塊中受影響的像素的可見度。在第二通行中,再次試驗(yàn)區(qū)塊受圖形基本資料影響與否。如果旗標(biāo)未設(shè)定,則根據(jù)區(qū)塊的前和后深度層繪示可見像素至框架緩沖器。如果旗標(biāo)已設(shè)定,則對于受圖形基本資料影響的每一個子區(qū)塊去讀取z緩沖區(qū)與根據(jù)由z緩沖區(qū)讀出的資料,將可見像素繪示至框架緩沖器。
綜上所述,本發(fā)明用于減少圖形繪示系統(tǒng)的記憶體流量的設(shè)備及其方法,可克服現(xiàn)有技術(shù)存在的缺點(diǎn)。特別是本發(fā)明包括在電腦圖形顯示系統(tǒng)之內(nèi)被使用來消除z緩沖區(qū)初始化的設(shè)備。另外,通過對本發(fā)明的用途,此系統(tǒng)以像素群為單位執(zhí)行z-比較,而不是計算密集的像素對像素比較,而可以減少執(zhí)行影像繪示時z緩沖區(qū)存取的次數(shù)。其具有上述諸多的優(yōu)點(diǎn)及實(shí)用價值,并在同類產(chǎn)品及方法中未見有類似的結(jié)構(gòu)設(shè)計及方法公開發(fā)表或使用而確屬創(chuàng)新,在技術(shù)上有較大的進(jìn)步,從而更加適于實(shí)用,而具有產(chǎn)業(yè)的廣泛利用價值,誠為一新穎、進(jìn)步、實(shí)用的新設(shè)計。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能更明顯易懂,以下特舉一較佳實(shí)施例,并配合附圖,詳細(xì)說明如下。


圖1是簡單繪示現(xiàn)有習(xí)知一種繪示顯示系統(tǒng)的半概要方區(qū)塊的示意圖。
圖2是簡單繪示將繪示顯示系統(tǒng)分割成8對8像素顯示區(qū)塊的半概要方區(qū)塊的示意圖。
圖3是繪示依照本發(fā)明一較佳實(shí)施例的一種z范圍緩沖區(qū)的概念性布局圖。
圖4A是繪示用于儲存最大和最小z-值的像素遮罩的資料結(jié)構(gòu)與顯示區(qū)塊中三角形的位元遮罩值的概念性布局圖。
圖4B是繪示一讀取z緩沖區(qū)遮罩的資料結(jié)構(gòu)的概念性布局圖,其是用于儲存在顯示區(qū)塊中一三角形的位元遮罩值。
圖5是繪示依照本發(fā)明一較佳實(shí)施例的一種電腦圖形顯示例行程序的步驟流程方區(qū)塊圖。
圖6A-6G是繪示Z范圍緩沖區(qū)子程式的步驟流程方區(qū)塊圖。
圖7A-7D是繪示比前深度層更靠近觀測點(diǎn)的三角形與涵蓋所有區(qū)塊中的像素的示意圖。
圖8A-8D是繪示比前深度層更靠近觀測點(diǎn)的三角形與至少涵蓋前深度層中的像素的示意圖。
圖9A-9D是繪示比前深度層更靠近觀測點(diǎn)的三角形與至少轉(zhuǎn)換后深度層中的像素的示意圖。
圖10A-10H是繪示比前深度層更靠近觀測點(diǎn)的三角形與涵蓋屬于前和后深度層部份像素的示意圖。
圖11A-11D是繪示三角形中的像素的示意圖,其中z-值是與前和后深度層的z范圍相交。
圖12A-12D是繪示比觀測點(diǎn)到前深度層遠(yuǎn),但比觀測點(diǎn)到后深度層近的一三角形的示意圖,其中是完全涵蓋前深度層的像素。
圖13A-13D是繪示比觀測點(diǎn)到前深度層遠(yuǎn),但比觀測點(diǎn)到后深度層近的一三角形的示意圖,其中是完全涵蓋后深度層的像素。
圖14A-14H是繪示比觀測點(diǎn)到前深度層遠(yuǎn),但比觀測點(diǎn)到后深度層近的一三角形的示意圖,其中是不完全涵蓋后深度層與不完全涵蓋前深度層。
圖15A-15H是繪示三角形中的像素的示意圖,其中z范圍與前深度層的z范圍相交,而非后深度層,并涵蓋所有后深度層的像素。
圖16A-16H是繪示三角形中的像素的示意圖,其中z范圍與后深度層的z范圍相交,而非前深度層,并藉由前深度層全部涵蓋像素。
圖17A-17C是繪示讀取z緩沖區(qū)遮罩RZMASK的形成示意圖,其中RZMASK=CZMASK,且有關(guān)于ZTEST值。
圖18A-18C是繪示是繪示讀取z緩沖區(qū)遮罩RZMASK的形成示意圖,其中RZMASK=CZMASK& RZMASK,且有關(guān)于ZTEST值。
圖19A-19C是繪示是繪示讀取z緩沖區(qū)遮罩RZMASK的形成示意圖,其中RZMASK=CZMASK&~RZMASK,且有關(guān)于ZTEST值。
圖20A-20C是繪示是繪示讀取z緩沖區(qū)遮罩RZMASK的形成示意圖,其中RZMASK、CZMASK與RZMASK是與圖20A-20C所示相同,且與子區(qū)塊相關(guān)的ZTEST值是被選定為不同于圖20A-20C。
10處理器 12框架緩沖器14顯示監(jiān)視器 16顯示控制器18記憶體 20z緩沖區(qū)30三角形 32像素34區(qū)塊 301ZTEST302FMIN304FMAX306BMIN308BMAX310RMASK 402CMIN404CMAX406CMASK412RZMASK 500主程式501~548各個步驟流程 600子程式605~650各個步驟流程 72~92各個步驟流程93~98各個步驟流程 102~116各個步驟流程117~128各個步驟流程 132~144各個步驟流程200已顯示目標(biāo) 202顯示區(qū)塊204、210、212目前三角形218、219目前三角形221、225、226目前三角形234、238、244目前三角形208、214后深度層 220、230、236后深度層240、246后深度層 216前深度層222、223、224、227前深度層 232、242、248前深度層具體實(shí)施方式
為更進(jìn)一步闡述本發(fā)明為達(dá)成預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實(shí)施例,對依據(jù)本發(fā)明提出的用于減少圖形繪示系統(tǒng)的記憶體流量的設(shè)備及其方法其具體實(shí)施方式
、結(jié)構(gòu)、方法、步驟、特征及其功效,詳細(xì)說明如后。
概括地說,本發(fā)明為提供一個在一個三維圖形目標(biāo)的產(chǎn)生和顯示期間減少z緩沖區(qū)存取次數(shù)的系統(tǒng)和方法。其是可藉由辨認(rèn)形成目標(biāo)的像素群的最小和最大深度值(例如z-值)來完成。然后進(jìn)行極端z-值(例如最小及/或最大)的Z比較,而非群里面所有的z-值而因此達(dá)成在計算周期內(nèi)進(jìn)行儲存。因?yàn)闆]有z-讀取請求需要遞交給顯示控制器16(如圖1所示),因此可保存記憶體頻寬。藉由僅在極端z-值作Z比較,因此可使群里面殘余的像素有準(zhǔn)確歸納的z-值。如果無法完成這樣的歸納,則稍后執(zhí)行群里面所有像素的像素對像素的Z比較。由于像素對像素的比較一般僅有幾個顯示區(qū)塊需要,然而已達(dá)到效能的增進(jìn)。
在本發(fā)明的較佳實(shí)施例中,三維目標(biāo)是由定義三角形表面的一頂點(diǎn)集合來表示。然而,熟悉該項(xiàng)技藝人士也許會認(rèn)為其他類型的多邊形較佳,包括可以用來表示一三維目標(biāo)的圓形、正方形、五邊形或六角形。不過,熟悉該項(xiàng)技藝人士還是可以由本發(fā)明的教授延伸至其他形式的多邊形。
在本發(fā)明的較佳實(shí)施例中,顯示螢?zāi)槐环殖梢粋€或多個顯示區(qū)塊,接著探測每一區(qū)塊的深度特性。請參閱圖2所示,是螢?zāi)槐粎^(qū)分為8像素對8像素(8×8)、包含64個像素的顯示區(qū)塊示意圖。二者則一的應(yīng)用還可以例如是8×4、16×4、4×8,4×4或16×8個區(qū)塊。
在一實(shí)施例中,在顯示區(qū)塊中的每一像素是部份或全部與前深度層或后深度層相關(guān)。前深度層包括與螢?zāi)坏那熬跋嚓P(guān)的像素;后深度層包括螢?zāi)坏暮缶跋嚓P(guān)的像素。在慣例中,如果顯示區(qū)塊只有一層來表示,其可以表示成該后深度層代替前深度層。最初,一區(qū)塊是空的且所有屬于背景的像素是為表示后深度層。如一新的多邊形,在本實(shí)施例中將描述一三角形,其是可能被顯示區(qū)塊采用來作顯示,此系統(tǒng)比較z-值的極值,實(shí)際上,是為用于新三角形的z-值的范圍。該z范圍被比較是為前及/或后深度層。如此,系統(tǒng)判斷在新三角形中的像素是否為可見的,以及是否被已在顯示區(qū)塊中其他三角形所遮掩。
一般來說,如果目前的三角形的z-值沒有與前深度層及/或后深度層的z范圍相交,在顯示區(qū)塊中的可見像素可在沒有執(zhí)行z緩沖區(qū)讀取的情況下,辨認(rèn)其是否為已經(jīng)被顯示的三角形或新三角形。在這里所提到的“相交”是為目前三角形或在顯示區(qū)塊中的影像的z范圍與前深度層或后深度層的二者之一或全部的z范圍部份重疊。另一方面,如果z范圍相交,則現(xiàn)有習(xí)知像素對像素的z比較將用以決定新三角形的哪個像素在舊三角形之前以及新三角形的哪個像素在舊三角形之后。在新三角形中的像素是將與前深度層或后深度層二者其中之一相關(guān)。
常見地,如果像素是在前深度層前面,其是與前深度層有關(guān)。如果像素是在前深度層和后深度層之間,其通常是與二層中較靠近的相關(guān)。如果像素是在后深度層后面,其變成與后深度層相關(guān)。例如,如果新三角形位于在前深度層前面,所有新三角形中的像素是可看見的,且應(yīng)該被顯示。如果這個三角形并未涵蓋區(qū)塊中所有的像素,其將與區(qū)塊中的前深度層相關(guān)。
群Z比較是經(jīng)由z范圍緩沖區(qū)(范圍緩沖區(qū))的比較來完成的。相對于儲存每一像素的z-值的z緩沖區(qū),范圍緩沖區(qū)只儲存用于顯示區(qū)塊的四個z-值(1)區(qū)塊的前深度層的最小z-值,(2)區(qū)塊的前深度層的最大z-值,(3)區(qū)塊的后深度層的最小z-值,(4)區(qū)塊的后深度層的最大z-值。另外,范圍緩沖區(qū)儲存用于區(qū)塊中像素的位元遮罩,以表示是否屬于前深度層或后深度層的一個特別像素。由于在晶片中z范圍緩沖區(qū)充足地緊湊接觸,且外部沒有讀取記憶體的需要。此則巨大的增加了處理速度和減少匯流排流量。
在本發(fā)明的較佳實(shí)施例中,每一顯示區(qū)塊被分成好幾個顯示子區(qū)塊。顯示區(qū)塊可能被分成2像素對8像素(2×8)包含16個像素的顯示子區(qū)塊。其他的維度應(yīng)用還可以例如是2×2、2×4、2×16、8×4、16×4、4×8、4×4或16×8個區(qū)塊。圖17-20是表示一些2×8和8×2子區(qū)塊的例子。
請參閱圖3所示,是廣義描述范圍緩沖區(qū)的圖。FMIN區(qū)域302和FMAX區(qū)域304分別儲存顯示區(qū)塊的前深度層的最小和最大的z-值。同樣,BMIN區(qū)域306和BMAX區(qū)域308分別儲存顯示區(qū)塊的后深度層的最小和最大的z-值。在圖3的實(shí)施例中,F(xiàn)MIN、FMAX、BMIN和BMAX區(qū)域302-308是分別占了15位元的儲存空間。像素遮罩區(qū)域RMASK 310占了64位元的儲存空間,且每一位元對應(yīng)于8×8區(qū)塊中的一個像素。RMASK區(qū)域310中每一位元相對應(yīng)的顯示區(qū)塊中的像素是分別根據(jù)是否屬于后深度層或前深度層將其設(shè)定為0與1其中之一。ZTEST區(qū)域301的4個位元是被提供用于儲存區(qū)塊34的子區(qū)塊資訊,其中位元值為1是表示為了相對應(yīng)的子區(qū)塊必須執(zhí)行z緩沖區(qū)的讀取,且位元值為0是表示不須執(zhí)行z緩沖區(qū)的讀取。以下將進(jìn)一步解釋ZTEST區(qū)域。
請參閱圖4A所示,是廣義描述如圖2所示的用于儲存新三角形30的最小和最大z-值及位元遮罩值的資料結(jié)構(gòu),并請參考顯示區(qū)塊34。CMIN區(qū)域402和CMAX區(qū)404各自代表受三角形30影響的區(qū)塊34中像素的最小和最大z-值。CMIN和CMAX區(qū)域402與404是分別占了16位元的儲存空間。CMASK區(qū)域406是位元遮罩,且代表由三角形30接觸的在顯示區(qū)塊34中的像素32。CMASK區(qū)域406占了64位元的儲存空間。請參閱圖4B所示是廣義描述如圖2所示的用于儲存目前的三角形30的位元遮罩值的圖,且其是與必須執(zhí)行z緩沖區(qū)讀取的顯示區(qū)塊34有關(guān)。
重要的是,本發(fā)明所揭露的技術(shù)可以延伸至超過二層的執(zhí)行。例如,本發(fā)明的教授可延伸至一個使用四層顯示的系統(tǒng)。在這樣系統(tǒng)中,范圍緩沖區(qū)是被配置以四對極值。而且,在這樣系統(tǒng)中,位元遮罩是被配置每像素至少包括二位元。相對地,例如用于一個64像素顯示區(qū)塊中,一適當(dāng)?shù)奈辉谡謱信c其相關(guān)的至少128位元(例如每像素二位元)。用于新影像的范圍緩沖區(qū)和位元遮罩會同樣被修改。的確,在不脫離本發(fā)明的精神下,其可以具有多種變化。
請參閱圖5所示是繪示根據(jù)本實(shí)施例所描述的步驟500的流程圖。步驟500根據(jù)電腦程式慣例作描述,但那些技巧的技術(shù)特征可使用在邏輯電路上,以更加快速地完成此步驟。的確,本發(fā)明的實(shí)施例可以被實(shí)施在數(shù)位電路拓?fù)浣Y(jié)構(gòu)。數(shù)位電路拓?fù)浣Y(jié)構(gòu)包括邏輯閘和記憶體元件,并可以邏輯閘和記憶體元件在單一積體電路上形成一z范圍緩沖區(qū),以提供能與現(xiàn)有習(xí)知作區(qū)別的顯著改善的功效。
圖5的步驟500開始,其是為一個空白螢?zāi)徊⒚恳粎^(qū)塊的FMIN、FMAX、BMIN和BMAX值初始化至最大可能z-值,例如,背景的z-值。在本實(shí)施例中,最大的z-值是為“1.0”,且最小的z-值是為“0.0”。相對地,可允許的z-值是包含在0.0和1.0之間的正?;募现?。熟習(xí)此技藝者還可將其應(yīng)用于其他的范圍。用于每一區(qū)塊的RMASK區(qū)域也被初始化為0,以描述所有屬于后深度層的像素最初是為背景,例如,對應(yīng)于每個區(qū)塊的每個RMASK區(qū)域的每個位元被設(shè)定為0,且用于每一子區(qū)塊的ZTEST區(qū)域被初始化為0,以描述沒有子區(qū)塊是被標(biāo)記來要求執(zhí)行讀取Z-緩沖區(qū)子程式。
在第一通行階段之后,此步驟接著詢問是否進(jìn)行在所有三角形表面編造一三維目標(biāo)的處理(步驟502),以決定哪個子區(qū)塊要求執(zhí)行讀取Z-緩沖區(qū)子程式,并且將對應(yīng)的ZTEST區(qū)域標(biāo)記為“1”(步驟504~512)。如果有,第一通行證階段末端和第二個通行證階段的步驟隨后而來(步驟520),以執(zhí)行用于必要子區(qū)塊的Z緩沖區(qū)子程式;例如,那些子區(qū)塊具有對應(yīng)的ZTEST區(qū)域標(biāo)記為“1”(步驟522~548)。否則,將采用一個新三角形的步驟(步驟504),如一即時三角形,并試驗(yàn)即時三角形可涵蓋顯示區(qū)塊(步驟506~512)。如果所有區(qū)塊已全部被試驗(yàn)則由步驟506分支是來表示,而如果在步驟502中沒有多的三角形要試驗(yàn),則在步驟504中處理下一個三角形。否則,步驟采用一個新區(qū)塊(步驟508),并詢問涵蓋顯示區(qū)塊的即時三角形現(xiàn)在正被試驗(yàn)(步驟510)。Z范圍緩沖區(qū)子程式(步驟512)引用一個肯定的答案,以給ZTEST區(qū)域適當(dāng)?shù)闹?。如果答案是?fù)的,則表示藉由分支否到?jīng)Q策方塊510,如果在步驟506中有任何方塊需要進(jìn)一步試驗(yàn),步驟則前進(jìn)到下一個方塊步驟508。
在第一通行階段中,所有三角形被試驗(yàn)后,步驟進(jìn)入第二通行階段(步驟520)。此步驟接著詢問是否在第二通行階段進(jìn)行在所有三角形表面編造一三維目標(biāo)的處理在框架緩沖器中的像素資料已準(zhǔn)備用于顯示。否則,將采用一個新三角形的步驟(步驟524),如一即時三角形,并試驗(yàn)即時三角形可涵蓋顯示區(qū)塊(步驟526~548)。如果所有區(qū)塊已全部被試驗(yàn)則由步驟526分支是來表示,而如果在步驟522中沒有多的三角形要試驗(yàn),則在步驟524中處理下一個三角形。否則,步驟采用一個新區(qū)塊(步驟528),并詢問涵蓋顯示區(qū)塊的即時三角形現(xiàn)在正被試驗(yàn)(步驟530)。Z范圍緩沖區(qū)子程式(步驟532)引用一個肯定的答案,以決定是否讀取Z范圍緩沖區(qū)。如果答案是負(fù)的,則表示藉由分支否到?jīng)Q策方塊534,如果在步驟526中有任何方塊需要進(jìn)一步試驗(yàn),步驟則在沒有預(yù)先執(zhí)行Z緩沖區(qū)子程式的情況下,進(jìn)一步將可見像素繪示至框架緩沖器(步驟536),然后在步驟528中前進(jìn)到新方塊。否則,則表示由分支是到?jīng)Q策方塊534,此步驟則進(jìn)一步采用一新子區(qū)塊(步驟542),并因此試驗(yàn)ZTEST值(步驟544)直到在目前區(qū)塊中所有子區(qū)塊均已被試驗(yàn)(步驟540)。在步驟544中,如果ZTEST=1,這意味在試驗(yàn)子區(qū)塊中讀取Z緩沖區(qū)子程式是必要的,從而導(dǎo)致執(zhí)行Z緩沖區(qū)子程式(步驟546),以決定哪個像素應(yīng)該被顯示(可見像素),且因此將他們繪示至框架緩沖器(步驟548)。如果ZTEST=0,其是表示我們在沒有執(zhí)行Z緩沖區(qū)子程式的情況下可決定可見像素,并在步驟548中直接將他們繪示至框架緩沖器。
進(jìn)一步細(xì)節(jié)如以下所述,在第二通行階段中(步驟532),Z范圍緩沖區(qū)子程式判斷用于子區(qū)塊的ZTEST值,并設(shè)定READ_Z_BUFFER為真或假二者其中之一,且為必要的子區(qū)塊執(zhí)行Z緩沖區(qū)子程式。READ_Z_BUFFER是用來判斷像素對像素的z比較是否是必要的。ZTEST區(qū)域判斷哪個子區(qū)塊要求執(zhí)行Z緩沖區(qū)子程式。在執(zhí)行Z緩沖區(qū)子程式(步驟532)的判斷后,圖5的主要步驟是為檢查讀取READ_Z_BUFFER(步驟534)。如果READ_Z_BUFFER被設(shè)定為真,且子區(qū)塊所屬的ZTEST=1,此步驟則引用Z緩沖區(qū)子程式(步驟546)用于進(jìn)行像素對像素的比較。步驟然后進(jìn)行寫入像素的z-值,其中像素的z-值由Z緩沖區(qū)取得,并在顯示器上將這些像素繪示在舊像素的地方。另一方面,如果READ_Z_BUFFE被設(shè)定為假,像素對像素的z-值比較則就不是那要必要的了(參見步驟534的分支否),但是其仍然必須將像素繪示至框架緩沖器(步驟536)。在二者擇一的實(shí)施例中,然而,在某個方面我們能簡單地記錄可見像素,而不是將他們繪示至框架緩沖器(步驟548或536),并稍后將他們繪示至框架緩沖器(未繪示在流程圖中)。
請參閱圖6A-6G所示,是繪示圖5的Z范圍緩沖區(qū)子程式600(步驟512、532)的步驟流程示意圖。圖6A是Z范圍緩沖區(qū)的主要流程圖,并藉由判斷是否目前影像被繪示的比前深度層更靠近作開始(步驟605)。如果答案為是,則執(zhí)行子程式B(步驟610);否則,子程式進(jìn)一步判斷目前影像是否與前深度層和后深度層均相交(步驟615)。如果答案為是,執(zhí)行子程式C(步驟620);否則,子程式進(jìn)一步判斷目前影像是否比前深度層遠(yuǎn),而比后深度層近(步驟625)。如果答案為是,執(zhí)行子程式D(步驟630);否則,子程式進(jìn)一步判斷目前影像是否與前深度層相交,而非與后深度層相交(步驟635)。如果答案為是,執(zhí)行子程式E(步驟640);否則,子程式進(jìn)一步判斷目前影像是否與后深度層相交,而非與前深度層相交(步驟645)。如果答案為是,執(zhí)行子程式F(步驟650);否則,結(jié)束子程式600并返回主流程500。
在步驟605中,當(dāng)目前影像被繪示的比前深度層更接近時,則采用子程式B 610。其是發(fā)生在當(dāng)CMAX值少于FMIN值時(例如CMAX<FMIN)。當(dāng)顯示區(qū)塊中的目前三角形比前深度層更靠近觀測點(diǎn)時,則對其測試,如果新影像的確比前深度層更靠近時(例如在步驟605的是),READ_Z_BUFFER被設(shè)定為假,并且目前三角形的區(qū)塊中的像素是被拒絕作不需要的像素對像素的z緩沖區(qū)比較。之前提過不具執(zhí)行像素對像素比較提供真實(shí)的功效優(yōu)點(diǎn)。新像素可因此在未執(zhí)行密集計算與密集記憶體操作的情況下顯示在舊像素的地方。
圖6B的子程式B 610通過步驟74至92的操作進(jìn)行范圍緩沖區(qū)的下次更新。在步驟74中,子程式B詢問目前影像是否涵蓋顯示區(qū)塊的所有像素(例如,CMASK的所有位元被設(shè)定為1)。在圖7A顯示區(qū)塊202中已顯示目標(biāo)200被目前三角形204所掩藏而無法看到,且目前三角形204是涵蓋整個顯示區(qū)塊202。圖7B是概略繪示圖7A的z范圍與新像素在x、y方向的間距(被占了的區(qū)域)、圖7A所談到的前深度層和后深度層的頂視圖。在圖7B中,可以看見前深度層涵蓋目前區(qū)塊202的左邊部份,后深度層涵蓋目前區(qū)塊202的右邊部份,且這兩層構(gòu)成區(qū)塊202。前深度層在FMIN和FMAX之間有一范圍,且后深度層在BMIN和BMAX之間有一個范圍。新像素涵蓋整個區(qū)塊202,且因此跨越左邊至右邊。新像素在CMIN和CMAX之間有一范圍,且這個范圍不與前深度層相交,亦即,目前形式為CMAX<FMIN。圖7C說明在考慮目前三角形的新像素的影響后,前和后深度層在區(qū)塊202中的RMASK的變動,即是考慮到新像素的影響。如先前所述,只一層存在這情況,即,藉由新三角形204建立的層在步驟76中被設(shè)定,其如后深度層藉由設(shè)定一值0到RMASK區(qū)域。另外,在步驟76中,前和后深度層的最小z-值,F(xiàn)MIN和BMIN,是被設(shè)定新三角形最小的z-值CMIN,且在步驟76中前和后深度層的最大z-值,BMAX和FMAX,是被設(shè)定為新三角形最大的z-值CMAX。圖7D是概略繪示圖7C的z范圍與前深度層及后深度層在x、y方向的間距(被占據(jù)的區(qū)域)的頂視圖。然后子程式B回到圖5的步驟500。
然而,如果新三角形未涵蓋顯示區(qū)塊的所有像素,子程式B為了調(diào)查新三角形是否至少涵蓋屬于前深度層的所有像素而進(jìn)行步驟78。此情節(jié)是在圖8A和圖8B作說明,且圖8B是為圖8A的概略頂視圖,其中,前深度層206和部份后深度層是由目前三角形210所遮掩。圖8B是為圖8A的概略頂視圖。在這情況下,在步驟80中,新像素藉由使RMASK=CMASK而成為新前深度層。相對地,在步驟80中,F(xiàn)MIN被設(shè)定為CMIN,F(xiàn)MAX被設(shè)定為CMAX。后深度層208的最小和最大值則保持為相同。圖8C說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖8D是為圖8C的概略頂視圖。然后子程式B回到圖5的步驟500。
如果目前新三角形未至少涵蓋屬于前深度層的像素,在步驟82中,子程式B其次試驗(yàn)?zāi)壳靶氯切问欠裰辽俸w屬于后深度層的所有像素。此情節(jié)是在圖9A和圖9B作說明,且圖9B是為圖9A的概略頂視圖,其中,后深度層是為配置在先前顯示區(qū)塊202的背景的地方。目前三角形212涵蓋所有后深度層214和部份的前深度層216。在這個情況下,在步驟84中,舊前深度層216的范圍藉由使BMIN=FMIN和BMAX=FMAX成為新的后深度層。如先前的例子,顯示區(qū)塊202中的像素是被目前三角形212所涵蓋,然后藉由使RMASK=CMASK成為新的前深度層。而且,F(xiàn)MIN和FMAX值是分別被設(shè)定為CMIN和CMAX值。圖9C說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖9D是為圖9C的概略頂視圖。子程式B回到圖5的步驟500。
如果前或后深度層不完全被新三角形所涵蓋,在步驟86中,子程式B其次詢問新三角形是否涵蓋部份前深度層和部份后深度層,以及FMIN和CMAX之間的距離是否少于或等于BMIN和FMAX之間的距離,亦即,F(xiàn)MIN-CMAX<=BMIN-FMAX。請合并參閱圖10所示,此距離檢查是與和舊前深度層222一樣較靠近的目前三角形218有關(guān),其中是為至少前深度層222的部份或舊前深度層222是否與顯示區(qū)塊202中的后深度層220有關(guān)。在步驟86中,檢查舊前深度層222是否將與顯示區(qū)塊202中的后深度層220有關(guān)系包括新三角形218?;旧?,前深度層的新范圍成為那些舊前深度層222和目前三角形218的綜合。同樣地,新前深度層的間距成為那些舊前深度層222和目前三角形218的綜合。在步驟88中,其更包括藉由從還未包括舊RMASK值的CMASK完成任何新像素的新RMASK值(例如,RMASK不等于CMASK)。而且,新FMIN值成為CMIN和FMIN值的最小值,且新FMAX值成為CMAX和FMAX值的最大值。BMIN和BMAX值依然保持是88。圖10C說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖10D是為圖10C的概略頂視圖。子程式B回到圖5的步驟500。
但是,如決策方塊86中所詢問,如果FMIN和CMAX之間的距離大于BMIN和FMAX之間的距離,亦即,F(xiàn)MIN-CMAX>BMIN-FMAX,而像素與前深度層222(如圖10E和圖10F所示)相關(guān)變成像素與后深度層220相關(guān),其中,前深度層222是未被目前三角形219所涵蓋。相對地,在步驟92中,RMASK被設(shè)定與CMASK相等。然后新像素成為新的前深度層。這兩層最小和最大z-值是藉由設(shè)定BMIN=FMIN、BMAX=BMAX(例如,未改變)、FMIN=CMIN與FMAX=CMAX 92作更新。圖10G說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖10H是為圖10G的概略頂視圖。子程式B回到圖5的步驟500。
提到回到圖6A的步驟605,如果在顯示區(qū)塊的新三角形未比前深度層更靠近觀測點(diǎn),子程式進(jìn)行步驟615藉由CMIN比FMAX小以及CMAX是否大于BMIN(例如,CMIN<FMAX)來詢問新影像是否與前和后深度層相交。如果答案為是,Z范圍緩沖區(qū)子程式600更進(jìn)一步到子程式C 620,其中如圖11A與11B所繪示的目前三角形221的z范圍與前深度層223和后面層219的z范圍相交。因而,請合并參閱圖6C所示,z緩沖區(qū)讀取必須用來執(zhí)行像素對像素的比較與判斷哪個像素自投影掩藏及哪個像素不是。相對地,在步驟93中,READ_Z_BUFFER被設(shè)定為真。一個讀取z緩沖區(qū)遮罩,RZMASK,例如是與CMASK相同大小,是被提供作為一位元遮罩來記錄用于目前區(qū)塊202的每一像素的一位元,以判斷如果z緩沖區(qū)讀取是必要的,其中像素是執(zhí)行像素對像素的z比較。如果目前三角形的新像素與在范圍內(nèi)的前深度層或后深度層均相交,則將RZMASK的位元設(shè)定為“1”。在目前的情況下,目前三角形的新像素與在范圍內(nèi)的前深度層與后深度層均相交,因此RZMASK=CMASK。如圖17A-17C所示的一個例子。子程式C進(jìn)一步到?jīng)Q策方塊95以檢查目前是哪個階段。如果它在第一通行階段,在步驟96中,我們必須決定用于顯示區(qū)塊202中所有子區(qū)塊的ZTEST值,以便在第二個通行階段可以使用ZTEST值。特殊子區(qū)塊的ZTEST值可藉由執(zhí)行對應(yīng)于此子區(qū)塊的所有RZMASK位元的按位元(bit-wise)邏輯或閘操作來獲得。因?yàn)镽ZMASK記錄要求執(zhí)行Z-BUFFER子程式的所有位元,ZTEST區(qū)域記錄介入執(zhí)行Z-BUFFER子程式的所有子區(qū)塊。如圖17A-17C所示的例子,顯示區(qū)塊包括四個子區(qū)塊、SUB-BLOCK 0、SUB-BLOCK 1、SUB-BLOCK 2和SUB-BLOCK 3,且ZTEST是 。此結(jié)果可解釋成如果子區(qū)塊包含要求執(zhí)行z緩沖區(qū)子程式的像素,對應(yīng)的ZTEST區(qū)域會被設(shè)定為“1”;否則,對應(yīng)的ZTEST區(qū)域會被設(shè)定為“0”,且沒有z緩沖區(qū)子程式是必須的。否則在步驟95中的答案否即表示已完成第一通行階段,且已設(shè)定ZTEST區(qū)域。在步驟98中,子程式C進(jìn)行更新范圍緩沖區(qū)。此新像素和與前深度層相關(guān)的像素藉由使所有像素的RMASK=“0”,而變成新的后深度層。在步驟98中,新的BMIN和FMIN值被設(shè)定為小于舊的CMIN和FMIN值。在步驟98中,新的BMAX和FMAX值被設(shè)定為大于舊的CMAX和BMAX值。圖11C說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖11D是為圖11C的概略頂視圖。子程式B回到圖5的步驟500。
回到圖6A的步驟605,如果新影像未與前和后深度層相交(例如,步驟615的分支否),子程式其次詢問新影像是否比前深度層遠(yuǎn),而比后深度層近且未相交在步驟625中,如果CMIN>FMAX和CMAX<BMIN,則代表是。這個情況證實(shí)目前影像緊密地位于前和后深度層間,且子程式進(jìn)一步到子程式D630。請參閱圖6D所示。由于z范圍不相交,在步驟102中,子程式D將READ_Z_BUFFER設(shè)定為假。接著,在步驟104中,子程式D由首先詢問是否整個新像素被前深度層所涵蓋,如圖12A和12B所示,來更新范圍緩沖區(qū)。目前三角形225完全地涵蓋在前深度層224的投影,因而藉由圖5的主步驟將不會顯示。圖12C說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖12D是為圖12C的概略頂視圖。在這種情況下,更新對范圍緩沖區(qū)不是必要的,且子程式D簡單地回到圖5的步驟500。
否則,如果整個新像素未被前深度層所涵蓋,在步驟106中,子程式D其次詢問在后深度層中,新三角形是否涵蓋所有像素。請參閱如圖13所示,未被前深度層227涵蓋的目前三角形226的新像素是可見的;因此,那些像素可以被顯示,并做成背景后深度層。而且,新三角形226涵蓋后深度層230與顯示區(qū)塊中未被涵蓋的像素,亦即,未被涵蓋的舊前深度層會成為新前深度層。因而,在步驟108中,RMASK值與前深度層最小值和最大值依然相同。然而,由于新像素現(xiàn)在是與新后深度層108相關(guān),所以BMIN和BMAX值是分別被設(shè)定為CMIN和CMAX。圖13C說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖13D是為圖13C的概略頂視圖。然后子程式D回到圖5的步驟500。
在步驟106中,步驟以負(fù)響應(yīng)處理步驟110。在步驟110中,步驟詢問新影像是否均未整個被前深度層與后深度層所涵蓋,且較靠近前深度層(例如CMIN和FMAX值之間的差異是小于或等于BMIN和CMAX值之間的差異,或更加精確地,CMIN-FMAX小于等于BMIN-CMAX)。圖14A和14B說明是的反應(yīng)。由于前深度層232最多僅覆蓋做成目前三角形234的部份新像素,未被涵蓋的像素是可見的,且因而被顯示。在這個例子中,目前三角形234未被前深度層232涵蓋,且未被后深度層236涵蓋。因此,在步驟110中,對詢問的答案為是,因?yàn)樾氯切问请x前深度層較近,則子程式D進(jìn)行將像素設(shè)定為由目前三角形234所覆蓋,如前深度層232的部份。換句話說,新像素和前深度層合并入新前深度層在此范圍和此間距。在步驟112中,這是由使RMASK綜合舊的RMASK和CMASK(例如,RMASK不等于CMASK,或RMASK|=RMASK|CMASK)做成。而且,在步驟112中,新FMIN值成為CMIN和FMIN值的最小值,以及新FMAX值成為CMAX和FMAX值的最大值。BMIN和BMAX值則保持不變。圖14C說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖14D是為圖14C的概略頂視圖。然后子程式D回到圖5的步驟500。
若步驟110的答案為否,即,新三角形較靠近后深度層,如圖14E和圖14F所示(例如,F(xiàn)MIN和CMAX之間的距離大于BMIN和FMAX之間的距離,或更加精確地,CMIN-FMAX>BMIN-CMAX),前深度層未改變,且RMASK值保持與步驟116相同。因此,新像素是與后深度層相關(guān)。前深度層的最小和最大值也依然是相同。但新BMIN值被設(shè)定為舊BMIN和CMIN值的最小值,且新BMAX值被設(shè)定為舊BMAX和CMAX值的最大值。圖14G說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖14H是為圖14G的概略頂視圖。然后子程式D回到圖5的步驟500。
請回到圖6所示的子程式600的決策方塊625,對決策方塊635為否的回應(yīng),其中子程式詢問目前新影像是否與前深度層相交,而不是后深度層(例如,在步驟635中,CMIN<FMAX與CMAX<BMIN)。如果答案為是,步驟進(jìn)行到子程式E 640,其中新像素的z范圍與前深度層的z范圍相交,而不是后深度層。因此,請參閱圖6E所示,在步驟117中,READ_Z_BUFFER被設(shè)定為真,且因此要求讀取z緩沖區(qū)。
然后子程式E進(jìn)行到步驟118,以設(shè)定RZMASK的值來判斷哪個像素要求執(zhí)行像素對像素的z緩沖區(qū)比較。在目前情況下,目前三角形與前深度層相交,且因此,使相交的像素可以用于判斷與藉由在CMASK和RMASK上按位元邏輯及閘的操作來設(shè)定,也因此RZMASK=CMASK & RMASK。如圖18A-18C所示的例子。子程式E進(jìn)一步到?jīng)Q策方塊119來檢查目前在哪一個階段。如果在第一通行階段,在步驟120中,我們必須判斷在顯示區(qū)塊202中用于所有子區(qū)塊的ZTEST值,以便在第二個通行階段使用ZTEST值。特殊子區(qū)塊的ZTEST值是可藉由執(zhí)行對應(yīng)此子區(qū)塊所有RZMASK位元的按位元邏輯或閘的操作來獲得。如圖18A-18C所示的例子,顯示區(qū)塊包括四個子區(qū)塊、SUB-BLOCK 0、SUB-BLOCK 1、SUB-BLOCK 2、和SUB-BLOCK 3,且ZTEST為 。此結(jié)果可解釋為如果子區(qū)塊包含要求執(zhí)行z緩沖區(qū)子程式的像素,對應(yīng)的ZTEST區(qū)域會被設(shè)定為“1”;否則,對應(yīng)的ZTEST區(qū)域會被設(shè)定為“0”,且沒有z緩沖區(qū)子程式是必須的。否則在步驟119中的答案否,即表示已完成第一通行階段,且已設(shè)定ZTEST區(qū)域。,步驟進(jìn)一步由在步驟122中詢問圖15A和15B所示的目前三角形238是否涵蓋在后深度層的所有像素來更新范圍緩沖區(qū)。在這個特殊例子中,后深度層240是顯示區(qū)塊202的背景部份,且未被前深度層242所涵蓋。如果答案為是,在步驟124中,將RMASK值的每位元設(shè)定為“0”。因此,三角形238是由新像素構(gòu)成,且在前深度層242中的像素被合并為單一層的范圍和間距內(nèi),且變成區(qū)塊的新的后深度層。在步驟124中,新BMIN和FMIN值均為小于CMIN和舊FMIN值的集合。在步驟124中,新BMAX和FMAX值均為大于CMAX和舊FMAX值的集合。圖15C說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖15D是為圖15C的概略頂視圖。然后子程式E回到圖5的步驟500。
然而,如果對步驟122的答案為否,即,如圖15E和15F所示,新三角形未涵蓋在后深度層中的所有像素,新像素增加為前深度層的一部份(例如,RMASK不等于CMASK或RMASK=RMASK|CMASK),在步驟128中。新FMIN值成為CMIN和FMIN值的最小值,且在步驟128中,新FMASK值成為CMAX和FMA的最大值。BMIN和BMAX值依然是保持在128。圖15G說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖15H是為圖15G的概略頂視圖。然后子程式E回到圖5的步驟500。
回到圖6A的步驟635,這詢問之否的分支導(dǎo)致子程式進(jìn)一步在步驟645詢問新影像是否與后深度層相交,而不是前深度層(例如,CMIN大于等于FMAX,& CMIN<BMAX,& CMAX>BMIN)。如果反應(yīng)為是即表示新像素z范圍與后深度層的z范圍相交,而不是前深度層的z范圍,且步驟進(jìn)一步到子程式F 650。請參閱圖6F所示。子程式F然后進(jìn)行步驟132詢問前深度層是否蓋構(gòu)成目前三角形的所有新像素。在步驟134中,由于新像素被前深度層遮掩,所以將READ_Z_BUFFER的變數(shù)設(shè)定為假。如圖16A和16B所示,新像素的z-值構(gòu)成與后深度層246相交的目前三角形244。但是,那些像素由前深度層248的投影所掩藏。相對地,不需要更進(jìn)一步的動作。圖16C說明在考慮目前三角形的新像素的影響后,RMASK的變動,且圖16D是為圖16C的概略頂視圖。在這種情況下,更新對范圍緩沖區(qū)不是必要的,且子程式F簡單地回到圖5的步驟500。
在步驟132中,否的回應(yīng)導(dǎo)致子程式F在步驟136中詢問前深度層是否為涵蓋所有新像素。在這種情況下,在步驟138中,由于新像素的z-值的像素對像素的比較,READ_Z_BUFFER被設(shè)定為真,其中,在z緩沖區(qū)的z-值必須被執(zhí)行。子程式F然后進(jìn)行到步驟138中來設(shè)定RZMASK的值,以判斷哪個像素需要被執(zhí)行像素對像素的z緩沖區(qū)比較。在目前的情況下,目前三角形與后深度層相交,使相交的像素可以用于判斷與藉由在CMASK和~RMASK(“~RMASK”是表示RMASK的按位元的倒數(shù))上按位元邏輯及閘的操作來設(shè)定,也因此,RZMASK=CMASK & RMASK。如圖19A-圖19C所示的例子。子程式F進(jìn)一步到?jīng)Q策方塊140來檢查目前在哪一個階段。如果在第一通行階段,在步驟142中,我們必須判斷在顯示區(qū)塊202中用于所有子區(qū)塊的ZTEST值,以便在第二個通行階段使用ZTEST值。特殊子區(qū)塊的ZTEST值是可藉由執(zhí)行對應(yīng)此子區(qū)塊所有RZMASK位元的按位元邏輯或閘的操作來獲得。如圖19A-19C所示的例子,顯示區(qū)塊包括四個子區(qū)塊、SUB-BLOCK 0、SUB-BLOCK 1、SUB-BLOCK 2、和SUB-BLOCK 3,且ZTEST為 。二者擇一地,如圖20A-20C所示的例子,顯示區(qū)塊和目前三角形與圖19A-19C那些相同,但是四個子區(qū)塊的配置是不同,如SUB-BLOCK 0’、SUB-BLOCK1’、SUB-BLOCK 2’和SUB-BLOCK 3’,且ZTEST為 。此結(jié)果可解釋為如果子區(qū)塊包含要求執(zhí)行z緩沖區(qū)子程式的像素,對應(yīng)的ZTEST區(qū)域會被設(shè)定為“1”;否則,對應(yīng)的ZTEST區(qū)域會被設(shè)定為“0”,且沒有z緩沖區(qū)子程式是必須的。否則在步驟140中的答案否,即表示已完成第一通行階段,且已設(shè)定ZTEST區(qū)域。此步驟其次在步驟144中藉由將新BMIN值設(shè)定為小于舊BMIN和CMIN值,以及將新BMAX值設(shè)定為大于舊BMAX和CMAX值來更新范圍緩沖區(qū),如圖16E-16H所示。RMASK、FMIN和FMAX值與114保持一樣。子程式F然后回到圖5的主要步驟500。
請參閱圖6A-6F所示,是具有介紹目前影像的子程式。通過圖6A-圖6F的描述,第一次描述最接近投影的目前影像(例如圖6A所示),直到新影像是最進(jìn)一步從投影平面(例如圖6D所示)。此方法學(xué)提供了一個可理解的連續(xù)。以對圖6A-圖6F的子程式的充分的理解,圖6G所示的一個概略步驟600G可被了解。圖6G所示是為READ_Z_BUFFER被設(shè)定為真的情況,以及分開的,READ_Z_BUFFER被設(shè)定為假的情況。如圖所示,當(dāng)READ_Z_BUFFER被設(shè)定為假且z緩沖區(qū)不須被讀取時,其是有三個情況。其中,本發(fā)明是提供最能改善效能的情況。當(dāng)目前新影像比前深度層更接近時,READ_Z_BUFFER將被設(shè)定為假(步驟605),此新影像是在前和后深度層之間,且未相交(步驟625),且新影像未與前深度層相交,而與后深度層相交(步驟645),且被前深度層完全涵蓋(步驟132的是的分支)。如圖6G所示,這些步驟是分別對應(yīng)到先前所描述的子程式B、D和F。在READ_Z_BUFFER被設(shè)定為假后,此步驟根據(jù)以下所描述的情況分別設(shè)定RMASK、BMIN、BMAX、FMIN與FMAX。相反地,當(dāng)READ_Z_BUFFER被設(shè)定為真且z緩沖區(qū)必須被讀取時,其是有三個情況。其中,本發(fā)明是提供最能改善效能的情況。當(dāng)新影像與前深度層相交而未與后深度層相交(步驟635);當(dāng)新影像未與前深度層相交而與后深度層相交(步驟645),且不完全被前深度層所覆蓋(步驟132的分支否);以及當(dāng)新影像與前和后深度層相交(步驟615)。這些步驟是分別對應(yīng)到先前所描述的子程式E、D和C。對這些情況,READ_Z_BUFFER被設(shè)定為真,例如,z緩沖區(qū)讀取因此被執(zhí)行、讀取z緩沖區(qū)位元遮罩RZMASK被判斷與第一通行階段中對應(yīng)于子區(qū)塊的ZTEST區(qū)域進(jìn)一步被判斷,如方塊中所形成的粗中心線所示。這個機(jī)制提供在原始的資料結(jié)構(gòu)大小一種方法,以從第一通行階段中那些不要求執(zhí)行z緩沖區(qū)讀取的來告訴子區(qū)塊哪些要求執(zhí)行z緩沖區(qū)讀取,當(dāng)只執(zhí)行用于在可識別的子區(qū)塊中的這些新像素的z緩沖區(qū)讀取,則在第一通行階段不執(zhí)行z緩沖區(qū)讀取,而不是整個顯示區(qū)塊。雖然用于讀取三角形資料的匯流排流量費(fèi)用,讀取兩次只比各自讀取一次增加一點(diǎn),然而,此功效是由于改進(jìn)有限,而不是為裁決沖突讀取所有三角形資料,因?yàn)橹挥幸恍┳訁^(qū)塊而不是整體顯示區(qū)塊被包含,所以匯流排流量也因?yàn)閦緩沖區(qū)讀取而被減少。通過對圖6G的子程式600G的理解,演算法的量化可達(dá)到實(shí)施本發(fā)明。此外,在圖6G中,流程600G的決策方塊605、615、625、635和645是為平行而不是串聯(lián),如圖6A的流程600G。實(shí)際上,在圖6G的流程600G中決策方塊605、615、625、635和645的條件是為互相唯一,且因此最多只有一個條件會發(fā)生;因此,沒有特殊序列是必須的。因此圖6A的流程600所示的序列是為簡單地選擇可能當(dāng)中的一個。
雖然已在某些特殊實(shí)施例中描述本發(fā)明,熟習(xí)該項(xiàng)技藝者在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動與潤飾。例如,只使用二層來代替相對應(yīng)的前和后深度層,一熟習(xí)該項(xiàng)技藝者可能只想使用區(qū)塊中之一、三或更多層來比較z范圍值。一熟習(xí)該項(xiàng)技藝者可能只想儲存被使用的所有層的最小和最大z-值,其中,z范圍緩沖區(qū)將必須被修改。
以上所述,僅是本發(fā)明的較佳實(shí)施例而已,并非對本發(fā)明作任何形式上的限制,雖然本發(fā)明已以較佳實(shí)施例揭露如上,然而并非用以限定本發(fā)明,任何熟悉本專業(yè)的技術(shù)人員,在不脫離本發(fā)明技術(shù)方案范圍內(nèi),當(dāng)可利用上述揭示的方法及技術(shù)內(nèi)容作出些許的更動或修飾為等同變化的等效實(shí)施例,但是凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對以上實(shí)施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發(fā)明技術(shù)方案的范圍內(nèi)。
權(quán)利要求
1.一種繪示圖形基本資料至框架緩沖器的方法,適用于顯示之用,其特征在于該框架緩沖器被分成大小相等的多數(shù)個像素區(qū)塊,每一該像素區(qū)塊具有至少二深度層,該框架緩沖器具有相對應(yīng)用于該框架緩沖器中每一像素之一深度值的一z緩沖區(qū),該深度值是用以判斷顯示時每一該像素的可見性,該方法包括判斷在該框架緩沖器內(nèi)的該些像素區(qū)塊受到該圖形基本資料影響與否;對每一受影響區(qū)塊,調(diào)整每一受影響區(qū)塊的深度層,判斷用于每一受影響區(qū)塊的該圖形基本資料的任一像素與每一受影響區(qū)塊的任一深度層相交與否,而將每一受影響區(qū)塊分成大小相等的多數(shù)個子區(qū)塊,每一該子區(qū)塊具有一子區(qū)塊遮罩,該子區(qū)塊遮罩包括用于每一該子區(qū)塊的一位元;以及如果用于每一受影響區(qū)塊的該圖形基本資料的任一像素與任一深度層相交時,即設(shè)定一旗標(biāo)來表示該z緩沖區(qū)要求一次區(qū)塊更新,以及形成一像素遮罩來表示在每一受影響區(qū)塊內(nèi)的該些像素為相交像素,并且合并該子區(qū)塊遮罩與該像素遮罩來判斷哪些子區(qū)塊具有該相交像素;再次判斷在該框架緩沖器內(nèi)的該些區(qū)塊受到該圖形基本資料影響與否;以及對每一受影響區(qū)塊,調(diào)整每一受影響區(qū)塊的深度層,判斷每一受影響區(qū)塊的更新旗標(biāo)是否被設(shè)定,如果該更新旗標(biāo)未被設(shè)定,則根據(jù)被調(diào)整的深度層將可見像素繪示至該框架緩沖器;如果該更新旗標(biāo)被設(shè)定,則根據(jù)該子區(qū)塊遮罩對被影響的每一受影響區(qū)塊的每一該些子區(qū)塊判斷每一該子區(qū)塊受到該些相交像素的影響與否;以及當(dāng)該子區(qū)塊受到影響時,則讀取該z緩沖區(qū)、調(diào)整該相交像素的可見性項(xiàng)目與將任一可見像素繪示至該框架緩沖器。
2.根據(jù)權(quán)利要求1所述的繪示圖形基本資料至框架緩沖器的方法,其特征在于其中所述的每一受影響區(qū)塊是具有一前深度層與一后深度層,并且在每一受影響區(qū)塊中,該前深度層與該后深度層的該深度值各具有其范圍,并具有最小值與最大值,且最小值是為較接近值;以及其中該圖形基本資料具有用于在每一受影響區(qū)塊中的像素的該深度值的范圍,該些像素是受該圖形基本資料所影響,該圖形基本資料的范圍具有最小值與最大值。
3.根據(jù)權(quán)利要求2所述的繪示圖形基本資料至框架緩沖器的方法,其特征在于其中一遮罩是與該區(qū)塊有關(guān),該遮罩描述在每一區(qū)塊中的哪些像素是屬于該前深度層與該后深度層。
4.根據(jù)權(quán)利要求2所述的繪示圖形基本資料至框架緩沖器的方法,其特征在于其中一遮罩是與該圖形基本資料有關(guān),該遮罩描述在每一區(qū)塊中的哪些像素是受該圖形基本資料所影響。
5.根據(jù)權(quán)利要求2所述的繪示圖形基本資料至框架緩沖器的方法,其特征在于其中在每一受影響區(qū)塊中受該圖形基本資料影響的該些像素是與該前深度層及該后深度層均相交;其中該像素遮罩是表示在每一受影響區(qū)塊中全部受影響的該些像素為該些相交像素;其中該前深度層與該后深度層的該深度值均被調(diào)整至具有一范圍,該范圍介于(i)該圖形基本資料的最小值與該前深度層最小值之間的最小值以及(ii)該圖形基本資料的最大值與該后深度層最大值之間的最大值,且包括該前深度層、該后深度層與在每一受影響區(qū)塊中受該圖形基本資料所影響的該些像素。
6.根據(jù)權(quán)利要求2所述的繪示圖形基本資料至框架緩沖器的方法,其特征在于其中在該區(qū)塊中受該圖形基本資料所影響的該些像素是與該前深度層相交而非該后深度層;其中該像素遮罩是表示該前深度層的哪些像素為相交像素;其中若在每一受影響區(qū)塊中受影響的該些像素是全部涵蓋該區(qū)塊中的該后深度層,該前深度層與該后深度層的該深度值的范圍則被調(diào)整介于(i)該圖形基本資料的最小值與該前深度層最小值之間的最小值以及(ii)該圖形基本資料的最大值與該前深度層最大值之間的最大值,且包括該前深度層的像素與在每一受影響區(qū)塊中受該圖形基本資料影響的該些像素;其中若在每一受影響區(qū)塊中受影響的該些像素非全部涵蓋該區(qū)塊中的該后深度層,該前深度層的該深度值的范圍則被調(diào)整介于(i)該圖形基本資料的最小值與該前深度層最小值之間的最小值,(ii)該圖形基本資料的最大值與該前深度層的最大值之間的最大值,用以包含在該前深度層中受該圖形基本資料影響的所有像素;以及該后深度層的該深度值的范圍未改變且僅包括未受該圖形基本資料影響的該些像素所涵蓋的像素。
7.根據(jù)權(quán)利要求2所述的繪示圖形基本資料至框架緩沖器的方法,其特征在于其中在每一區(qū)塊中的受該圖形基本資料影響的該些像素是與該后深度層相交,而非該前深度層,且該前深度層非完全涵蓋受該圖形基本資料影響的該些像素;其中該像素遮罩是表示該后深度層的哪些像素為相交像素;其中該后深度層被調(diào)整的范圍是介于(i)該圖形基本資料的最小值與該后深度層最小值之間的最小值,(ii)該圖形基本資料的最大值與該后深度層的最大值之間的最大值,用以包含在該后深度層中受該圖形基本資料所影響的所有像素;以及其中該前深度層的范圍未改變。
8.一種圖形繪示設(shè)備,其特征在于其包括一框架緩沖器,用于儲存多數(shù)個像素,該框架緩沖器被分成大小相等的多數(shù)個像素區(qū)塊,每一該些像素區(qū)塊被分成大小相等的多數(shù)個子區(qū)塊;一z緩沖區(qū),與該框架緩沖器相關(guān),該z緩沖區(qū)儲存該框架緩沖器中每一該些像素的一深度值,該深度值是用以決定顯示時的每一該像素的可見度;以及一圖形處理器,用于處理該z緩沖區(qū)和該框架緩沖器中的該些像素,該圖形處理器包括一z范圍緩沖區(qū),具有多數(shù)個欄位用以表示該些區(qū)塊其中之一前深度層的一深度值范圍與一后深度層的一深度值范圍,一遮罩是用以表示該些區(qū)塊其中之一的哪些像素位在該前深度層中與該后深度層中;以及用于儲存該些子區(qū)塊資訊的欄位,該些子區(qū)塊資訊用于表示該些子區(qū)塊的該z緩沖區(qū)需被讀取與否;一第一暫存器,具有用于表示在該些區(qū)塊其中之一的哪些像素是受一圖形基本資料所影響的欄位,且用于表示在該些區(qū)塊其中之一的該些像素的該深度值是受該圖形基本資料的影響;一第二暫存器,具有用于表示在該些區(qū)塊其中之一中的該些像素需要z緩沖區(qū)讀取的欄位;以及一旗標(biāo),用于表示為了該些區(qū)塊其中之一,該z緩沖區(qū)需要被讀取。
9.根據(jù)權(quán)利要求8所述的圖形繪示設(shè)備,其特征在于其中所述的圖形處理器是被配置于判斷在該些區(qū)塊其中之一中的哪些像素是受該圖形基本資料影響,并且在該些區(qū)塊其中之一中的該些像素的該深度值是受該圖形基本資料影響,以作為設(shè)定該第一暫存器的依據(jù);判斷在該些區(qū)塊其中之一中受圖形基本資料影響的該些像素相交于該前深度層、該后深度層或兩者與否;若該z緩沖區(qū)需要被讀取,則設(shè)定該旗標(biāo);根據(jù)在該些區(qū)塊其中之一中受該圖形基本資料影響的該些像素與受影響的該些像素的該深度值來調(diào)整在該z緩沖器中該前深度層與該后深度層的范圍;如果該旗標(biāo)未被設(shè)定,根據(jù)被調(diào)整的該前深度層與該后深度層將一可見像素繪示至該框架緩沖器;如果該旗標(biāo)已被設(shè)定,則根據(jù)相交的判斷來判斷在區(qū)塊中的哪些像素要求讀取該z緩沖區(qū),并相對地設(shè)定在該第二暫存器的欄位、判斷在該些區(qū)塊其中之一中的哪些子區(qū)塊要求讀取該z緩沖區(qū),并相對地設(shè)定該z緩沖區(qū)的欄位、讀取該z緩沖區(qū)以獲得用于該些子區(qū)塊其中之一的該深度值,以及根據(jù)由z緩沖區(qū)中得到的該些子區(qū)塊其中之一的該深度值將可見像素繪示至該框架緩沖器。
全文摘要
本發(fā)明是關(guān)于一種用于減少圖形繪示系統(tǒng)的記憶體流量的設(shè)備及其方法,是一種繪示圖形基本資料的系統(tǒng)與方法。其是可用兩個通行方法來達(dá)成,在第一通行中,對于受圖形基本資料所影響的每一區(qū)塊,判斷其中的像素是否相交于該區(qū)塊的前及/或后深度層。如果他們與區(qū)塊中的像素相交,即設(shè)定一旗標(biāo)來表示需要讀取z緩沖區(qū),以判斷區(qū)塊中受影響的像素的可見度。在第二通行中,再次試驗(yàn)區(qū)塊受圖形基本資料影響與否。如果旗標(biāo)未設(shè)定,則根據(jù)區(qū)塊的前和后深度層繪示可見像素至框架緩沖器。如果旗標(biāo)已設(shè)定,則對于受圖形基本資料影響的每一個子區(qū)塊去讀取z緩沖區(qū)與根據(jù)由z緩沖區(qū)讀出的資料,將可見像素繪示至框架緩沖器。
文檔編號G06T15/40GK1560830SQ20041007035
公開日2005年1月5日 申請日期2004年7月29日 優(yōu)先權(quán)日2003年9月23日
發(fā)明者洪洲, 洲 洪 申請人:旭上繪圖股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
元江| 电白县| 黎川县| 朝阳区| 巴林左旗| 德江县| 彰武县| 九江市| 文成县| 义乌市| 姜堰市| 洛浦县| 万载县| 科技| 陇南市| 昌平区| 彭泽县| 青冈县| 桃园市| 鹤庆县| 响水县| 蒙自县| 赣州市| 碌曲县| 婺源县| 琼中| 莲花县| 都匀市| 晋宁县| 闻喜县| 西华县| 南川市| 镇巴县| 惠州市| 郧西县| 股票| 古蔺县| 盐亭县| 南岸区| 金湖县| 镇原县|