專(zhuān)利名稱(chēng):可調(diào)變式的拼塊景深濾除方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種三維計(jì)算機(jī)繪圖系統(tǒng)中圖形處理的技術(shù),特別涉及的是在一種在立體繪圖對(duì)象的景深關(guān)系維持的系統(tǒng)及方法,供應(yīng)用在數(shù)字相機(jī)(DSC)、數(shù)字?jǐn)z影機(jī)(DV)、個(gè)人數(shù)字助理器(PDA)、行動(dòng)電子設(shè)備、第三代行動(dòng)電話、手持式行動(dòng)電話或智能型手機(jī)等可攜手持式裝置上,但并不限定為上述裝置。
背景技術(shù):
近年來(lái),市場(chǎng)上對(duì)在手持式可隨身型電子產(chǎn)品的需求日益增加,與此同時(shí),三維繪圖系統(tǒng)的省能效果,在特別需要講究低耗能小體積的手持式可隨身型電子產(chǎn)品中的地位也越形重要。在三維繪圖系統(tǒng)中,運(yùn)算過(guò)程中的海量存儲(chǔ)器存取部分是最關(guān)鍵的能量耗散;三維繪圖系統(tǒng)中包含五種型態(tài)的內(nèi)存存取材質(zhì)資料讀取(Texture Read)、景深暫存區(qū)(Depth Buffer or Z Buffer)資料讀取(Z Read)、景深暫存區(qū)資料寫(xiě)入(Z Write)、彩度暫存區(qū)資料讀取(Color Read)、以及彩度暫存區(qū)資料寫(xiě)入(Color Write);根據(jù)這五種內(nèi)存存取所需的內(nèi)存頻寬大小來(lái)看,其中,景深暫存區(qū)資料讀取(ZR)占了當(dāng)中至少40%的頻寬;因此針對(duì)景深暫存區(qū)資料讀取(ZR)的動(dòng)作實(shí)施最佳化,對(duì)在能量耗散的減少可以有較好的結(jié)果。
先前Morein曾提出一種最大景深的濾除法(Zmax),是切割繪圖區(qū)(DisplayRegion)成若干拼塊,并以拼塊內(nèi)的所有像素景深的最大值(Zmax)為濾除分類(lèi)條件;當(dāng)目前要畫(huà)的拼塊,其最小的景深大在先前畫(huà)的拼塊景深最大值(Zmax),那么目前拼塊內(nèi)的所有繪點(diǎn)都是屬在被遮住的繪點(diǎn)應(yīng)予以丟棄。Morein的方法節(jié)省了三維繪圖中,那些被遮住的對(duì)象的繪點(diǎn)將來(lái)在景深暫存區(qū)(Z-Buffer)的存取與景深比對(duì)(Z Test)的操作。Mller另外提出一種最小景深的濾除法(Zmin),是切割繪圖區(qū)(Display Region)成若干拼塊,并以拼塊內(nèi)的所有像素景深的最小值(Zmin)為濾除分類(lèi)條件;當(dāng)目前要畫(huà)的拼塊,其最大的景深小在先前畫(huà)的拼塊景深最小值(Zmin),那么目前拼塊內(nèi)的所有繪點(diǎn)都視為可見(jiàn)繪點(diǎn)予以保存。Mller的方法節(jié)省了三維繪圖中,那些未被遮住的對(duì)象的繪點(diǎn)在景深暫存區(qū)(Z-Buffer)讀取所占的頻寬。Yuand Kim也提出了他們的濾除法,同樣地,繪圖區(qū)(Display Region)被切割成若干拼塊,不同的是,拼塊內(nèi)設(shè)的景深濾除條件是固定的,稱(chēng)為景深平面濾除法(Depth PlanFilter),同時(shí)對(duì)應(yīng)拼塊像素還有一個(gè)景深平面標(biāo)志(DF-flag),其大小為拼塊內(nèi)的像素?cái)?shù)目;當(dāng)目前拼塊內(nèi)像素的景深小在此拼塊設(shè)定的景深條件時(shí)(Depth Plan),其對(duì)應(yīng)的拼塊像素的景深平面標(biāo)志(DF-flag)會(huì)被標(biāo)志為1;而當(dāng)目前拼塊內(nèi)像素的景深大在此拼塊設(shè)定的景深條件時(shí)(Depth Plan),其對(duì)應(yīng)的拼塊像素的原景深平面標(biāo)志(DF-flag)會(huì)被提出,若原景深平面標(biāo)志為1的話,代表的前繪過(guò)一個(gè)繪點(diǎn)其景深值小在目前要繪的繪點(diǎn),所以目前的繪點(diǎn)屬在被遮住的繪點(diǎn)應(yīng)予以丟棄。
很明顯地,Morein的最大景深濾除法(Zmax)只濾掉了被遮住的點(diǎn),而Mller的最小景深的濾除法(Zmin)只濾掉了未被遮住的點(diǎn),另外Yu and Kim的濾除法的效益跟其定義的景深平面數(shù)值有很大的關(guān)系,特別是動(dòng)態(tài)的場(chǎng)景更難抓住其景深的變化。
發(fā)明內(nèi)容
本發(fā)明的目的在于,克服所述的缺陷,節(jié)省內(nèi)存頻寬,有較細(xì)分的濾除分類(lèi)外,還動(dòng)態(tài)的去調(diào)變拼塊的大小,當(dāng)場(chǎng)景需要換新的時(shí)候,本來(lái)是需要清除景深暫存區(qū)(Z Buffer)里的所有景深值,并全部換上系統(tǒng)中最大的景深值,以免在作新的景深比對(duì)時(shí)發(fā)生錯(cuò)亂。
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案在于,提供一種可調(diào)變式的拼塊景深濾除系統(tǒng),其包括一個(gè)三維貼圖幾何演算裝置,供以處理三維立體對(duì)象繪圖中三角貼圖組的幾何運(yùn)算,并將繪圖區(qū)(Display Region)切割為若干拼塊(Tile),以該拼塊組作為該三角貼圖組的掃描單位(Scan Unit);一個(gè)可變式拼塊景深濾除裝置,供以濾除該三角貼圖組中被剔除(Rejected)繪點(diǎn)(Point)、不需景深讀取(No-z-read)繪點(diǎn)、以及正常(Normal)繪點(diǎn);一個(gè)拼塊暫存內(nèi)存區(qū)(Tile Buffer),供以暫時(shí)存放該拼塊組的像素(Pixel)掩蓋屏蔽(Coverage Mask)、景深范圍(Zmax and Zmin)、以及拼塊模式(Mode)的資料,該像素景深屏蔽供記錄該拼塊內(nèi)像素是否為繪過(guò)的點(diǎn),該景深范圍供記錄該拼塊內(nèi)已繪過(guò)的像素景深的上下限,該拼塊模式供記錄該拼塊的模式;該可調(diào)變式拼塊景深濾除裝置為一個(gè)掃描所有該三角貼圖組的回路裝置,該三角貼圖組回路又內(nèi)含一個(gè)掃描所有該拼塊組回路,該拼塊組回路又內(nèi)含一個(gè)掃描該拼塊所有像素的回路;在該像素回路內(nèi),先有一個(gè)像素景深計(jì)算器供以計(jì)算目前所在拼塊內(nèi)該三角貼圖對(duì)應(yīng)該像素的景深值(Z Value),接著一像素景深分類(lèi)比較器,根據(jù)拼塊暫存內(nèi)存回傳該拼塊的像素掩蓋屏蔽、景深范圍、以及拼塊模式的資料,與該像素的景深值作比較與分類(lèi),將該像素分為被遮住像素(OccludedPixel)、不被遮住像素(Non-occluded Pixel)、未確定像素(Uncertain Pixel)、或未繪過(guò)像素(Uncovered Pixel);接著一個(gè)像素繪點(diǎn)(Point)分類(lèi)比較器,供以將上述四種像素類(lèi)分為不需景深值讀取繪點(diǎn),正常繪點(diǎn)與被剔除繪點(diǎn);不被遮住像素與未繪過(guò)像素屬在不需景深值讀取繪點(diǎn)(No-z-read),未確定像素屬在正常繪點(diǎn)(Normal),被遮住像素屬在被剔除(Reject)繪點(diǎn);在該像素回路全部做完的后,接著一個(gè)拼塊資料更新器,供以更新拼塊暫存內(nèi)存區(qū)內(nèi)該拼塊的現(xiàn)在像素掩蓋屏蔽、以及現(xiàn)在景深范圍的資料;接著一個(gè)像素掩蓋屏蔽分類(lèi)比較器,處理該更新后的像素掩蓋屏蔽的資料并加以分類(lèi);若該拼塊的全部像素皆為繪過(guò)的像素,該拼塊切割成兩個(gè)或多數(shù)個(gè)副拼塊;若該拼塊只有部分像素為繪過(guò)的像素,該拼塊此部分切割成一個(gè)或多數(shù)個(gè)副拼塊,而原拼塊未被切割的其它部分為一個(gè)副拼塊;未經(jīng)切割的該拼塊,直接跳到該拼塊循環(huán)底部,進(jìn)入下一個(gè)拼塊;已經(jīng)切割的拼塊,進(jìn)入一個(gè)副拼塊回路;此副拼塊回路內(nèi)含一個(gè)副拼塊像素回路,在該副拼塊像素回路內(nèi),先有一個(gè)副拼塊像素景深計(jì)算器供以計(jì)算目前所在副拼塊內(nèi)該三角貼圖對(duì)應(yīng)該像素的景深值(Z Value),接著一個(gè)副拼塊像素景深分類(lèi)比較器,根據(jù)該拼塊暫存內(nèi)存回傳該副拼塊的像素掩蓋屏蔽、景深范圍、以及副拼塊模式的資料,與該副拼塊像素的景深值作比較與分類(lèi),將該副拼塊像素分為被遮住像素(Occluded Pixel)、不被遮住像素(Non-occluded Pixel)、未確定像素(Uncertain Pixel)、或未繪過(guò)像素(Uncovered Pixel);接著一個(gè)副拼塊像素繪點(diǎn)(Point)分類(lèi)比較器,供以將上述四種像素類(lèi)分為不需景深值讀取繪點(diǎn),正常繪點(diǎn)與被剔除繪點(diǎn);不被遮住像素與未繪過(guò)像素屬在不需景深值讀取繪點(diǎn),未確定像素屬在正常繪點(diǎn)(Normal),被遮住像素屬在被剔除繪點(diǎn);在該副拼塊像素回路全部做完的后,接著一個(gè)副拼塊資料更新器,供以更新拼塊暫存內(nèi)存區(qū)內(nèi)該副拼塊的像素掩蓋屏蔽、以及景深范圍的資料。
同時(shí)提供了一種可調(diào)變式的拼塊景深濾除方法,其中包括下列步驟經(jīng)由三維貼圖幾何演算,處理三維立體對(duì)象繪圖中三角貼圖組的幾何結(jié)構(gòu),并將繪圖區(qū)(Display Region)切割為若干拼塊(Tile),并以該拼塊組作為該三角貼圖組的掃描單位(Scan Unit);
該三角貼圖組的幾何資料經(jīng)由一個(gè)可變式拼塊景深濾除處理,以濾除該三角貼圖組中被剔除(Rejected)繪點(diǎn)(Point)、不需景深讀取(No-z-read)繪點(diǎn)、以及正常(Normal)繪點(diǎn);處理過(guò)程乃先建立該拼塊組的像素掩蓋屏蔽(Coverage Mask),負(fù)責(zé)記錄該拼塊組內(nèi)像素是否被繪圖過(guò)的情形,同樣再建立負(fù)責(zé)記錄該拼塊內(nèi)像素景深上下限的景深范圍(Zmax and Zmin),還建立負(fù)責(zé)記錄拼塊現(xiàn)模式的拼塊模式(Tile Mode),再經(jīng)過(guò)三層回路演算;此三層分別為掃描所有該三角貼圖組的回路,該三角貼圖組回路又內(nèi)含一個(gè)掃描所有該拼塊組回路,該拼塊組回路又內(nèi)含一個(gè)掃描該拼塊所有像素的回路;在該像素回路內(nèi),先計(jì)算目前所在拼塊內(nèi)該三角貼圖對(duì)應(yīng)該像素的景深值(Z Value),接著根據(jù)該拼塊的前的像素掩蓋屏蔽、景深范圍、以及拼塊模式的資料,與該像素目前的景深值作比較與分類(lèi),將該拼塊像素分為被遮住像素(Occluded Pixel)、不被遮住像素(Non-occluded Pixel)、未確定像素(Uncertain Pixel)、或未繪過(guò)像素(Uncovered Pixel);接著將上述四種像素類(lèi)分為不需景深值讀取繪點(diǎn)、正常繪點(diǎn)與被剔除繪點(diǎn);不被遮住像素與未繪過(guò)像素屬在不需景深值讀取繪點(diǎn)(No-z-read),未確定像素屬在正常繪點(diǎn)(Normal),被遮住像素屬在被剔除(Reject)繪點(diǎn);在該像素回路全部做完的后,接著更新該拼塊資料,包含該拼塊現(xiàn)在的像素掩蓋屏蔽、以及現(xiàn)在景深范圍的資料;接著處理更新后的該像素掩蓋屏蔽的資料并加以分類(lèi);若該拼塊的全部像素皆為繪過(guò)的像素,該拼塊切割成兩個(gè)或多數(shù)個(gè)副拼塊;若該拼塊只有部分像素為繪過(guò)的像素,該拼塊此部分切割成一個(gè)或多數(shù)個(gè)副拼塊,而原拼塊未被切割的其它部分為一個(gè)副拼塊;未經(jīng)切割的該拼塊,直接跳到該拼塊循環(huán)底部,進(jìn)入下一個(gè)拼塊;已經(jīng)切割的拼塊,進(jìn)入一個(gè)副拼塊回路;此副拼塊回路內(nèi)含一個(gè)副拼塊像素回路,在該副拼塊像素回路內(nèi),先計(jì)算目前所在副拼塊內(nèi)該三角貼圖對(duì)應(yīng)該像素的景深值(Z Value),接著根據(jù)該副拼塊的像素掩蓋屏蔽、景深范圍、以及副拼塊模式的資料,與該副拼塊像素的景深值作比較與分類(lèi),將該副拼塊像素分為被遮住像素(Occluded Pixel)、不被遮住像素(Non-occluded Pixel)、未確定像素(Uncertain Pixel)、或未繪過(guò)像素(Uncovered Pixel);接著將上述四種像素類(lèi)分為不需景深值讀取繪點(diǎn)、正常繪點(diǎn)與被剔除繪點(diǎn);不被遮住像素與未繪過(guò)像素屬在不需景深值讀取繪點(diǎn),未確定像素屬在正常繪點(diǎn)(Normal),被遮住像素屬在被剔除繪點(diǎn)(Rejected);在該副拼塊像素回路全部做完的后,接著更新該副拼塊的像素掩蓋屏蔽、以及景深范圍的資料。
為了讓本發(fā)明上述以及其它目的、特征、和優(yōu)點(diǎn)能更明顯易懂,以下配合圖式以及較佳實(shí)施例以說(shuō)明本發(fā)明。
圖1是為說(shuō)明本發(fā)明三維繪圖的幾何結(jié)構(gòu)(景深與二維像素);圖2是為說(shuō)明本發(fā)明像素與拼塊的示意圖;圖3是為本發(fā)明三維繪圖流程的簡(jiǎn)單示意圖;圖4是說(shuō)明本發(fā)明拼塊內(nèi)像素依拼塊景深范圍分為三類(lèi)的示意圖;圖5是說(shuō)明本發(fā)明拼塊內(nèi)像素依拼塊景深范圍與掩蓋屏蔽分為四類(lèi)的示意圖;圖6是說(shuō)明本發(fā)明如何利用掩蓋屏蔽判斷拼塊分割情形的示意圖;圖7是說(shuō)明本發(fā)明如何儲(chǔ)存不同副拼塊情形的資料的示意圖;圖8是說(shuō)明本發(fā)明副拼塊內(nèi)像素依副拼塊景深范圍與掩蓋屏蔽各自分為四類(lèi)的示意圖。
附圖標(biāo)記說(shuō)明A1-對(duì)象一;A2-對(duì)象二;210、220-三角貼圖;230-像素;240-拼塊;310-三維貼圖幾何演算;320-濾除程序;322-拼塊暫存內(nèi)存區(qū);330-景深比對(duì)程序;32-景深暫存內(nèi)存區(qū);340-演算;342-材質(zhì)內(nèi)存區(qū);350-景深比對(duì)程序;360-演算;362-彩度暫存內(nèi)存區(qū);410、412-景深范圍(值);830、420-未被遮著像素;430、850-未確定像素;440-被遮著像素;510-掩蓋屏蔽;860、520-被遮住像素;530-未確定像素;532-未被繪過(guò)的像素;540-被遮住像素;610-拼塊;620-拼塊;810、812、820、822-景深范圍;840-未繪出的像素。
具體實(shí)施例方式
如圖1所示,為了繪出三維系統(tǒng)中的立體結(jié)構(gòu),維持各貼圖之間的景深關(guān)系是很重要的;一般未經(jīng)濾除法的景深比對(duì)程序(Z Test)乃是一個(gè)一個(gè)像素逐一比對(duì)誰(shuí)的景深在前誰(shuí)在后,如圖2所示,對(duì)象二A2的景深較小,所以對(duì)象一A1被對(duì)象二A2蓋住的部分,將不會(huì)被繪出;如果該繪圖區(qū)的像素大小為64×64位(bit)的話,每一個(gè)三角貼圖210、220都需要經(jīng)過(guò)64×64位的比對(duì)還有此64×64位的景深暫存區(qū)(Z Buffer)的存取,這樣的運(yùn)算量跟所需的內(nèi)存頻寬是很可觀的。而本發(fā)明則是在此景深比對(duì)程序前先作濾除,先一步剔掉某些被遮住的繪點(diǎn)以減少景深比對(duì)程序中的演算與內(nèi)存頻寬;除了被剔掉的繪點(diǎn),本發(fā)明還能濾除出不需要景深暫存區(qū)讀取的繪點(diǎn),能更進(jìn)一步節(jié)省了一部分的內(nèi)存頻寬。圖3即顯示整個(gè)三維繪圖的流程,繪圖對(duì)象經(jīng)由三維貼圖幾何演算310的后,經(jīng)由本發(fā)明中的濾除程序320,再將濾除的結(jié)果送與先遣景深比對(duì)程序(Z Test Front)330,然后再進(jìn)行材質(zhì)的演算(Texture)340,若材質(zhì)演算中有開(kāi)啟艾爾法測(cè)試(Alpha Test)、透明材質(zhì)、或者是其它可視度(Visibility)材質(zhì)的話,就再進(jìn)行一次后續(xù)景深比對(duì)程序(Z TestBack)350,最后進(jìn)入彩度的演算(Color Operation)360即完成三維繪圖的流程。
在本實(shí)施例中,整個(gè)64×64位像素230的繪圖區(qū)(Display Region)以8×4位的拼塊240進(jìn)行切割(如圖2中粗線標(biāo)出的區(qū)塊),整個(gè)繪圖區(qū)共有8×16=128個(gè)拼塊;在作一開(kāi)始的三維三角貼圖210幾何演算時(shí)便以此拼塊結(jié)構(gòu)來(lái)掃描(Tile Base),即一個(gè)三角貼圖的循環(huán)包含著一個(gè)拼塊循環(huán),在作循環(huán)的前,先統(tǒng)計(jì)目前拼塊內(nèi)的景深范圍(CurZmax and CurZmin)與建立掩蓋屏蔽(Coverage Mask),并記錄在拼塊暫存內(nèi)存區(qū)(Tile Buffer)322;拼塊的景深范圍所占內(nèi)存大小為128(拼塊數(shù))×2×16/32位(16或32端看此系統(tǒng)景深的精確度),存著所有拼塊的兩個(gè)景深數(shù)值,而拼塊掩蓋屏蔽所占的內(nèi)存大小為128(拼塊數(shù))×32(拼塊內(nèi)像素)×1位亦等在64×64×1位,存著所有繪圖區(qū)像素是否為繪過(guò)的標(biāo)志(Flag),未繪過(guò)者標(biāo)為1,繪過(guò)者標(biāo)為0;接著在拼塊循環(huán)的內(nèi),先從拼塊內(nèi)存區(qū)讀取該拼塊的景深范圍(DstZmax410 andDstZmin412)與掩蓋屏蔽(Coverage Mask)510,并計(jì)算目前進(jìn)行到的三角貼圖的繪點(diǎn)在此拼塊內(nèi)的景深值。
接著進(jìn)行拼塊內(nèi)像素的比對(duì),如圖4中的圓圈代表拼塊內(nèi)的像素;若該像素的景深值小在拼塊最小景深值(DstZmin412),該像素屬在未被遮著像素(Non-occluded Pixel)420;若該像素的景深值大在拼塊最大景深值(DstZmax410),該像素屬在被遮著像素(Occluded Pixel)440;若該像素的景深值介在拼塊最小景深值(DstZmin412)與拼塊最大景深值(DstZmax410)之間,該像素屬在未確定像素(Uncertain Pixel)430,在圖4中標(biāo)為空心圓圈。另外,提出掩蓋屏蔽的比對(duì),上述未確定像素中其掩蓋屏蔽標(biāo)志為1者,可被再濾除出為未繪過(guò)的像素532,如圖5中的粗線圓圈,剩下的則為最后的未確定像素530。最后的未確定像素(如圖5中空心圓圈)530上的三角貼圖繪點(diǎn)被歸類(lèi)為正常繪點(diǎn)(Normal Point),為無(wú)法濾除的需要經(jīng)過(guò)正常的景深比對(duì)程序才能得知那些為可見(jiàn)繪點(diǎn);被遮住像素540上的三角貼圖繪點(diǎn)則直接被剔除,視為不可見(jiàn)繪點(diǎn)不需經(jīng)過(guò)繪圖程序;而那些未被遮住像素520以及未繪過(guò)像素532上的三角貼圖繪點(diǎn)被歸類(lèi)為不需景深讀取繪點(diǎn)(No-z-read Point),在經(jīng)過(guò)景深比對(duì)程序時(shí)不需讀取景深暫存內(nèi)存,這一類(lèi)的繪點(diǎn)亦可節(jié)省一部分內(nèi)存頻寬。當(dāng)所有的拼塊內(nèi)像素皆被分類(lèi)完成后,該拼塊的目前景深范圍(CurMax and CurMin)與從拼塊暫存內(nèi)存區(qū)讀出的(DstMax and DstMin)比對(duì),得到新的最終景深范圍(DstMax and DstMin);目前的掩蓋屏蔽也與拼塊暫存內(nèi)存區(qū)讀出的掩蓋屏蔽做與門(mén)(AND Gate)的比對(duì),與最終景深范圍一并回存在拼塊暫存內(nèi)存區(qū)。
本發(fā)明另一個(gè)重要特點(diǎn),當(dāng)?shù)谝淮尉吧罘诸?lèi)得出的未確定像素430中并無(wú)未被繪過(guò)的像素530,本發(fā)明可以機(jī)動(dòng)的調(diào)變我們的拼塊大小,又一次切割拼塊成為兩個(gè)左右副拼塊620,使得左右副拼塊可以再作一次分類(lèi),只要拼塊暫存內(nèi)存區(qū)讀出的掩蓋屏蔽其全數(shù)為0(即為繪過(guò)的標(biāo)志)或至少左半部全為0或者是至少右半部全為0,該拼塊被切割為左右副拼塊620(如圖6)。切割的后左右副拼塊各自有其景深范圍(L-ZMax810 and L-ZMin812,and R-ZMax820 and R-ZMin822),左右副拼塊中的像素各自以此范圍作分類(lèi),同時(shí),左右副拼塊的掩蓋屏蔽(L-CM and R-CM)情形又可分出左右副拼塊中未繪出的像素840(如圖8),由于機(jī)動(dòng)的分割拼塊大小,因?yàn)楦?xì)分的景深范圍使得的前未確定的像素又可以再一次濾除。
在本發(fā)明中,即使原拼塊610被切割,仍然可以用原拼塊的內(nèi)存暫存區(qū)來(lái)正確的儲(chǔ)存也不會(huì)發(fā)生錯(cuò)亂;如圖6中的11模式(Full Tile with Coverage Mask),全拼塊的掩蓋屏蔽皆為0,因此不再需要儲(chǔ)存其掩蓋屏蔽值,只需要記錄模式的形式即可,也因?yàn)槿绱耍枰洃浀闹挥凶笥腋逼磯K的景深范圍,如圖7中模式11所標(biāo)示的,左右景深范圍共占4×15位,另外,還有4位儲(chǔ)存其模式標(biāo)志-11;若是圖6中的10模式(Sub-tile with Right Coverage Mask),原拼塊的左半部的掩蓋屏蔽皆為0,不需儲(chǔ)存左半部的掩蓋屏蔽,只剩下左右半部的景深范圍與右半部的掩蓋屏蔽(R-CM)需要儲(chǔ)存,如圖7模式10所示,其左半部的景深范圍以2×15位存在原拼塊的內(nèi)存暫存區(qū),而其右半部的景深范圍先減去左半部的景深范圍得其差值,將差值從16位壓縮至8位,得到右半部?jī)蓚€(gè)占8位的景深差值,再與占32位的右半部的掩蓋屏蔽一起存回原拼塊的內(nèi)存暫存區(qū),剩下的兩位用在儲(chǔ)存該拼塊的模式10;若是圖6中的01模式(Sub-tile with Left Coverage Mask),原拼塊的右半部的掩蓋屏蔽皆為0,不需儲(chǔ)存右半部的掩蓋屏蔽,只剩下左右半部的景深范圍與左半部的掩蓋屏蔽(L-CM)需要儲(chǔ)存,如圖7模式01所示,其右半部的景深范圍以2×15位存在原拼塊的內(nèi)存暫存區(qū),而其左半部的景深范圍先減去右半部的景深范圍得其差值,將差值從16位壓縮至8位,得到左半部?jī)蓚€(gè)占8位的景深差值,再與占32位的左半部的掩蓋屏蔽一起存回原拼塊的內(nèi)存暫存區(qū),剩下的兩位用在儲(chǔ)存該拼塊的模式01;若原拼塊沒(méi)進(jìn)行分割,如圖6所示的模式00,占32位的掩蓋屏蔽需全數(shù)儲(chǔ)存,如圖7模式00所示,剩下的2×15位則是存放景深范圍與拼塊模式00。
分類(lèi)完成的繪點(diǎn),被剔除的繪點(diǎn)在下一步景深比對(duì)程序的前即被剔除(Reject),不會(huì)進(jìn)行運(yùn)算,而不需景深讀取的繪點(diǎn)在景深比對(duì)程序中將可跳過(guò)從景深暫存內(nèi)存區(qū)332(如圖3所示)讀取的部分,剩下的未確定繪點(diǎn)將正常進(jìn)行景深比對(duì)程序,最后得出那些是真正的可見(jiàn)繪點(diǎn);得出可見(jiàn)繪點(diǎn)的后進(jìn)行材質(zhì)演算,若材質(zhì)演算中有開(kāi)啟艾爾法測(cè)試(Alpha Test)、透明材質(zhì)、或者是其它可視度(Visibility)材質(zhì)的話,就再進(jìn)行一次后續(xù)景深比對(duì)程序(Z Test Back),最后進(jìn)入彩度的演算即完成三維繪圖的流程,其中,如圖3所示,本發(fā)明又包括一材質(zhì)內(nèi)存區(qū)(TextureMemory)342,以供儲(chǔ)存該三角貼圖組中可見(jiàn)繪點(diǎn)的材質(zhì)資料,以及一彩度暫存內(nèi)存區(qū)362,以供暫存該可見(jiàn)繪點(diǎn)的彩度資料。
依上述所揭示的說(shuō)明與圖式,本發(fā)明可以達(dá)到發(fā)明預(yù)期的目的,提供一種可以節(jié)省內(nèi)存頻寬的可調(diào)變式拼塊景深濾除系統(tǒng)及方法,并可增加濾除效能與效率。
以上所述僅為本發(fā)明的較佳實(shí)施例,對(duì)本發(fā)明而言?xún)H僅是說(shuō)明性的,而非限制性的。本專(zhuān)業(yè)技術(shù)人員理解,在本發(fā)明權(quán)利要求所限定的精神和范圍內(nèi)可對(duì)其進(jìn)行許多改變,修改,甚至等效,但都將落入本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,包括一個(gè)三維貼圖幾何演算裝置,供以處理三維立體對(duì)象繪圖中三角貼圖組的幾何運(yùn)算,并將繪圖區(qū)(Display Region)切割為若干拼塊(Tile),以該拼塊組作為該三角貼圖組的掃描單位(Scan Unit);一個(gè)可變式拼塊景深濾除裝置,供以濾除該三角貼圖組中被剔除(Rejected)繪點(diǎn)(Point)、不需景深讀取(No-z-read)繪點(diǎn)、以及正常(Normal)繪點(diǎn);一個(gè)拼塊暫存內(nèi)存區(qū)(Tile Buffer),供以暫時(shí)存放該拼塊組的像素(Pixel)掩蓋屏蔽(Coverage Mask)、景深范圍(Zmax and Zmin)、以及拼塊模式(Mode)的資料,該像素景深屏蔽供記錄該拼塊內(nèi)像素是否為繪過(guò)的點(diǎn),該景深范圍供記錄該拼塊內(nèi)已繪過(guò)的像素景深的上下限,該拼塊模式供記錄該拼塊的模式;該可調(diào)變式拼塊景深濾除裝置為一個(gè)掃瞄所有該三角貼圖組的回路裝置,該三角貼圖組回路又內(nèi)含一個(gè)掃描所有該拼塊組回路,該拼塊組回路又內(nèi)含一個(gè)掃描該拼塊所有像素的回路;在該像素回路內(nèi),先有一個(gè)像素景深計(jì)算器供以計(jì)算目前所在拼塊內(nèi)該三角貼圖對(duì)應(yīng)該像素的景深值(Z Value),接著一像素景深分類(lèi)比較器,根據(jù)拼塊暫存內(nèi)存回傳該拼塊的像素掩蓋屏蔽、景深范圍、以及拼塊模式的資料,與該像素的景深值作比較與分類(lèi),將該像素分為被遮住像素(OccludedPixel)、不被遮住像素(Non-occluded Pixel)、未確定像素(Uncertain Pixel)、或未繪過(guò)像素(Uncovered Pixel);接著一個(gè)像素繪點(diǎn)(Point)分類(lèi)比較器,供以將上述四種像素類(lèi)分為不需景深值讀取繪點(diǎn),正常繪點(diǎn)與被剔除繪點(diǎn);不被遮住像素與未繪過(guò)像素屬在不需景深值讀取繪點(diǎn)(No-z-read),未確定像素屬在正常繪點(diǎn)(Normal),被遮住像素屬在被剔除(Reject)繪點(diǎn);在該像素回路全部做完的后,接著一個(gè)拼塊資料更新器,供以更新拼塊暫存內(nèi)存區(qū)內(nèi)該拼塊的現(xiàn)在像素掩蓋屏蔽、以及現(xiàn)在景深范圍的資料;接著一個(gè)像素掩蓋屏蔽分類(lèi)比較器,處理該更新后的像素掩蓋屏蔽的資料并加以分類(lèi);若該拼塊的全部像素皆為繪過(guò)的像素,該拼塊切割成兩個(gè)或多數(shù)個(gè)副拼塊;若該拼塊只有部分像素為繪過(guò)的像素,該拼塊此部分切割成一個(gè)或多數(shù)個(gè)副拼塊,而原拼塊未被切割的其它部分為一個(gè)副拼塊;未經(jīng)切割的該拼塊,直接跳到該拼塊循環(huán)底部,進(jìn)入下一個(gè)拼塊;已經(jīng)切割的拼塊,進(jìn)入一個(gè)副拼塊回路;此副拼塊回路內(nèi)含一個(gè)副拼塊像素回路,在該副拼塊像素回路內(nèi),先有一個(gè)副拼塊像素景深計(jì)算器供以計(jì)算目前所在副拼塊內(nèi)該三角貼圖對(duì)應(yīng)該像素的景深值(Z Value),接著一個(gè)副拼塊像素景深分類(lèi)比較器,根據(jù)該拼塊暫存內(nèi)存回傳該副拼塊的像素掩蓋屏蔽、景深范圍、以及副拼塊模式的資料,與該副拼塊像素的景深值作比較與分類(lèi),將該副拼塊像素分為被遮住像素(Occluded Pixel)、不被遮住像素(Non-occluded Pixel)、未確定像素(Uncertain Pixel)、或未繪過(guò)像素(Uncovered Pixel);接著一個(gè)副拼塊像素繪點(diǎn)(Point)分類(lèi)比較器,供以將上述四種像素類(lèi)分為不需景深值讀取繪點(diǎn),正常繪點(diǎn)與被剔除繪點(diǎn);不被遮住像素與未繪過(guò)像素屬在不需景深值讀取繪點(diǎn),未確定像素屬在正常繪點(diǎn)(Normal),被遮住像素屬在被剔除繪點(diǎn);在該副拼塊像素回路全部做完的后,接著一個(gè)副拼塊資料更新器,供以更新拼塊暫存內(nèi)存區(qū)內(nèi)該副拼塊的像素掩蓋屏蔽、以及景深范圍的資料。
2.如權(quán)利要求1所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,該拼塊組的拼塊大小與數(shù)目是可變動(dòng)的,該拼塊組組合起來(lái)即為該繪圖區(qū)的區(qū)域。
3.如權(quán)利要求1所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,該拼塊暫存內(nèi)存區(qū)的儲(chǔ)存方式如下拼塊內(nèi)的每個(gè)像素皆有一個(gè)位的掩蓋屏蔽表示,在完整拼塊的情況下所有的掩蓋屏蔽大小為拼塊的所有像素值,該維持原拼塊結(jié)構(gòu)的拼塊,其全部像素的掩蓋屏蔽全部回存至該拼塊暫存內(nèi)存區(qū),其占暫存區(qū)的內(nèi)存大小為該拼塊像素的總數(shù)乘以一位(bit),且該拼塊目前拼塊內(nèi)的景深范圍的兩個(gè)景深數(shù)字也直接存在該拼塊暫存內(nèi)存區(qū),其占暫存區(qū)內(nèi)存大小為該景深依原精確度所占位元數(shù)乘以二,,另外,由該景深范圍所占位元數(shù)貢獻(xiàn)二位紀(jì)錄該拼塊的模式(Mode),代表該拼塊切割情形;Mode11該原拼塊結(jié)構(gòu)全部進(jìn)行切割的拼塊,全部像素的掩蓋屏蔽全部舍棄不回存拼塊暫存內(nèi)存區(qū),其占暫存區(qū)的內(nèi)存大小為零位,且所有該副拼塊內(nèi)的該景深范圍分別直接存在該拼塊暫存記憶區(qū),其占暫存區(qū)內(nèi)存大小為該景深依原精密度所占位元數(shù)乘以二再乘以該副拼塊數(shù),另外,由各景深范圍所占位元數(shù)各貢獻(xiàn)二位各自紀(jì)錄該副拼塊的模式,代表該拼塊切割情形;Mode01或Mode10該原拼塊結(jié)構(gòu)只有部份進(jìn)行切割的拼塊,除用做切割的部份其像素掩蓋屏蔽舍棄的外,其它未被切割的部分的掩蓋屏蔽回存該拼塊暫存記憶區(qū),其占暫存區(qū)的內(nèi)存大小為該原拼塊未切割部份的像素?cái)?shù)目乘以一位,且所有切割的副拼塊內(nèi)的該景深范圍擇其一直接存在該拼塊暫存內(nèi)存區(qū),其占暫存區(qū)內(nèi)存大小為該原始景深所占位元數(shù)乘以二,其它副拼塊以及未切割的副拼塊的景深范圍先減去該(未壓縮)已儲(chǔ)存副拼塊的景深范圍,得到各副拼塊景深落差值采壓縮模式回存該暫存內(nèi)存區(qū),另外,由各景深范圍所占位元數(shù)各貢獻(xiàn)二位紀(jì)錄各自副拼塊的模式(Mode),代表該拼塊切割情形。
4.如權(quán)利要求3所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,所述拼塊若為8×4,該掩蓋屏蔽大小為32位數(shù)。
5.如權(quán)利要求3所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,最大景深(Zmax)精確度若為16位,其拼塊暫存內(nèi)存區(qū)是以32位數(shù)來(lái)儲(chǔ)存最大景深(Zmax)與最小景深(Zmin)。
6.如權(quán)利要求1所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,又包括至少一個(gè)景深比對(duì)裝置(Z Test),供以判斷該三角貼圖組中該正常(Normal)繪點(diǎn)的景深與已繪在該繪圖區(qū)繪點(diǎn)的景深前后順序,通過(guò)以判斷該三角貼圖組中有哪些點(diǎn)是可見(jiàn)繪點(diǎn)(Viewable Point),該判斷是以該繪圖區(qū)像素作為掃描單位;以及一個(gè)景深暫存內(nèi)存區(qū)(Z Buffer),供以暫時(shí)存放該繪圖區(qū)像素與該三角貼圖組該可見(jiàn)繪點(diǎn)的景深資料;當(dāng)材質(zhì)沒(méi)有開(kāi)啟艾爾法測(cè)試(Alpha Test)、透明材質(zhì)(TransparentTexture)、或特殊可見(jiàn)度(Visiblity)算法的時(shí)候,景深比對(duì)(Z Test)可以在材質(zhì)運(yùn)算裝置前做。當(dāng)特殊可視材質(zhì)算法開(kāi)啟時(shí)則必須等材質(zhì)運(yùn)算作完才能進(jìn)行景深比對(duì)裝置。
7.如權(quán)利要求6所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,又包括一個(gè)材質(zhì)運(yùn)算裝置(Texture),供以運(yùn)算三角貼圖組該可見(jiàn)繪點(diǎn)的材質(zhì)表現(xiàn);以及一個(gè)材質(zhì)內(nèi)存區(qū)(Texture Memory),供以?xún)?chǔ)存該三角貼圖組中可見(jiàn)繪點(diǎn)的材質(zhì)資料。
8.如權(quán)利要求7所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,又包括一個(gè)彩度運(yùn)算裝置(Color Operation),供以運(yùn)算該三角貼圖組中該可繪見(jiàn)點(diǎn)的彩度表現(xiàn);以及一個(gè)彩度暫存內(nèi)存區(qū),供以暫存該可見(jiàn)繪點(diǎn)的彩度資料。
9.如權(quán)利要求1所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,在進(jìn)入下一個(gè)畫(huà)面(Scene)的前,一個(gè)拼塊像素掩蓋屏蔽清除(Clear)器,供以清除該拼塊暫存內(nèi)存內(nèi)像素掩蓋屏蔽的數(shù)值;并通過(guò)該拼塊像素掩蓋屏蔽清除器便可達(dá)到與清除該繪圖區(qū)所有像素的景深暫存內(nèi)存區(qū)(Z Buffer)一樣的效果,可使新的畫(huà)面在作分類(lèi)比較時(shí),不會(huì)受先前畫(huà)面結(jié)果的影響。
10.如權(quán)利要求1所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,該方法供應(yīng)用在手持式裝置,包括手持式裝置是數(shù)字相機(jī)、數(shù)字?jǐn)z影機(jī)、個(gè)人數(shù)字助理器、行動(dòng)電子設(shè)備、第三代行動(dòng)電話、手持式行動(dòng)電話或智能型手機(jī)。
11.一種可調(diào)變式的拼塊景深濾除方法,其特征在于,包括下列步驟經(jīng)由三維貼圖幾何演算,處理三維立體對(duì)象繪圖中三角貼圖組的幾何結(jié)構(gòu),并將繪圖區(qū)(Display Region)切割為若干拼塊(Tile),并以該拼塊組作為該三角貼圖組的掃描單位(Scan Unit);該三角貼圖組的幾何資料經(jīng)由一個(gè)可變式拼塊景深濾除處理,以濾除該三角貼圖組中被剔除(Rejected)繪點(diǎn)(Point)、不需景深讀取(No-z-read)繪點(diǎn)、以及正常(Normal)繪點(diǎn);處理過(guò)程乃先建立該拼塊組的像素掩蓋屏蔽(Coverage Mask),負(fù)責(zé)記錄該拼塊組內(nèi)像素是否被繪圖過(guò)的情形,同樣再建立負(fù)責(zé)記錄該拼塊內(nèi)像素景深上下限的景深范圍(Zmax and Zmin),還建立負(fù)責(zé)記錄拼塊現(xiàn)模式的拼塊模式(Tile Mode),再經(jīng)過(guò)三層回路演算;此三層分別為掃瞄所有該三角貼圖組的回路,該三角貼圖組回路又內(nèi)含一個(gè)掃描所有該拼塊組回路,該拼塊組回路又內(nèi)含一個(gè)掃描該拼塊所有像素的回路;在該像素回路內(nèi),先計(jì)算目前所在拼塊內(nèi)該三角貼圖對(duì)應(yīng)該像素的景深值(Z Value),接著根據(jù)該拼塊的前的像素掩蓋屏蔽、景深范圍、以及拼塊模式的資料,與該像素目前的景深值作比較與分類(lèi),將該拼塊像素分為被遮住像素(Occluded Pixel)、不被遮住像素(Non-occluded Pixel)、未確定像素(Uncertain Pixel)、或未繪過(guò)像素(Uncovered Pixel);接著將上述四種像素類(lèi)分為不需景深值讀取繪點(diǎn)、正常繪點(diǎn)與被剔除繪點(diǎn);不被遮住像素與未繪過(guò)像素屬在不需景深值讀取繪點(diǎn)(No-z-read),未確定像素屬在正常繪點(diǎn)(Normal),被遮住像素屬在被剔除(Reject)繪點(diǎn);在該像素回路全部做完的后,接著更新該拼塊資料,包含該拼塊現(xiàn)在的像素掩蓋屏蔽、以及現(xiàn)在景深范圍的資料;接著處理更新后的該像素掩蓋屏蔽的資料并加以分類(lèi);若該拼塊的全部像素皆為繪過(guò)的像素,該拼塊切割成兩個(gè)或多數(shù)個(gè)副拼塊;若該拼塊只有部分像素為繪過(guò)的像素,該拼塊此部分切割成一個(gè)或多數(shù)個(gè)副拼塊,而原拼塊未被切割的其它部分為一個(gè)副拼塊;未經(jīng)切割的該拼塊,直接跳到該拼塊循環(huán)底部,進(jìn)入下一個(gè)拼塊;已經(jīng)切割的拼塊,進(jìn)入一個(gè)副拼塊回路;此副拼塊回路內(nèi)含一個(gè)副拼塊像素回路,在該副拼塊像素回路內(nèi),先計(jì)算目前所在副拼塊內(nèi)該三角貼圖對(duì)應(yīng)該像素的景深值(Z Value),接著根據(jù)該副拼塊的像素掩蓋屏蔽、景深范圍、以及副拼塊模式的資料,與該副拼塊像素的景深值作比較與分類(lèi),將該副拼塊像素分為被遮住像素(Occluded Pixel)、不被遮住像素(Non-occluded Pixel)、未確定像素(Uncertain Pixel)、或未繪過(guò)像素(Uncovered Pixel);接著將上述四種像素類(lèi)分為不需景深值讀取繪點(diǎn)、正常繪點(diǎn)與被剔除繪點(diǎn);不被遮住像素與未繪過(guò)像素屬在不需景深值讀取繪點(diǎn),未確定像素屬在正常繪點(diǎn)(Normal),被遮住像素屬在被剔除繪點(diǎn)(Rejected);在該副拼塊像素回路全部做完的后,接著更新該副拼塊的像素掩蓋屏蔽、以及景深范圍的資料。
12.如權(quán)利要求11所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,該拼塊組的拼塊大小與數(shù)目是可變動(dòng)的,該拼塊組組合起來(lái)即為該繪圖區(qū)的區(qū)域。
13.如權(quán)利要求11所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,拼塊若為8×4,該掩蓋屏蔽大小為32位數(shù)。
14.如權(quán)利要求11所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,又包括至少一個(gè)景深比對(duì)步驟(Z Test),供以判斷該三角貼圖組中該正常(Normal)繪點(diǎn)的景深與已繪在該繪圖區(qū)繪點(diǎn)的景深前后順序,通過(guò)以判斷該三角貼圖組中有哪些點(diǎn)是可見(jiàn)繪點(diǎn)(Viewable Point),該判斷是以該繪圖區(qū)像素作為掃描單位;當(dāng)材質(zhì)沒(méi)有開(kāi)啟艾爾法測(cè)試(Alpha Test)、透明材質(zhì)(Transparent Texture)、或特殊可見(jiàn)度(Visiblity)算法的時(shí)候,景深比對(duì)(Z Test)可以在材質(zhì)運(yùn)算裝置前做。當(dāng)特殊可視材質(zhì)算法開(kāi)啟時(shí)則必須等材質(zhì)運(yùn)算作完才能進(jìn)行景深比對(duì)裝置。
15.如權(quán)利要求14所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,又包括下列步驟繼續(xù)進(jìn)行材質(zhì)運(yùn)算(Texture),以運(yùn)算三角貼圖組該可見(jiàn)繪點(diǎn)的材質(zhì)表現(xiàn)。
16.如權(quán)利要求15所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,又包括下列步驟繼續(xù)彩度運(yùn)算(Color Operation),以運(yùn)算該三角貼圖組中該可繪見(jiàn)點(diǎn)的彩度表現(xiàn)。
17.如權(quán)利要求14所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,又包括下列步驟在進(jìn)入下一個(gè)畫(huà)面(Scene)的前,清除像素掩蓋屏蔽的資料就像清除繪圖區(qū)像素的景深數(shù)據(jù)(Z Buffer)一樣可使新的演算不受的前畫(huà)面結(jié)果的影響。
18.如權(quán)利要求14所述的可調(diào)變式的拼塊景深濾除系統(tǒng),其特征在于,該方法是供應(yīng)用在手持式裝置,包括手持式裝置是數(shù)字相機(jī)、數(shù)字?jǐn)z影機(jī)、個(gè)人數(shù)字助理器、行動(dòng)電子設(shè)備、第三代行動(dòng)電話、手持式行動(dòng)電話或智能型手機(jī)。
全文摘要
一種可調(diào)變式拼塊景深濾除系統(tǒng)與方法,用以傳統(tǒng)景深暫存算法之前,將繪圖區(qū)(Display Region)作比基本像素(Pixel)單位還大的拼塊(Tile)切割,以拼塊為單位先依拼塊內(nèi)景深范圍(Zmax and Zmin)對(duì)三角貼圖的繪點(diǎn)作濾除分類(lèi),能有效率地提早濾除掉不須后續(xù)詳細(xì)景深比對(duì)的繪圖點(diǎn);除此之外,本發(fā)明所提出的像素掩蓋屏蔽(Coverage Mask)與可調(diào)變式的拼塊大小能更進(jìn)一步的增加濾除效能與效率。
文檔編號(hào)G06T15/40GK101079155SQ20061008149
公開(kāi)日2007年11月28日 申請(qǐng)日期2006年5月23日 優(yōu)先權(quán)日2006年5月23日
發(fā)明者曹有銘 申請(qǐng)人:繪展科技股份有限公司