解耦的著色流水線的制作方法
【技術(shù)領(lǐng)域】
[0001] 本文總體上涉及圖形處理。
【背景技術(shù)】
[0002] 使用圖形處理器來產(chǎn)生用于顯示在計算機顯示器上的圖像。圖形流水線包括多個 階段來產(chǎn)生最后的描繪。通過采樣不同的函數(shù)和著色,使用光柵化,來呈現(xiàn)圖像??梢娦院?數(shù)是H角形內(nèi)的采樣點。著色確定在某一采樣點的顏色是什么。因此,在下文中,使用術(shù)語 "可見性樣本"或"著色樣本"。
[0003] 在超級采樣抗銀齒(SSAA)中,可見性樣本與著色樣本相同。在多重采樣抗銀齒 (MSAA)中,每個像素有單一著色樣本,每個像素有許多可見性樣本。圖形處理器一般支持該 兩種抗銀齒解決方案。
【附圖說明】
[0004] 參考W下附圖來描述一些實施例:
[0005] 圖1是本發(fā)明的一個實施例的流程圖;
[0006] 圖2是另一個實施例的流程圖;
[0007] 圖3是相對于X和Y縮放因子的網(wǎng)格單元大小的圖形;
[000引圖4是根據(jù)一實施例的圖形流水線的描繪;
[000引圖5是一個實施例的系統(tǒng)描繪;W及
[0010] 圖6是如圖4所示的實施例的前視圖。
【具體實施方式】
[0011] 在某些實施例中,給定峽或圖片可W具有不同的著色速率。在一個實施例中,在 峽或圖片的一些區(qū)域,著色速率可W小于每個像素一次,在其他位置,它可W是每個像素一 次。其中可W降低著色速率的示例包括有運動和照相機散焦的區(qū)域,周界模糊的區(qū)域,W及 一般而言,W任何方式降低可見性的任何情況。著色速率可W在諸如著色方塊(quad)之類 的區(qū)域,通過改變區(qū)域的大小來改變。屏幕-方塊是作為光柵器輸出的一組2x2屏幕像素。 著色像素是一組AxB屏幕像素。著色方塊是一組2x2著色像素。
[0012] 利用解禪的像素著色,W各種不同的方式中的一種來將MSAA的概念泛化 (generalized)。它可W被泛化的一種方式將是按低于一個像素一次的速率計算著色,例 女口,每1x2像素、2x1像素、2x2像素、4x2像素、2x4像素,或4x4像素計算一次,W上僅為舉 例。通過每AxB像素給出一個著色樣本,獲得采用兩個浮點數(shù)字A和B的完全連續(xù)分布也 是可行的。另一種變體是將著色拆分為兩個部分,W便一個部分每個像素地或每個樣本地 執(zhí)行,另一部分W較慢的速率執(zhí)行,然后,組合結(jié)果。
[0013] 在現(xiàn)代的實時圖形流水線中,W每個像素每個幾何圖元一次的速率來執(zhí)行像素/ 段著色。然而,有許多用于降低像素著色速率的機會。該樣的降低會導(dǎo)致功率消耗節(jié)省和 其他性能優(yōu)點。例如,在存在運動模糊和照相機散焦的情況下,有機會在峽的不同的部分, 具有不同的著色速率。當(dāng)一個場景帶有運動和照相機散焦地呈現(xiàn)時,屏幕的一些區(qū)域可能 會顯得模糊,所W在那些區(qū)域,像素著色速率會低一些,因為它們主要顯示低頻率內(nèi)容。在 周界模糊的情況下,可W在用戶難W感知到高頻細節(jié)的屏幕的周邊降低著色速率,至少在 假設(shè)用戶正在將注意力集中到屏幕的中也時是如此。此外,在較高密度顯示器中,可W降低 著色速率,而不會有細節(jié)的重大損失。
[0014]盡管可W靈活地降低著色速率,但是在某些實施例中,也W滿速率采樣可見性,W保留諸如邊緣之類的銳利特征。在某些實施例中,也可W降低可見性采樣速率,該具有在對 象邊緣處產(chǎn)生銀齒化(aliasing)不良影響的可能性。
[0015]參考圖1,序列10可軟件、固件和/或硬件來實現(xiàn)。在軟件和固件實施例中, 它可W通過計算機執(zhí)行的指令來實現(xiàn),該指令被存儲在例如磁存儲、光學(xué)存儲,或半導(dǎo)體存 儲器之類的一個或多個非瞬態(tài)計算機可讀介質(zhì)上。
[0016] 首先,光柵器(rasterizer)21針對給定大小的像素區(qū)(在此示例中,2x2像素區(qū) 24,叫做方塊),測試圖元。(也可W使用其他大小的像素區(qū))。光柵器W空間填充順序,諸 如Modon順序,遍歷方塊。在多重采樣的情況下,如果圖元覆蓋方塊中像素或樣本中的任 何一個,如示意圖中標(biāo)記出的被覆蓋的方塊所示的那樣,則光柵器將方塊朝下游發(fā)送給瓦 片(tile)緩沖器16。在某些實施例中,可W在14執(zhí)行早期z(earlyZ)剔除。
[0017]對于給定圖元,瓦片緩沖器可W將屏幕分割為兩個2化2N像素大小的瓦片(其稱 為著色方塊),并可W存儲落在單一瓦片內(nèi)的所有光柵化的方塊,如在框18中所指出的。可 W對于每兩個2化2N瓦片,可評估屏幕對準(zhǔn)的著色網(wǎng)格(框22)。
[0018]在某些實施例中,網(wǎng)格單元或著色方塊的大小可W僅限于2的幕個像素的倍數(shù)。 例如,單元大小可W是lxl、lx2、2xl、4xl、4x2、4x4,直到^JxN,包括lxN和^JxlW及所有中間 配置。
[0019]通過控制著色網(wǎng)格單元的大小,可W在框20控制著色速率。目P,單元大小越大,瓦 片的著色速率越低。
[0020] 然后,將存儲在瓦片緩沖器中的方塊分組成著色方塊,著色方塊由相鄰的網(wǎng)格單 元的組所組成,諸如,在一個實施例中,2x2的相鄰的網(wǎng)格單元的組。然后,對著色方塊進行 著色,將來自著色器的輸出寫回到顏色緩沖器中的所有被覆蓋的像素。
[0021] 逐個2化2N像素瓦片地估算網(wǎng)格大?。ㄆ渲?,N是被調(diào)整大小的方塊內(nèi)的最大的 解禪的像素的大小,且對于每一個幾何圖元單獨地估算)。"最大的解禪的像素"是指當(dāng)著 色方塊的大小改變時像素的大小。在一個實施例中,四個像素構(gòu)成一個方塊,每一個像素都 構(gòu)成方塊大小的四分之一。
[0022] 可W通過叫做"縮放因子"的屬性來控制網(wǎng)格大小,該縮放因子包括一對帶符號的 值一沿著X軸的縮放因子Sy,W及沿著Y軸的縮放因子Sy??筛鞣N方式來指定縮放 因子。例如,它可W從頂點屬性內(nèi)插出,或從屏幕位置計算出。
[0023]使用帶符號的縮放因子是有用的,例如,在照相機散焦的情況下,如果圖元穿過聚 焦面。在此情況下,圖元的頂點會在焦點之外,而圖元的內(nèi)部是焦點對準(zhǔn)的。然后,可W將 負的縮放因子指定為在焦平面的前面的頂點的屬性,將正的縮放因子指定為焦平面后面的 頂點的屬性,反之亦然。對于圖元的焦點對準(zhǔn)的區(qū)域,縮放因子內(nèi)插到零,因此,在焦點對準(zhǔn) 區(qū)域,保持局著色速率。
[0024]縮放因子可W在瓦片內(nèi)變化,而對于每一個瓦片,仍計算出單一量化的網(wǎng)格單元 大小。該可能會在網(wǎng)格大小中產(chǎn)生從瓦片到瓦片的不連續(xù)性,并會導(dǎo)致可見的網(wǎng)格過渡。 [002引圖2是根據(jù)一實施例的序列的流程圖。序列可WW軟件、固件,和/或硬件來實現(xiàn)。 在軟件和固件實施例中,序列可W通過存儲在諸如磁性、光、或半導(dǎo)體存儲器之類的一個或 多個非瞬態(tài)計算機可讀介質(zhì)中的計算機執(zhí)行指令來實現(xiàn)。
[0026] 為了從縮放因子計算出網(wǎng)格大小,首先在2化2N瓦片的四個角部內(nèi)插縮放因子 (框50)。如果跨網(wǎng)格單元的四個角部有符號改變(框52和54),則該指示出瓦片內(nèi)的最小 值。在此情況下,選中最小可能的網(wǎng)格單元間隔,通??蒞是一個像素。然后,將Sy和Sy猜 位(clamp)到下猜位極限(框56)。如果沒有符號改變,則從四個角部中選擇縮放因子的最 小絕對值(框58)。對于某些實現(xiàn),可W使用不同于最小值的操作,例如,絕對值的平均值。 然后,對方塊大小進行仿射(a巧ne)映射(框60),接下來是,猜位和量化(框62),W確定 網(wǎng)格單元大小。
[0027]X和Y縮