專利名稱:圖形應(yīng)用的有效剪切的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體來說涉及電子學(xué),且更具體來說涉及用于對(duì)圖形應(yīng)用執(zhí)行剪切的技術(shù)。
背景技術(shù):
圖形處理單元(GPU)是用于渲染用于例如視頻游戲、圖形、計(jì)算機(jī)輔助設(shè)計(jì)(CAD)、 模擬和視覺化工具、成像等各種應(yīng)用的2維(2-D)和3維(3-D)圖像的專用硬件單元。 GPU可執(zhí)行各種圖形操作(例如,著色、混合等)以渲染圖或圖像。這些圖形操作可為 計(jì)算密集的。為了減少計(jì)算,可將圖剪輯到圖表面的邊界??蛇M(jìn)一步將圖剪輯到一個(gè)或 一個(gè)以上剪切區(qū)域的內(nèi)部。每一剪切區(qū)域可描述待保留的圖表面的特定區(qū)。圖的經(jīng)剪輯 的部分可被廢棄且因此不加以渲染??赏ㄟ^省略圖的被廢棄的部分的計(jì)算而實(shí)現(xiàn)改進(jìn)的 性能。
剪切是指剪輯具有一個(gè)或一個(gè)以上剪切區(qū)域的圖或圖像的過程。GPU可執(zhí)行剪切以 便節(jié)省圖的不需要渲染的部分的計(jì)算。然而,消耗處理和存儲(chǔ)器資源以便執(zhí)行剪切。用 于剪切的資源的量可隨剪切區(qū)域的數(shù)目而增加。
因此,此項(xiàng)技術(shù)中需要用于有效地執(zhí)行剪切的技術(shù)。
發(fā)明內(nèi)容
本文中描述用于有效地執(zhí)行剪切的技術(shù)。在一方面,可通過以下步驟以循序次序執(zhí) 行任何數(shù)目的剪切區(qū)域的剪切(a) —次將一個(gè)剪切區(qū)域繪制到圖表面或渲染區(qū)上;和 (b)對(duì)于每一剪切區(qū)域,更新剪切區(qū)域內(nèi)的像素的剪切值。
可以各種方式來更新剪切值。在一種設(shè)計(jì)中,像素的剪切值指示覆蓋所述像素的剪 切區(qū)域的數(shù)目。如果新增剪切區(qū)域,那么可將每一剪切區(qū)域內(nèi)的像素的剪切值遞增一, 或如果移除剪切區(qū)域,那么可將每一剪切區(qū)域內(nèi)的像素的剪切值遞減一。在另一設(shè)計(jì)中, 像素的剪切值是不同剪切區(qū)域的位圖,且每一剪切區(qū)域與所述位圖中的相應(yīng)位相關(guān)聯(lián)。 對(duì)于每一剪切區(qū)域,可將剪切區(qū)域內(nèi)的像素的剪切值中的對(duì)應(yīng)位設(shè)定為預(yù)定值(例如,
一)。在又一設(shè)計(jì)中,像素的剪切值指示所述像素是否在任何剪切區(qū)域內(nèi)。
在更新所有剪切區(qū)域的剪切值之后,使所關(guān)注的區(qū)域內(nèi)的像素通過以用于渲染。這可通過將像素的剪切值與參考值進(jìn)行比較并使具有等于或大于所述參考值的剪切值的 像素通過來實(shí)現(xiàn)。對(duì)于剪切UNION運(yùn)算,可將參考值設(shè)定為一以使通過所有剪切區(qū)域 的聯(lián)合而形成的區(qū)域內(nèi)的像素通過。對(duì)于剪切AND運(yùn)算,可將參考值設(shè)定為大于一以 使通過至少兩個(gè)(例如,所有)剪切區(qū)域的相交而形成的區(qū)域內(nèi)的像素通過。此處,UNION 和AND是指對(duì)剪切區(qū)域的邏輯運(yùn)算。
下文更詳細(xì)地描述本發(fā)明的各種方面和特征。
圖1說明2-D圖形中的剪切區(qū)域。 圖2說明對(duì)于多個(gè)剪切區(qū)域的剪切。 圖3展示用于執(zhí)行剪切的過程。 圖4展示2-D圖形管線。 圖5展示3-D圖形管線。 圖6展示執(zhí)行剪切的GPU。 圖7展示無線通信裝置的框圖。
具體實(shí)施例方式
支持2-D圖形的圖形處理單元(GPU)可支持對(duì)于多個(gè)剪切區(qū)域的剪切。舉例來說, GPU可支持公開可用的且在下文中被稱作OpenVG的"OpenVG規(guī)范,1.0版"(2005 年7月28日)。OpenVG是用于2-D向量圖形的新標(biāo)準(zhǔn)且適用于手持式和移動(dòng)裝置(例 如,蜂窩式電話和游戲裝置)。OpenVG需要2-DGPU來支持最少32個(gè)剪切區(qū)域。
圖1說明2-D圖形中的剪切區(qū)域。圖表面100可表示渲染區(qū)、顯示屏幕或用于某一 其它輸出裝置。圖表面100可具有任何寬度和高度(WxH)尺寸(例如,對(duì)于VGA, 為640x480像素)且因此可覆蓋W'H個(gè)像素。在圖1中所展示的實(shí)例中,界定八個(gè)剪 切區(qū)域且所述八個(gè)剪切區(qū)域被稱作剪切區(qū)域1到8。每一剪切區(qū)域可為可由兩個(gè)坐標(biāo)(例 如,關(guān)于左下角的一個(gè)坐標(biāo)和關(guān)于右上角的另一坐標(biāo))界定的矩形。 一般來說,剪切區(qū) 域可具有任何形狀,例如,矩形、三角形、圓形、多邊形、復(fù)雜或任意形狀等。剪切區(qū) 域還可具有任何大小且可位于圖表面上的任何地方。剪切(scissoring)區(qū)域也可被稱作 剪切(scissor)區(qū)域、剪切窗、剪切矩形等。為了簡單起見,以下描述大部分針對(duì)矩形 的剪切區(qū)域。如圖1中所展示,每一剪切區(qū)域可與零個(gè)、 一個(gè)或多個(gè)其它剪切區(qū)域重疊。 舉例來說,剪切區(qū)域8不與其它剪切區(qū)域重疊,剪切區(qū)域4與剪切區(qū)域3重疊,且剪切
7區(qū)域3與剪切區(qū)域1、 2和4重疊。
GPU可通過確定圖表面100中的W,H個(gè)像素中的每一者是否在剪切區(qū)域中的任一 者內(nèi)來執(zhí)行剪切。每一像素可與可指示所述像素是否在任何剪切區(qū)域內(nèi)的剪切值相關(guān) 聯(lián)。剪切值也可被稱作掩碼值等。GPU可使用所述剪切值來確定是否渲染像素。作為一 實(shí)例,對(duì)于剪切UNION運(yùn)算來說,GPU可渲染在通過所有剪切區(qū)域的聯(lián)合而界定的區(qū) 域內(nèi)的像素且可廢棄/丟棄此區(qū)域外部的像素。
如OpenVG所需的32個(gè)剪切區(qū)域的蠻力實(shí)施方案可利用32個(gè)寄存器來存儲(chǔ)這些剪 切區(qū)域的坐標(biāo)且利用128個(gè)比較器來執(zhí)行邏輯/比較運(yùn)算。四個(gè)比較器可用于每一剪切區(qū) 域以將像素與剪切區(qū)域的四個(gè)角進(jìn)行比較以確定所述像素是否在所述剪切區(qū)域內(nèi)。對(duì)于 無線通信裝置、移動(dòng)裝置、游戲裝置和其它消費(fèi)型電子裝置來說,許多剪切區(qū)域的蠻力 實(shí)施方案可為復(fù)雜且昂貴的。
在一方面,可通過以下步驟而有效地執(zhí)行任何數(shù)目的剪切區(qū)域的剪切(a) —次將 一個(gè)剪切區(qū)域繪制到圖表面或渲染區(qū)上;和(b)更新每一剪切區(qū)域內(nèi)的像素的剪切值。 可由支持2-D圖形的GPU以及支持2-D與3-D圖形兩者的GPU來執(zhí)行剪切。還可使用 經(jīng)設(shè)計(jì)以用于其它圖形函數(shù)的處理和/或存儲(chǔ)器資源(例如,共同用于3-D圖形的模版緩 沖器和模版測試單元)來執(zhí)行剪切。
圖2說明對(duì)于多個(gè)剪切區(qū)域的剪切。使用剪切緩沖器來存儲(chǔ)圖表面上的像素的剪切 值。所述剪切緩沖器可為模版緩沖器或某一其它緩沖器。剪切緩沖器可具有與圖表面的 尺寸相同的WxH尺寸且可存儲(chǔ)圖表面上的每一像素的剪切值。還可使用其它剪切緩沖 器大小。為了簡單起見,圖2展示具有12x9尺寸的圖表面。
可由N個(gè)位來表示剪切值,其中,N通??蔀橐换蚋?。舉例來說,N可等于8, 且8位剪切值可在0到255的范圍中。依據(jù)(例如)由GPU支持的剪切模式,還可將 更少或更多的位用于剪切值。
最初(例如)通過將所有剪切值重設(shè)為零而清除剪切緩沖器。接著(例如)通過讀 取剪切區(qū)域的坐標(biāo)和將這些坐標(biāo)應(yīng)用于圖表面而繪制第一剪切區(qū)域。如下文所描述,可 以各種方式更新第一剪切區(qū)域內(nèi)的每一像素的剪切值??赏ㄟ^掃描剪切區(qū)域內(nèi)的像素位 置且對(duì)于每一經(jīng)掃描的像素位置而更新剪切緩沖器中的對(duì)應(yīng)剪切值來實(shí)現(xiàn)剪切。以此方 式,僅更新剪切區(qū)域內(nèi)的像素的剪切值,且剪切區(qū)域外部的其它像素不受影響。
接著(例如)以與第一剪切區(qū)域類似的方式繪制第二剪切區(qū)域??扇缦挛乃枋龆?更新第二剪切區(qū)域內(nèi)的每一像素的剪切值??梢灶愃品绞嚼L制每一額外剪切區(qū)域,且可 更新剪切區(qū)域內(nèi)的像素的剪切值。在已繪制最后剪切區(qū)域且完成剪切值的更新之后,剪切緩沖器中的剪切值可適用于確定是否渲染像素。
在第一設(shè)計(jì)中,像素的剪切值指示覆蓋所述像素的剪切區(qū)域的數(shù)目。在此設(shè)計(jì)中, 當(dāng)繪制每一剪切區(qū)域時(shí),將由所述剪切區(qū)域覆蓋的每一像素的剪切值遞增一。在己繪制 所有剪切區(qū)域之后,如果每一像素被至少一個(gè)剪切區(qū)域覆蓋,那么所述像素的剪切值將 大于零。給定像素的剪切值&指示所述像素被A個(gè)剪切區(qū)域覆蓋,其中0^:《K,且K為 剪切區(qū)域的數(shù)目。如果N個(gè)位用于每一剪切值,那么支持高達(dá)2^1個(gè)剪切區(qū)域。舉例 來說,8位剪切值支持高達(dá)255個(gè)剪切區(qū)域。
在第二設(shè)計(jì)中,像素的剪切值指示覆蓋所述像素的特定剪切區(qū)域(如果存在)。在 此設(shè)計(jì)中,每一像素的N位剪切值為位圖。位圖中的每一位位置對(duì)應(yīng)于一個(gè)剪切區(qū)域。 舉例來說,剪切值的最低有效位(LSB)可對(duì)應(yīng)于第一剪切區(qū)域,下一LSB可對(duì)應(yīng)于第 二剪切區(qū)域等等,且最高有效位(MSB)可對(duì)應(yīng)于第N個(gè)剪切區(qū)域。當(dāng)繪制第A個(gè)剪切 區(qū)域時(shí)(/te{l,...,K}),可將由所述剪切區(qū)域覆蓋的每一像素的剪切值的第A個(gè)位設(shè)定為 一。在己繪制所有剪切區(qū)域之后,如果每一像素被至少一個(gè)剪切區(qū)域覆蓋,那么所述像 素的剪切值將大于零??蓹z查剪切值的位以確定覆蓋像素的特定剪切區(qū)域(如果存在)。 如果N個(gè)位用于每一剪切值,那么支持高達(dá)N個(gè)剪切區(qū)域。
第二設(shè)計(jì)還可用N位剪切值來支持N個(gè)以上剪切區(qū)域。如上所述,如果使用8位 模版值,那么可將八個(gè)剪切區(qū)域映射到八個(gè)位,每位一個(gè)剪切區(qū)域。為了支持八個(gè)以上 剪切區(qū)域,可使用模版值的每一位來表示一個(gè)以上剪切區(qū)域。舉例來說,可將8位模版 值如下重疊將位0用于區(qū)域0、 8、 16等,將位l用于區(qū)域l、 9、 17等,例如此類, 且將位7用于區(qū)域7、 15、 23等??赏ㄟ^模-8運(yùn)算或n=/t mod 8=k% 8來確定對(duì)應(yīng)于給 定剪切區(qū)域A的位w,所述運(yùn)算提供剪切區(qū)域A:除以8的余數(shù)。在第二設(shè)計(jì)中,每一位 還可表示剪切區(qū)域的集合的聯(lián)合且可用于指示像素是否在所述集合中的剪切區(qū)域中的 任一者內(nèi)。像素的剪切值的位還可與剪切區(qū)域的非重疊集合相關(guān)聯(lián),以使得每一剪切區(qū) 域?qū)儆谒黾现械奈ㄒ患?。所有位的聚集因而將表示所有剪切區(qū)域。這可用于增加 可支持的剪切區(qū)域的數(shù)目。
在第三設(shè)計(jì)中,像素的剪切值指示所述像素是否被任何剪切區(qū)域覆蓋。在此設(shè)計(jì)中, 1位剪切值可用于每一像素。當(dāng)繪制每一剪切區(qū)域時(shí),可將由所述剪切區(qū)域覆蓋的每一 像素的1位剪切值設(shè)定為一。在己繪制所有剪切區(qū)域之后,如果每一像素被至少一個(gè)剪 切區(qū)域覆蓋,那么所述像素的剪切值將等于一。此設(shè)計(jì)減小用于剪切值的緩沖器要求。
還可以其它方式和用其它設(shè)計(jì)來更新剪切值。不同設(shè)計(jì)可具有不同更新能力。舉例 來說,無論何時(shí)移除現(xiàn)有剪切區(qū)域或新增新的剪切區(qū)域,第一和第二設(shè)計(jì)均支持剪切值的有效更新。
對(duì)于第一設(shè)計(jì),可通過重新繪制現(xiàn)有剪切區(qū)域和將所述剪切區(qū)域內(nèi)的每一像素的剪 切值遞減一并使剪切值在零處飽和來移除現(xiàn)有剪切區(qū)域??赏ㄟ^繪制剪切區(qū)域且將所述 剪切區(qū)域內(nèi)的每一像素的剪切值遞增一來新增新的剪切區(qū)域。因此,無論何時(shí)新增或移 除剪切區(qū)域,僅繪制待新增的新的剪切區(qū)域,僅重新繪制待移除的剪切區(qū)域,且待保留 的其它剪切區(qū)域不受影響,這可節(jié)省計(jì)算。
對(duì)于第二設(shè)計(jì),可通過重新繪制剪切區(qū)域且將所述剪切區(qū)域內(nèi)的每一像素的對(duì)應(yīng)剪 切位值重設(shè)為零來移除現(xiàn)有剪切區(qū)域??赏ㄟ^繪制剪切區(qū)域且將所述剪切區(qū)域內(nèi)的每一 像素的對(duì)應(yīng)剪切位值設(shè)定為一來新增新的剪切區(qū)域。
不同的設(shè)計(jì)還可支持不同的剪切模式。上文所描述的所有三種設(shè)計(jì)均支持剪切 UNION運(yùn)算。對(duì)于剪切UNION來說,如果像素的剪切值為一或更大,那么所述像素在 通過所有剪切區(qū)域的聯(lián)合而形成的區(qū)域內(nèi)(或在至少一個(gè)剪切區(qū)域內(nèi))。第一和第二設(shè) 計(jì)還支持剪切AND運(yùn)算。對(duì)于剪切AND來說,如果像素的剪切值大于一,那么所述像 素在通過至少兩個(gè)(R個(gè))剪切區(qū)域的相交而形成的區(qū)域內(nèi)。 一般來說,R可被設(shè)定為 大于一且高達(dá)剪切區(qū)域的數(shù)目的任何值。如果R等于剪切區(qū)域的數(shù)目,那么僅使所有剪 切區(qū)域內(nèi)的像素通過。
對(duì)于第一設(shè)計(jì),可通過以下方式來實(shí)現(xiàn)剪切AND:將像素的剪切值與參考值進(jìn)行比 較,如果剪切值等于或大于所述參考值,那么使所述像素通過,且否則廢棄所述像素。 對(duì)于第二設(shè)計(jì),可通過以下方式來實(shí)現(xiàn)剪切AND:檢査在像素的剪切值中設(shè)定的位,將 所述設(shè)定位與參考值進(jìn)行比較,且基于所述比較結(jié)果來使所述像素通過或丟棄所述像 素。
第二設(shè)計(jì)還支持選擇性UNION運(yùn)算、選擇性AND運(yùn)算等。對(duì)于選擇性AND,使 通過K個(gè)剪切區(qū)域中的選定的剪切區(qū)域的相交而形成的區(qū)域內(nèi)的像素通過。對(duì)于選擇性 UNION,使通過K個(gè)剪切區(qū)域中的選定的剪切區(qū)域的聯(lián)合而形成的區(qū)域內(nèi)的像素通過。 對(duì)于所有設(shè)計(jì),像素的參考值可以是用于對(duì)于所述像素的剪切值的逐位邏輯測試中的掩 碼。舉例來說,在第二設(shè)計(jì)中,可對(duì)掩碼和像素的剪切值執(zhí)行AND運(yùn)算。剪切接著可 能夠基于正繪制的像素來辨別特定區(qū)域。
第二設(shè)計(jì)可用于各種目的,例如,用于在圖表面上繪制多個(gè)圖像。圖表面的不同區(qū) 可用不同圖像繪制且可由不同剪切區(qū)域來界定。剪切區(qū)域和位圖可用于確定哪一圖像將 繪制于每一圖區(qū)中。舉例來說,可將圖像繪制于由第A個(gè)剪切區(qū)域界定的區(qū)中,且可通 過檢查對(duì)應(yīng)剪切值的第A:個(gè)位而確定此區(qū)內(nèi)的像素。第二設(shè)計(jì)還可用于掩蔽圖標(biāo)渲染、用于在開窗系統(tǒng)中掩蔽對(duì)可繪制的表面的可見像素的渲染、用于在復(fù)雜窗口形狀的支持 下支持非矩形剪輯等。
圖3展示用于執(zhí)行對(duì)于多個(gè)剪切區(qū)域的剪切的過程300。最初,(例如)通過將用于 存儲(chǔ)像素的剪切值的緩沖器中的剪切值重設(shè)為零而初始化所述緩沖器(框312)。接著以 循序次序以一次一個(gè)剪切區(qū)域的方式對(duì)多個(gè)剪切區(qū)域執(zhí)行剪切(框314)。對(duì)于每一剪切 區(qū)域,更新所述剪切區(qū)域內(nèi)的像素的剪切值(框316)。
可以各種方式來執(zhí)行區(qū)塊316中的更新。對(duì)于第一設(shè)計(jì),像素的剪切值可指示覆蓋 所述像素的剪切區(qū)域的數(shù)目??蓪⒚恳患羟袇^(qū)域內(nèi)的像素的剪切值遞增一。對(duì)于第二設(shè) 計(jì),像素的剪切值可為不同剪切區(qū)域的位圖,且每一剪切區(qū)域可與所述位圖中的相應(yīng)位 相關(guān)聯(lián)。對(duì)于每一剪切區(qū)域,可將剪切區(qū)域內(nèi)的像素的剪切值的對(duì)應(yīng)位設(shè)定為預(yù)定值(例 如, 一)。對(duì)于第三設(shè)才,像素的剪切值可指示所述像素是否在任何剪切區(qū)域內(nèi)??蓪?每一剪切區(qū)域內(nèi)的像素的剪切值設(shè)定為預(yù)定值(例如, 一)。更新可包括利用多邊形變 換和光柵化處理單元來將簡單或復(fù)雜形狀繪制到剪切緩沖器。
可執(zhí)行剪切以移除多個(gè)剪切區(qū)域中的一者或一者以上。對(duì)于待移除的每一剪切區(qū) 域,可更新剪切區(qū)域內(nèi)的像素的剪切值,例如,如果剪切值大于零,那么將剪切值遞減 一。還可執(zhí)行剪切以將一個(gè)或一個(gè)以上剪切區(qū)域新增到多個(gè)剪切區(qū)域。對(duì)于待新增的每 一剪切區(qū)域,可更新剪切區(qū)域內(nèi)的像素的剪切值,例如,將剪切值遞增一。
在更新所有剪切區(qū)域的剪切值之后,使通過渲染碼產(chǎn)生的且在所關(guān)注的區(qū)域內(nèi)的像 素通過(框31S)??赏ㄟ^將像素的剪切值與參考值進(jìn)行比較且使具有等于或超過所述參 考值的剪切值的像素通過來實(shí)現(xiàn)此目的。參考值一可用于用于剪切UNION運(yùn)算的所有 三種設(shè)計(jì)以使通過多個(gè)剪切區(qū)域的聯(lián)合而形成的區(qū)域內(nèi)的像素通過。大于一的參考值可 用于用于剪切AND運(yùn)算的第一設(shè)計(jì)以使通過多個(gè)剪切區(qū)域中的至少兩者(例如,所有 者)的相交而形成的區(qū)域內(nèi)的像素通過。對(duì)于第二設(shè)計(jì),可檢查剪切值的個(gè)別位以使所 關(guān)注的區(qū)域中的像素通過。在任何狀況下,進(jìn)一步處理(例如,渲染)所述通過的像素 (框320)。
GPU可支持2-D和/或3-D圖形。2-D圖形存儲(chǔ)用于產(chǎn)生2-D圖像的幾何數(shù)據(jù)的2-D 表示。3-D圖形存儲(chǔ)經(jīng)處理以產(chǎn)生2-D圖像的幾何數(shù)據(jù)的3-D表示。2-D圖形可與涂刷 (painting)相比,而3-D圖形可與雕刻(sculpting)相比。2-D和3-D圖形可對(duì)于不同 圖形操作利用不同管線來產(chǎn)生輸出圖像。
圖4展示描述于OpenVG中的2-D圖形管線400的框圖。2-D圖形中的圖由路徑組 成。每一路徑界定圖表面上的筆(pen)或涂抹刷的持續(xù)時(shí)間。路徑用于界定圖中的幾何形狀。路徑可被劃線和/或填充。劃線是指用線界定路徑形狀的輪廓。填充是指將顏色、 梯度或紋理應(yīng)用于形狀的內(nèi)部。
在用于級(jí)1的框412中,應(yīng)用程序界定待繪制的路徑且設(shè)定待由后續(xù)級(jí)使用的變換、 劃線和涂刷參數(shù)(如果存在)。在用于級(jí)2的框414中,將路徑從用戶坐標(biāo)系統(tǒng)變換到 表面坐標(biāo)系統(tǒng)。如果將對(duì)路徑劃線,那么在用戶坐標(biāo)系統(tǒng)中應(yīng)用劃線參數(shù)以在表面坐標(biāo) 系統(tǒng)中產(chǎn)生描述劃線幾何形狀的新路徑。此新路徑被稱作當(dāng)前路徑且被管線中的后續(xù)級(jí) 操作。在用于級(jí)3的框416中,對(duì)當(dāng)前路徑的幾何形狀應(yīng)用路徑到表面變換以產(chǎn)生圖表 面坐標(biāo)。在用于級(jí)4的框418中,對(duì)受當(dāng)前路徑影響的每一像素計(jì)算覆蓋值。級(jí)4將當(dāng) 前路徑映射到圖表面上的像素。
在用于級(jí)5的框420中,向不在圖表面的邊界內(nèi)的和(如果啟用了剪切)不在一個(gè) 或一個(gè)以上剪切區(qū)域內(nèi)的像素指派覆蓋值零。對(duì)于具有覆蓋值零的像素,跳過剩余的處 理。如上所述,級(jí)5可執(zhí)行對(duì)于多個(gè)剪切區(qū)域的剪切。
在用于級(jí)6的框422中,基于當(dāng)前有關(guān)涂刷來對(duì)圖表面上的每一像素界定色值和a 值,當(dāng)前有關(guān)涂刷可取決于路徑正被填充還是劃線。級(jí)6對(duì)當(dāng)前路徑上的像素應(yīng)用涂刷 圖像。在用于級(jí)7的框424中,如果正繪制圖像,那么通過使用圖像到表面變換的逆運(yùn) 算來內(nèi)插圖像值而對(duì)每一像素計(jì)算圖像色值和a值。根據(jù)當(dāng)前圖像繪制模式將結(jié)果與涂 刷色值和a值組合。在用于級(jí)8的框426中,將來自級(jí)7的每一像素的源色值和a值轉(zhuǎn) 換到目的地顏色空間且根據(jù)選定混合模式將其與對(duì)應(yīng)目的地色值和a值混合。
還可用可以其它方式渲染基元的其它管線來支持2-D圖形?;獮閹缀涡螤畹幕?單位且可為線、區(qū)段、點(diǎn)等等。可通過2-D圖形管線中的剪輯/掩蔽級(jí)來執(zhí)行對(duì)于多個(gè)剪 切區(qū)域的剪切。
圖5展示支持3-D圖形且還可支持2-D圖形的3-D圖形管線500的框圖。管線500 可支持3-D軟件接口,例如,開放式圖形程序庫(OpenGL)、 Direct3D等。OpenGL描 述于公開可用的注明日期為2004年10月22日的標(biāo)題為"TheOpenGL⑧圖形系統(tǒng):規(guī)范 (The OpenGL Graphics System: A Specification)", 2.0版的文獻(xiàn)中。
2-D或3-D圖像可用多邊形(通常為三角形)來表示。每一三角形由三個(gè)頂點(diǎn)來界 定,且每一頂點(diǎn)與例如空間坐標(biāo)、色值、紋理坐標(biāo)等各種屬性相關(guān)聯(lián)。每一屬性可具有 高達(dá)四個(gè)分量。舉例來說,可由三個(gè)分量x、 y和z或四個(gè)分量;c、 h z和w來給出空間 坐標(biāo),其中x和y為水平和垂直坐標(biāo),z為深度,且w為齊次坐標(biāo)??捎扇齻€(gè)分量r、 g 和6或四個(gè)分量r、 g、 6和a來給出色值,其中r為紅色,g為綠色,6為藍(lán)色,且a為 確定像素的透明性的透明性因子。通常由水平和垂直坐標(biāo)"和v來給出紋理坐標(biāo)。頂點(diǎn)還可與其它屬性相關(guān)聯(lián)。管線500通過計(jì)算待顯示的像素的屬性分量值而渲染2-D或3-D 圖像。
頂點(diǎn)著色器512可對(duì)幾何形狀(例如,三角形)執(zhí)行各種圖形操作。舉例來說,頂 點(diǎn)著色器512可將幾何形狀從一個(gè)坐標(biāo)系統(tǒng)變換到另一坐標(biāo)系統(tǒng),計(jì)算幾何形狀的頂點(diǎn) 的光值,對(duì)幾何形狀執(zhí)行混合等?;獏R編器和處理器514計(jì)算用于后續(xù)光柵化過程的 參數(shù)。舉例來說,處理器514可計(jì)算每一三角形的三個(gè)邊的線性等式的系數(shù)、像素的深 度內(nèi)插的深度")梯度等。掃描轉(zhuǎn)換器516將每一三角形或線分解成像素且產(chǎn)生每一 像素的屏幕坐標(biāo)。
早期深度/模版測試引擎518對(duì)像素執(zhí)行深度和/或模版測試(如果啟用)以確定應(yīng) 渲染像素還是應(yīng)廢棄像素。通??苫Q地使用術(shù)語"引擎"、"核心"、"機(jī)器"、"處理器" 和"處理單元"。模版緩沖器(圖5中未圖示)存儲(chǔ)正渲染的圖像中的每一像素位置的 當(dāng)前模版值。對(duì)于模版測試,引擎518將像素的所存儲(chǔ)的模版值與參考值進(jìn)行比較且基 于所述比較的結(jié)果而使所述像素通過或廢棄所述像素。引擎518可對(duì)像素執(zhí)行深度測試 (其也被稱為z測試)(如果適用)以確定應(yīng)渲染像素還是應(yīng)廢棄像素。z緩沖器(圖5 中也未圖示)存儲(chǔ)正渲染的圖像中的每一像素位置的當(dāng)前z值。對(duì)于深度測試,引擎518 將像素的z值(當(dāng)前z值)與z緩沖器中的對(duì)應(yīng)z值(所存儲(chǔ)的z值)進(jìn)行比較,如果 當(dāng)前z值比所存儲(chǔ)的z值更靠近/接近,那么使所述像素通過且更新z緩沖器并可能更新 模版緩沖器,且如果當(dāng)前z值比所存儲(chǔ)的z值更靠后,那么廢棄所述像素。
像素/片段著色器和紋理過濾器520可對(duì)像素和片段執(zhí)行各種圖形操作。片段為像素 及其相關(guān)聯(lián)的信息。著色器520可計(jì)算像素屬性的內(nèi)插的參數(shù)(例如,屬性內(nèi)插的線性 等式的系數(shù))。著色器520接著可基于像素的屏幕坐標(biāo)且使用內(nèi)插參數(shù)來計(jì)算每一三角 形內(nèi)的每一像素的屬性分量值。紋理過濾器520執(zhí)行紋理映射(如果啟用)以對(duì)每一三 角形應(yīng)用紋理??蓪⒓y理圖像存儲(chǔ)于紋理緩沖器(圖5中未圖示)中。每一三角形的三 個(gè)頂點(diǎn)可與紋理圖像中的三個(gè)(",v)坐標(biāo)相關(guān)聯(lián),且三角形的每一像素接著可與紋理 圖像中的特定紋理坐標(biāo)相關(guān)聯(lián)。通過用由每一像素的紋理坐標(biāo)指示的位置處的紋理圖像 的顏色來修改所述像素的顏色而實(shí)現(xiàn)紋理化。
后期深度和像素混合器522可對(duì)每一片段執(zhí)行例如(x測試、霧化混合、a混合、邏 輯運(yùn)算和抖動(dòng)操作等圖形操作且將結(jié)果提供給顏色緩沖器。
3-D圖形管線500中的級(jí)通常經(jīng)設(shè)計(jì)以用于3-D圖形。這些級(jí)還可用于支持2-D圖 形。在一種設(shè)計(jì)中,在軟件或預(yù)處理單元中執(zhí)行圖4中的2-D圖形管線400的級(jí)l和2, 由頂點(diǎn)著色器512執(zhí)行級(jí)3,由基元匯編器和處理器514執(zhí)行級(jí)4,由早期深度/模版測試引擎518執(zhí)行級(jí)5,由像素/片段著色器和紋理過濾器520執(zhí)行級(jí)6和級(jí)7,且由后期 深度和像素混合器522執(zhí)行級(jí)8。管線500還可以其它方式支持2-D圖形,例如,用管 線400中的級(jí)到管線500中的單元的不同映射來支持2-D圖形。管線500可包括用于支 持2-D圖形操作的擴(kuò)展和/或修改。
GPU可(例如)通過實(shí)施圖4中的管線400或某一其它2-D圖形管線而僅支持2-D 圖形。GPU還可(例如)通過實(shí)施圖5中的管線500或某一其它圖形管線而支持2-D與 3-D圖形兩者。
對(duì)于支持2-D與3-D圖形兩者的GPU來說,可使用模版單元(例如,模版緩沖器 和模版測試引擎)來對(duì)2-D圖形執(zhí)行剪切。所述模版單元通常具有較高吞吐量(例如, 比顏色操作吞吐量快兩倍到四倍)且通常與可節(jié)省數(shù)據(jù)總線帶寬的高效率模版高速緩沖 存儲(chǔ)器相關(guān)聯(lián)。當(dāng)渲染3-D圖形時(shí),模版單元可在早期執(zhí)行模版測試,使得可在模版測 試失敗的情況下避免計(jì)算密集的操作。模版單元可用于對(duì)2-D圖形執(zhí)行剪切以加快像素 渲染。
模版單元通常對(duì)每一傳入的像素執(zhí)行模版測試和模版操作。模版測試基于用于所述 像素的存儲(chǔ)于模版緩沖器中的當(dāng)前模版值來確定是使所述像素通過還是丟棄所述像素。 模版操作可基于深度和/或模版測試的結(jié)果來根據(jù)模版操作碼而更新模版值。
模版單元可如下執(zhí)行剪切。首先,(例如)使用快速清除而將模版緩沖器清除為零。 模版緩沖器通常存儲(chǔ)用于3-D圖形的模版值且用于存儲(chǔ)用于2-D圖形的剪切值。界定在 上面應(yīng)用剪切區(qū)域的渲染緩沖器區(qū)。對(duì)于上文所描述的第一設(shè)計(jì),可將模版單元如下設(shè) 定
1 .模版測試函數(shù)-ALWAYS,
2. 模版操作4NCREASE—WRAP或INCREASE,且
3. 啟用對(duì)模版緩沖器的模版寫入。
第一設(shè)定促使模版單元始終通過對(duì)像素的模版測試,此將允許對(duì)這些像素的剪切值 的更新。第二設(shè)定指示如何更新模版值???a)用INCREASE設(shè)定使模版值遞增且飽 和,或(b)可用INCREASE—WRAP設(shè)定使模版值遞增且使模版值在到達(dá)最大值之后環(huán) 繞。當(dāng)移除剪切區(qū)域時(shí),還可將模版操作設(shè)定為DECREASE—WRAP或DECREASE。對(duì) 于上文所描述的第二設(shè)計(jì),可將模版操作設(shè)定為用參考模版值{1<< (剪切#%8) }進(jìn)行 REPLACE,其中"%8"表示模-8運(yùn)算。第三設(shè)定在繪制每一剪切區(qū)域之后啟用模版緩
沖器中的剪切值的更新。
模版單元可接著通過一次繪制一個(gè)剪切區(qū)域且如由模版操作所指示而更新模版緩沖器中的剪切值來執(zhí)行剪切。在繪制所有剪切區(qū)域之后,GPU可使用可用的處理和存儲(chǔ) 器資源來渲染2-D (例如,OpenVG)基元(例如,路徑、掩碼、涂刷、圖像等)。舉例 來說,可如上所述將圖4中的2-D圖形管線400中的級(jí)映射到圖5中的3-D圖形管線500 中的區(qū)塊。
在渲染過程期間,可通過從模版緩沖器讀取剪切值且將所述剪切值與參考模版值進(jìn) 行比較而對(duì)像素執(zhí)行模版測試。對(duì)于剪切UNION運(yùn)算,可將模版測試函數(shù)設(shè)定為 LARGER THAN,且可將參考模版值設(shè)定為零。對(duì)于剪切AND運(yùn)算,可將模版測試函 數(shù)設(shè)定為EQUALTO,且可將參考模版值設(shè)定為大于一的值。可將參考模版值設(shè)定為R 以使由至少R個(gè)剪切區(qū)域覆蓋的像素通過。可對(duì)每一像素僅執(zhí)行一個(gè)比較而不管正應(yīng)用 的剪切區(qū)域的數(shù)目如何,這可大大加速渲染過程。通過模版測試的像素在所關(guān)注的區(qū)域 內(nèi)且可被轉(zhuǎn)發(fā)到管線中的后續(xù)級(jí)??蓙G棄未通過模版測試的像素。
圖6展示執(zhí)行剪切的GPU 600的框圖。GPU 600可實(shí)施圖4中的2-D圖形管線400 中的級(jí)5和/或圖5中的3-D圖形管線500中的早期深度/模版測試引擎518。 GPU 600 可包括在圖6中為簡單起見而未圖示的其它處理和控制單元、引擎和存儲(chǔ)器。
如上所述,處理單元610接收剪切區(qū)域且更新由這些剪切區(qū)域覆蓋的像素的剪切值。 所述更新取決于是新增剪切區(qū)域還是移除剪切區(qū)域。緩沖器620存儲(chǔ)像素的剪切值。處 理單元610還可基于參考值來執(zhí)行剪切/模版測試以使所關(guān)注的區(qū)域中的像素通過。處理 單元610可(例如)從圖4中的級(jí)4接收傳入的像素的(x, y)坐標(biāo),基于這些像素的 坐標(biāo)來確定這些像素的剪切值,且基于每一像素的剪切值和所述參考值來確定是應(yīng)使所 述像素通過還是應(yīng)丟棄所述像素??苫谒募羟羞\(yùn)算(例如,UNION或AND)來 設(shè)定參考值。渲染單元630渲染通過剪切/模版測試的像素且可執(zhí)行任何合適的圖形操作 以渲染這些像素。處理單元610可執(zhí)行圖3中的框312到318中所展示的處理。渲染單 元630可執(zhí)行圖3中的框320中所展示的處理。
在一種設(shè)計(jì)中,多遍執(zhí)行剪切和渲染。在第一遍中,將剪切區(qū)域繪制到剪切緩沖器 上,更新剪切值,且不將像素傳遞到渲染單元630。在第二遍中,單元610處理傳入的 像素以基于每一像素的剪切值來確定使所述像素通過還是拋棄所述像素,且將通過的像 素轉(zhuǎn)發(fā)到渲染單元620。對(duì)于其它設(shè)計(jì),還可以其它方式執(zhí)行剪切和渲染。
處理單元610可為模版測試引擎,且緩沖器620可為用于3-D圖形的模版緩沖器。 模版緩沖器和模版測試引擎可用于有效地對(duì)2-D圖形執(zhí)行剪切。處理單元610可對(duì)每一 剪切區(qū)域執(zhí)行模版測試(例如,在ALWAYS的設(shè)定下)和模版操作(例如,在INCREASE、 INCREASE—WRAP、 DECREASE或DECREASE—WRAP的設(shè)定下)以更新剪切區(qū)域內(nèi)的像素的剪切值。
可將圖像縮放得較大(例如,當(dāng)開啟超級(jí)取樣抗混疊時(shí))。在此狀況下,剪切值可 表示像素的一部分(或子像素)。舉例來說,如果將圖像縮放為大兩倍,那么可存在每 一像素的四個(gè)剪切值,其中每一剪切值對(duì)應(yīng)于四個(gè)子像素中的一者。雖然用子像素代替 像素,但可以上文所描述的方式執(zhí)行剪切。
如上所述,剪切區(qū)域可具有任何形狀和任何大小??赏ㄟ^首先將剪切區(qū)域鑲嵌到三 角形扇(其為具有任何數(shù)目的邊和形狀的多邊形)中來實(shí)現(xiàn)任意形狀的剪切區(qū)域的剪切。 可將所述三角形扇分解成若干三角形。可將每一三角形光柵化以確定所述三角形內(nèi)的像 素??苫谏衔乃枋龅脑O(shè)計(jì)中的任一者來更新每一三角形內(nèi)的每一像素的剪切值。
本文中所描述的剪切技術(shù)可用于無線通信裝置、手持式裝置、游戲裝置、計(jì)算裝置、 消費(fèi)型電子裝置等。下文描述所述技術(shù)針對(duì)無線通信裝置的示范性用途。
圖7展示無線通信系統(tǒng)中的無線通信裝置700的設(shè)計(jì)的框圖。無線裝置700可為蜂 窩式電話、終端、手機(jī)、個(gè)人數(shù)字助理(PDA)或某一其它裝置。所述無線通信系統(tǒng)可 為碼分多址(CDMA)系統(tǒng)、全球移動(dòng)通信系統(tǒng)(GSM)系統(tǒng)或某一其它系統(tǒng)。
無線裝置700能夠經(jīng)由接收路徑和發(fā)射路徑而提供雙向通信。在接收路徑上,由基 站發(fā)射的信號(hào)由天線712接收且被提供給接收器(RCVR) 714。接收器714調(diào)節(jié)所接收 的信號(hào)且使其數(shù)字化并將樣本提供給數(shù)字段720以供進(jìn)一步處理。在發(fā)射路徑上,發(fā)射 器(TMTR) 716接收待從數(shù)字段720發(fā)射的數(shù)據(jù),處理并調(diào)節(jié)數(shù)據(jù),且產(chǎn)生經(jīng)調(diào)制的 信號(hào),所述經(jīng)調(diào)制的信號(hào)經(jīng)由天線712而發(fā)射到基站。
數(shù)字段720包括各種處理、接口和存儲(chǔ)器單元,例如,調(diào)制解調(diào)器處理器722、視 頻處理器724、控制器/處理器726、顯示處理器728、高級(jí)RSIC機(jī)器/數(shù)字信號(hào)處理器 (ARM/DSP) 732、 GPU 734、內(nèi)部存儲(chǔ)器736和外部總線接口 (EBI) 738。調(diào)制解調(diào)器 處理器722執(zhí)行針對(duì)數(shù)據(jù)發(fā)射和接收的處理(例如,編碼、調(diào)制、解調(diào)制和解碼)。視 頻處理器724對(duì)用于例如攝像機(jī)、視頻重放和視頻會(huì)議等視頻應(yīng)用的視頻內(nèi)容(例如, 靜態(tài)圖像、移動(dòng)視頻和移動(dòng)文字)執(zhí)行處理??刂破?處理器726可指導(dǎo)數(shù)字段720內(nèi)的 各種處理和接口單元的操作。顯示處理器728執(zhí)行處理以促進(jìn)視頻、圖形和文字在顯示 單元730上的顯示。ARM/DSP 732可對(duì)無線裝置700執(zhí)行各種類型的處理。GPU 734 執(zhí)行圖形處理且可實(shí)施圖3中的過程300、圖4中的2-D圖形管線400的全部或一部分、 圖5中的3-D圖形管線500的全部或一部分、某一其它圖形管線、圖6中的GPU 600 等。內(nèi)部存儲(chǔ)器736存儲(chǔ)用于數(shù)字段720內(nèi)的各種單元的數(shù)據(jù)和/或指令。EBI 738促進(jìn) 數(shù)字段720 (例如,內(nèi)部存儲(chǔ)器736)與主存儲(chǔ)器740之間的數(shù)據(jù)的傳遞??捎靡粋€(gè)或一個(gè)以上DSP、微處理器、RISC等來實(shí)施數(shù)字段720。數(shù)字段720還可 在一個(gè)或一個(gè)以上專用集成電路(ASIC)和/或某一其它類型的集成電路(IC)上制造。
可通過各種手段來實(shí)施本文中所描述的剪切技術(shù)。舉例來說,可以硬件、固件、軟 件或其組合來實(shí)施這些技術(shù)。對(duì)于硬件實(shí)施方案,可在以下各者內(nèi)實(shí)施用于執(zhí)行剪切的 處理單元(例如,圖6中的GPU 600、圖7中的GPU 734等) 一個(gè)或一個(gè)以上ASIC、 DSP、數(shù)字信號(hào)處理裝置(DSPD)、可編程邏輯裝置(PLD)、場可編程門陣列(FPGA)、 處理器、控制器、微控制器、微處理器、電子裝置、經(jīng)設(shè)計(jì)以執(zhí)行本文中所描述的功能 的其它電子單元,或其組合。所述處理單元可能包括或可能不包括整合式/嵌入式存儲(chǔ)器。
實(shí)施本文中所描述的剪切技術(shù)的設(shè)備可為獨(dú)立單元或一裝置的一部分。所述裝置可 為(i)獨(dú)立IC (例如,圖形IC)、 (ii)可包括用于存儲(chǔ)數(shù)據(jù)和/或指令的存儲(chǔ)器IC的一 組一個(gè)或一個(gè)以上IC、 (iii)具有整合式圖形處理功能的ASIC (例如,移動(dòng)臺(tái)調(diào)制解調(diào) 器(MSM))、 (iv)可嵌入其它裝置內(nèi)的模塊、(v)蜂窩式電話、無線裝置、手機(jī)或移 動(dòng)單元、(vi)等。
提供本發(fā)明的先前描述以使所屬領(lǐng)域的技術(shù)人員能夠制造或使用本發(fā)明。所屬領(lǐng)域 的技術(shù)人員將容易了解對(duì)本發(fā)明的各種修改,且在不脫離本發(fā)明的精神或范圍的情況 下,本文中所界定的一般原理可應(yīng)用于其它變型。因此,本發(fā)明不希望限于本文中所描 述的實(shí)例,而是應(yīng)被賦予與本文中所揭示的原理和新穎特征一致的最廣泛范圍。
權(quán)利要求
1. 一種裝置,其包含緩沖器,其用于存儲(chǔ)像素的剪切值;以及處理單元,其用于以循序次序以一次一個(gè)剪切區(qū)域的方式對(duì)多個(gè)剪切區(qū)域執(zhí)行剪切,且對(duì)于每一剪切區(qū)域,更新所述剪切區(qū)域內(nèi)的像素的剪切值。
2. 根據(jù)權(quán)利要求1所述的裝置,其中像素的剪切值指示覆蓋所述像素的剪切區(qū)域的數(shù) 目,且其中對(duì)于每一剪切區(qū)域,所述處理單元遞增所述剪切區(qū)域內(nèi)的所述像素的所 述剪切值。
3. 根據(jù)權(quán)利要求2所述的裝置,其中所述處理單元移除所述多個(gè)剪切區(qū)域中的至少一 者,且對(duì)于待移除的每一剪切區(qū)域,如果所述剪切區(qū)域內(nèi)的像素的剪切值大于零, 那么遞減所述剪切值。
4. 根據(jù)權(quán)利要求2所述的裝置,其中所述處理單元對(duì)新增到所述多個(gè)剪切區(qū)域的至少 一個(gè)剪切區(qū)域執(zhí)行剪切,且對(duì)于待新增的每一剪切區(qū)域,遞增所述剪切區(qū)域內(nèi)的像 素的剪切值。
5. 根據(jù)權(quán)利要求1所述的裝置,其中像素的剪切值是多個(gè)剪切區(qū)域的位圖,且其中所 述多個(gè)剪切區(qū)域中的每一者與所述位圖中的相應(yīng)位相關(guān)聯(lián)。
6. 根據(jù)權(quán)利要求5所述的裝置,其中對(duì)于每一剪切區(qū)域,所述處理單元將所述剪切區(qū) 域內(nèi)的所述像素的所述剪切值中的對(duì)應(yīng)位設(shè)定為預(yù)定值。
7. 根據(jù)權(quán)利要求1所述的裝置,其中像素的剪切值包含多個(gè)位,每一位與剪切區(qū)域的 相應(yīng)集合相關(guān)聯(lián)且指示所述像素是否在所述集合中的所述剪切區(qū)域中的任一者內(nèi)。
8. 根據(jù)權(quán)利要求1所述的裝置,其中所述像素的所述剪切值的所述多個(gè)位與剪切區(qū)域 的多個(gè)集合相關(guān)聯(lián),每一剪切區(qū)域?qū)儆谒龆鄠€(gè)集合中的一者。
9. 根據(jù)權(quán)利要求1所述的裝置,其中像素的剪切值指示所述像素是否在任何剪切區(qū)域內(nèi),且其中對(duì)于每一剪切區(qū)域,所述處理單元將所述剪切區(qū)域內(nèi)的所述像素的所述 剪切值設(shè)定為預(yù)定值。
10. 根據(jù)權(quán)利要求1所述的裝置,其中所述緩沖器是在執(zhí)行剪切之前通過將所述緩沖器 中的所述剪切值重設(shè)為零而初始化。
11. 根據(jù)權(quán)利要求1所述的裝置,其中所述處理單元將像素的剪切值與參考值進(jìn)行比較 且使具有等于或超過所述參考值的剪切值的像素通過。
12. 根據(jù)權(quán)利要求1所述的裝置,其中所述處理單元從圖形管線中的先前級(jí)接收傳入的 像素且基于所述傳入的像素中的每一者的剪切值來確定是使所述像素通過還是丟 棄所述像素。
13. 根據(jù)權(quán)利要求1所述的裝置,其中所述處理單元使通過所述多個(gè)剪切區(qū)域的聯(lián)合而 形成的區(qū)域內(nèi)的像素通過。
14. 根據(jù)權(quán)利要求1所述的裝置,其中所述處理單元使通過所述多個(gè)剪切區(qū)域中的至少 兩者的相交而形成的區(qū)域內(nèi)的像素通過。
15. 根據(jù)權(quán)利要求1所述的裝置,其中所述處理單元使通過所述多個(gè)剪切區(qū)域的相交而 形成的區(qū)域內(nèi)的像素通過。
16. 根據(jù)權(quán)利要求l所述的裝置,其進(jìn)一步包含渲染單元,其用于渲染所關(guān)注的區(qū)域內(nèi)的且基于所述緩沖器中的所述剪切值而確定的像素。
17. 根據(jù)權(quán)利要求1所述的裝置,其中所述緩沖器為模版緩沖器,且所述處理單元為用 于3-D圖形的模版測試單元,且其中所述模版緩沖器和模版測試單元用于對(duì)2-D圖 形執(zhí)行剪切。
18. 根據(jù)權(quán)利要求17所述的裝置,其中對(duì)于每一剪切區(qū)域,所述處理單元對(duì)所述剪切 區(qū)域內(nèi)的像素執(zhí)行模版測試且執(zhí)行模版操作以更新所述剪切區(qū)域內(nèi)的所述像素的所述剪切值。
19. 根據(jù)權(quán)利要求1所述的裝置,其中像素與N位剪切值相關(guān)聯(lián),其中N大于一,且 其中所述處理單元對(duì)高達(dá)2N-1個(gè)剪切區(qū)域執(zhí)行剪切。
20. —種裝置,其包含模版緩沖器,其用于存儲(chǔ)3-D圖形中的像素的模版值且存儲(chǔ)2-D圖形中的像素的 剪切值;以及模版測試單元,其用于對(duì)3-D圖形執(zhí)行模版測試且對(duì)2-D圖形以循序次序?qū)Χ鄠€(gè) 剪切區(qū)域執(zhí)行剪切。
21. 根據(jù)權(quán)利要求20所述的裝置,其中對(duì)于每一剪切區(qū)域,所述模版測試單元遞增所 述剪切區(qū)域內(nèi)的像素的剪切值。
22. —種無線裝置,其包含處理 器,其用于以循序次序以一次一個(gè)剪切區(qū)域的方式對(duì)多個(gè)剪切區(qū)域執(zhí)行剪 切,且對(duì)于每一剪切區(qū)域,更新所述剪切區(qū)域內(nèi)的像素的剪切值;以及 存儲(chǔ)器,其用于存儲(chǔ)像素的剪切值。
23. —種方法,其包含以循序次序以一次一個(gè)剪切區(qū)域的方式對(duì)多個(gè)剪切區(qū)域執(zhí)行剪切;以及 對(duì)于每一剪切區(qū)域,更新所述剪切區(qū)域內(nèi)的像素的剪切值。
24. 根據(jù)權(quán)利要求23所述的方法,其中所述更新所述剪切區(qū)域內(nèi)的像素的剪切值包含 遞增所述剪切區(qū)域內(nèi)的所述像素的所述剪切值。
25. 根據(jù)權(quán)利要求23所述的方法,其進(jìn)一步包含移除所述多個(gè)剪切區(qū)域中的至少一者;以及對(duì)于待移除的每一剪切區(qū)域,如果所述剪切區(qū)域內(nèi)的像素的剪切值大于零,那么 遞減所述剪切值。
26. 根據(jù)權(quán)利要求23所述的方法,其進(jìn)一步包含將像素的剪切值與參考值進(jìn)行比較;以及 使具有等于或超過所述參考值的剪切值的像素通過。
27. 根據(jù)權(quán)利要求23所述的方法,其進(jìn)-一步包含使通過所述多個(gè)剪切區(qū)域的聯(lián)合而形成的區(qū)域內(nèi)的像素通過。
28. 根據(jù)權(quán)利要求23所述的方法,其進(jìn)一步包含使通過所述多個(gè)剪切區(qū)域中的至少兩者的相交而形成的區(qū)域內(nèi)的像素通過。
29. —種設(shè)備,其包含用于以循序次序以一次一個(gè)剪切區(qū)域的方式對(duì)多個(gè)剪切區(qū)域執(zhí)行剪切的裝置;以及用于更新每一剪切區(qū)域內(nèi)的像素的剪切值的裝置。
30. 根據(jù)權(quán)利要求29所述的設(shè)備,其進(jìn)一步包含用于將像素的剪切值與參考值進(jìn)行比較的裝置;以及 用于使具有等于或超過所述參考值的剪切值的像素通過的裝置。
31. 根據(jù)權(quán)利要求29所述的設(shè)備,其進(jìn)一步包含用于使通過所述多個(gè)剪切區(qū)域的聯(lián)合而形成的區(qū)域內(nèi)的像素通過的裝置。
32. —種處理器可讀媒體,其用于存儲(chǔ)可操作以執(zhí)行以下動(dòng)作的指令以循序次序以一次一個(gè)剪切區(qū)域的方式對(duì)多個(gè)剪切區(qū)域執(zhí)行剪切;以及 更新每一剪切區(qū)域內(nèi)的像素的剪切值。
33. 根據(jù)權(quán)利要求32所述的處理器可讀媒體,且其進(jìn)一步用于存儲(chǔ)可操作以執(zhí)行以下 動(dòng)作的指令將像素的剪切值與參考值進(jìn)行比較;以及 使具有等于或超過所述參考值的剪切值的像素通過。
全文摘要
通過一次將一個(gè)剪切區(qū)域繪制于圖表面上且更新每一剪切區(qū)域內(nèi)的像素的剪切值而以循序執(zhí)行任何數(shù)目的剪切區(qū)域的剪切。像素的剪切值可指示覆蓋所述像素的剪切區(qū)域的數(shù)目且可針對(duì)覆蓋所述像素的每一剪切區(qū)域而遞增。像素的剪切值也可為位圖,且如果所述像素在剪切區(qū)域內(nèi),那么可將所述剪切區(qū)域的位設(shè)定為一。使所關(guān)注的區(qū)域內(nèi)的像素通過且渲染所述像素,且廢棄在所述區(qū)域外部的像素??赏ㄟ^參考值來界定此區(qū)域,可將所述參考值設(shè)定為(a)針于剪切UNION運(yùn)算,對(duì)于所有剪切區(qū)域的聯(lián)合為一,或(b)針于剪切AND運(yùn)算,對(duì)于多個(gè)(例如,所有)剪切區(qū)域的相交為大于一。
文檔編號(hào)G06T15/30GK101548297SQ200780043082
公開日2009年9月30日 申請(qǐng)日期2007年11月20日 優(yōu)先權(quán)日2006年11月21日
發(fā)明者安格斯·M·多比耶, 焦國方 申請(qǐng)人:高通股份有限公司