王東曉
(同濟大學電子與信息工程學院,上海 201804)
一種利用非多邊形邊緣像素的反走樣改進方法
王東曉
(同濟大學電子與信息工程學院,上海 201804)
文章指出了一般反走樣算法中存在的實質性問題,結合了對于視覺系統(tǒng)的特性分析,總結出對于反走樣任務的本質要求,并且提出了一個可以解決此問題的改進方法。該方法除了顯著的改善效果,還有計算簡單、可適用于任意的采樣方式的優(yōu)點。
反走樣;邊緣;多邊形;顏色值;視覺系統(tǒng)
反走樣是計算機圖形學和可視化等領域中一個基礎而重要的課題。反走樣使用的采樣方法主要是超級采樣(supersampling)和區(qū)域采樣(area sampling),其中,前者使用了離散的采樣點,后者則對整個連續(xù)區(qū)域進行采樣。在超級采樣中,除了在一個像素中選取間隔均等的子像素,人們還設計了不同的采樣模板。通過對采樣模板的不同位置賦予不同權重,例如對接近像素區(qū)域中心的位置賦予更大的權重,可以對效果有一定改善,這樣的采樣模板也稱為加權掩膜或過濾器。
在反走樣的硬件實現(xiàn)方法中,有 SSAA(supersampling anti-aliasing,超級采樣抗鋸齒)、MSAA(multisampling anti-aliasing,多級采樣抗鋸齒)、CSAA(coverage sampling anti-aliasing,覆蓋采樣抗鋸齒)、CFAA(custom filter anti-aliasing,可編程過濾抗鋸齒)等。其中,超級采樣抗鋸齒是其他硬件反走樣方法的原型,它采用超級采樣,對所有需要繪制的像素進行一樣的操作。而多級采樣抗鋸齒則對位于多邊形邊緣的像素進行了額外處理,它是GPU實時反走樣的主要方法。
硬件工藝水平的提高使得GPU的運算性能日益強大,依賴于此,使用更大的采樣倍數(shù)變?yōu)榭赡堋5砗褪聦嵍家炎C明,采樣倍數(shù)的提升對反走樣效果的提高很容易達到極限。因此,更好的反走樣效果必須訴諸優(yōu)秀的算法,硬件計算性能的提高只能起到有限的輔助作用。
此外,還出現(xiàn)了一些其他的反走樣算法,它們使用了計算復雜的過濾器,或者對采樣的結果進行額外的計算,來確定位于多邊形邊緣的像素的顏色值。本文提出的方法也是基于采樣的結果進行計算,然而,本文的提出的方法不僅會重新確定待繪制的像素的顏色值,還會重新確定待繪制像素個數(shù)及空間位置。
在一般的反走樣方法,特別是應用于MSAA的方法中,在經過采樣過程后,根據(jù)采樣結果,將所有需要繪制的像素區(qū)分為位于多邊形邊緣的像素和位于多邊形內部的像素兩類。進而,對位于多邊形邊緣的像素,根據(jù)其自身和鄰域像素上的采樣結果,經過一系列的計算確定出其顏色值并繪制。許多算法正是致力于使得這些位于多邊形邊緣的像素能表現(xiàn)出比采樣模板的子像素個數(shù)更多的顏色。
這一過程中雖然使得位于多邊形邊緣的像素之間的顏色過渡變得平緩,但這對于實際的視覺效果來說,并不意味著就一定起到相應的改善作用。一方面,視覺感受的鋸齒所產生的原因,并不全在于這些像素之間的顏色對比。另一方面,即便這些算法允許使用比子像素個數(shù)更多的顏色,受限于多邊形邊緣的像素數(shù)量,實際上在屏幕上微小的局部范圍內能表現(xiàn)出來的顏色數(shù)量并沒有增加,因此對反走樣并沒有很大的幫助。
這一問題不僅出現(xiàn)在使用了子像素個數(shù)有限的超級采樣中,同意也存在于能準確地計算出每個像素和多邊形的重疊面積的區(qū)域采樣中。 圖1是用區(qū)域采樣繪制的一條單通道直線,圖 2展示了它放大后的局部。由于采用了區(qū)域采樣,繪制這條直線所能使用的顏色值的數(shù)量已經達到了極限,然而當它以原始大小在常見分辨率的光柵顯示器上顯示時依然會表現(xiàn)出明顯的鋸齒狀。
圖1 用區(qū)域采樣繪制的直線
圖2 圖1放大后的局部
為了探討一般規(guī)律,接下來繼續(xù)對這個例子進行分析。本例中背景為白色,其歸一化的單通道顏色值(以下簡稱顏色值)為 1,待描繪的理想直線顏色為黑色,即顏色值為 0。由于本例中并未采用特殊的過濾器,混色權重(決定像素顏色值的過程中待繪制理想多邊形的顏色值所占的比例)即每個像素中理想多邊形覆蓋像素的區(qū)域面積占像素面積的比例。
如同人體許多感受系統(tǒng)一樣,視覺系統(tǒng)對顏色(包括色度和亮度)的敏感程度,和整個視野中感受到的顏色密切相關。一方面,當某顏色接近于視野中整體顏色時,其對視覺系統(tǒng)的刺激較弱,而當某顏色遠離視野中整體顏色時,其對視覺系統(tǒng)的刺激較強,會形成強烈的感受。另一方面,當某顏色接近于視野中整體顏色時,人的視覺系統(tǒng)對其分辨能力較高,而當其遠離視野中整體顏色時,人的視覺系統(tǒng)對其分辨能力較低。例如,在顏色值為 1的白色背景下,顏色值為0.25的深灰色會比顏色值為0.75的淺灰色給視覺系統(tǒng)帶來更大的刺激,形成更強烈的感受。而且,在同樣的白色背景下,視覺系統(tǒng)更容易區(qū)分顏色值為0.75和0.85的兩種淺灰色,而不容易區(qū)分顏色值為0.25和0.15的兩種深灰色。
對于反走樣任務,以上視覺特性會帶來的影響是,混色權重較?。搭伾递^接近背景)的像素與背景看起來區(qū)分度很大,因而很難形成其顏色值逐漸融入到背景中這一筆者希望的視覺效果。事實上,這些像素更容易和顏色權重較大的像素一起在視覺上組合形成某種固定模式的圖案,如圖 2中所能觀察到的那樣。
作為圖形學繪制多邊形的一個基本做法,筆者會將待繪制多邊形的顏色通過權重的方式分配給多邊形經過的各個像素。在多數(shù)反走樣方法中也遵循這一規(guī)則。這樣可以保證繪制出來的多邊形邊緣整體上和理想的待繪制多邊形看起來顏色相近。如圖 2中所能看到的那樣,待繪制的理想直線經過一個像素中部的時候,直線上此處的混色權重完全分配給一個像素,而經過兩個或多個像素邊緣的時候,則是按比例分配給兩個或多個像素。
然而,這一規(guī)則在反走樣任務中實際上是不應該被嚴格遵守的。因為它既不能保證邊緣各處細節(jié)看起來顏色均勻,而且由于在各處繪制了不同數(shù)量的像素,會導致視覺上形成差異較大的不同圖案,這就極其容易放大走樣的視覺效果。尤其是當多邊形的邊緣經過一個像素中部時,必然會形成強烈的走樣效果。一方面,由于空間上其他邊緣區(qū)域使用了多個像素,而此處卻只使用了一個像素,形狀上差異巨大;另一方面,只使用了一個像素意味著此處的顏色值遠遠比其他邊緣區(qū)域更偏離背景顏色值,因此在視覺上更加突出。反走樣的根本任務也可以說就是要消除這種邊緣上不同區(qū)域間的強烈對比。
2.1要求及改進方案
上一節(jié)分別從顏色值和空間兩個維度上對走樣的成因進行了探討。接下來也將從這兩方面提出反走樣的改進方案。
首先,混色權重不應該均勻分配。混色權重低而接近背景顏色值的像素,由于其可辨識度實際上很高,這樣的相鄰像素容易在視覺上共同形成明顯的圖案。為了使多邊形的邊緣看起來逐漸融入背景,應該使用更小的混色權重。由于視覺系統(tǒng)對顏色值的區(qū)分能力越靠近背景的顏色值越強,本文建議在反走樣中使用不均勻的混色權重,即接近 0的混色權重的可用值應多于接近于 1的可用值,這樣有利于在視覺上形成平緩的過渡。事實上由于反走樣任務的需要,在多邊形邊緣上使用接近 0的混色權重值的像素數(shù)量也應該多于使用接近1的混色權重值的像素數(shù)量。
其次,通過采樣過程直接確定的混色權重往往會在邊緣上周期性地繪制出單個顏色值遠離背景的像素,這會和邊緣上其他區(qū)域形成極其強烈的對比。對此類像素的鄰域像素進行重新繪制對反走樣效果有極大的幫助。例如,對其 4鄰域中混色權重為 0的像素賦予較小的混色權重。同時,為了避免此處區(qū)域看起來過于顯眼,應降低原單個像素的混色權重。
這樣的做法,從空間上看使得多邊形的邊緣上大部分區(qū)域變粗了。這樣做是符合常識的,例如寬度分別是3和2與寬度分別是2和1的兩組線條之間,前者兩條線間的差異看起來顯然沒有后者大,因此邊緣一定程度的加粗對反走樣是有利的。事實上,使用更多的像素和使用更多的顏色值一樣可以在視覺上造成更加豐富的變化和自然的過渡。在發(fā)現(xiàn)從顏色值上進行反走樣已經陷入瓶頸的時候,從空間的角度加以考慮和利用便是個自然合理的想法。
2.2方法及步驟
基于以上考慮,本文提出了如下的改進方法。
(1)對原來的根據(jù)采樣結果確定的混色權重 originalWeight,用如下的函數(shù)重新確定:
其中originalWeight 不為0,即當采樣結果中的子像素數(shù)為 0時,不對該像素用此式確定新的顏色值。因此對于范圍為(0,1]的混色權重,映射之后范圍變?yōu)?0.2,0.8],且0.5仍為0.5。
(2)對于每個采樣結果為0個子像素的像素(m,n),若其4鄰域中的像素存在混色權重大于0.5的像素,則取其中最大的一個混色權重,記為neighbourMaximumWeight(m,n)。將像素 (m,n)上的混色權重決定為
即
式中的 halfOfSubpixels表示該算法中采樣模板的子像素數(shù)的一半,但它對結果并未產生影響,因此,這個方法不僅能適用于任何子像素數(shù)的超采樣,也能適用于區(qū)域采樣。顯然對任意一個在[0.5,0.8]之間的neighbourMaximumWeight(m,n),能確定一個在[0,0.2]之間的weight(m,n)。
(3)同一般決定顏色值的過程,新的顏色值由下面的計算式決定:
polygonColor和backgroundColor分別是待繪制多邊形的理想顏色值和背景的顏色值。
2.3實驗結果
對于圖1和圖2的情況,使用了新方法進行改進后的效果如圖3和圖4所示。從圖1和圖3的對比可以看到效果的提升。圖 4中可以看到,通過繪制了更多的像素,直線上各處顯得粗細均勻。原來狹窄的深色區(qū)域現(xiàn)已被淺色像素包圍,顏色也有所變淺,因而不再如以前突出。而原來淺色像素共同形成的圖案由于向周圍延展,且顏色值上過渡細膩,而彼此連成一片。
圖3 對圖1中的直線用本方法重新繪制
圖4 圖3放大后的局部
圖 5是提供了另一組對比示例,反映出了更多斜率時的情況。其中使用的采樣方式是子像素個數(shù)為4、采用旋轉柵格的超級采樣??梢钥闯?,對不同斜率的圖形,雖然效果不盡相同,但適用本方法后均有一定程度的改善。
圖5 使用本方法前后的4倍反走樣效果對比
圖6顯示了使用本方法前后的局部細節(jié)對比。其中(a)和 (b)分別為圖5中使用本方法前后的局部效果。(c)和(d)來自另一組對比,其中使用的采樣方式是 9個子像素的順序柵格超級采樣。
圖6 使用本方法前后的局部效果對比
實驗證明,本方法能夠運用在多數(shù)采樣方法中,對反走樣的效果有明顯改善。針對不同的應用目的和場景,可以通過調整式(2)和式(3)中的參數(shù),來調整需要在反走樣中繪制的像素數(shù)量。例如,如果場景中沒有尺寸接近像素大小的物體和圖形,則可以在第二步中將查找的閾值降低到0.5以下。也可以在式(1)中調整參數(shù)來控制所使用的混色權重在不同范圍上的密度。在需要對顏色值進行更加精細的控制時,可使用二次以上的函數(shù)替代式(1)、(2)、(3)。
本方法計算簡單,效果明顯,雖然利用了采樣的結果,但不需要依賴于具體的采樣方法,對于各種倍數(shù)的超級采樣和區(qū)域采樣都適用。它同樣也適用于使用了特定采樣模板或濾波器的反走樣算法,以及根據(jù)采樣結果計算出更復雜顏色值的算法。在選擇繪制像素的思路上它和把子像素延伸到周圍像素的采樣模板存在一定相似性。在硬件反走樣技術上,本方法雖然對采樣結果個數(shù)為 0的像素也會進行混色的計算和繪制,然而由于這樣的像素實際都處在多邊形邊緣的像素的鄰域,因此不僅適用于SSAA,也可以用于MSAA。
[1] Hearn D, Baker M P, Carithers W R. .計算機圖形學(第四版)[M].北京:電子工業(yè)出版社,2014.
[2] Crow F C.A comparison of antialiasing techniques[J]. IEEE Computer Graphics and Applications,1981,(1): 40-48.
[3] Iourcha K, Yang J C,Pomianowski A.A directionally adaptive edge anti-aliasing filter[C]//Proceedings of the Conference on High Performance Graphics 2009.ACM, 2009:127-133.
[4] Beaudoin P,Poulin P.Compressed multisampling for efficient hardware edge antialiasing[C]//Proceedings of Graphics Interface 2004. Canadian Human-Computer Communications Society,2004:169-176.
[5] Pitteway M L V, Watkinson D J. Bresenham's algorithm with grey scale[J].Communications of the ACM,1980, 23 (11):625-626.
[6] Angel E,Shreiner D.交互式計算機圖形學:基于OpenGL著色器的自頂向下方法(第 6版)[M].北京:電子工業(yè)出版社,2012.
An improvement solution for anti-aliasing with drawing non-edge pixels
A substantial problem in general anti-aliasing algorithms is pointed out in this paper. With the analysis of human visual system features, it concludes the essential requirements of anti-aliasing task and puts forward a feasible improvement solution. Beside its obvious effect, the solution needs only simple calculation, and could be combined with any type of sampling methods and templates.
Anti-aliasing; edge; polygon; color value; human visual system
TP391.41
A
1008-1151(2015)09-0033-03
2015-08-12
王東曉(1991-),男,同濟大學電子與信息工程學院碩士研究生。