當前位置: 華文問答 > 遊戲

PS4pro所謂棋盤渲染到底是什麽概念?

2016-09-17遊戲

寫在前面:

必須先說明本回答從其視覺原理出發而對技術細節未有描寫,希望大家看了回答能對棋盤格渲染這個概念有個直觀的了解。據知乎使用者

YT IM

大薩比

的回答透露,PS4pro的插值方式也許在棋盤格渲染基礎上保留了更多的3D資訊來更好地最佳化渲染影像,達到更佳的視覺效果。

正文:

並非PS4pro獨有,其他遊戲,例如彩虹六號圍攻在PC上的渲染技術也使用了 棋盤格渲染 Checkerboard Rendering Technique )可以在畫面選項中開啟:

這裏的「頁框交錯過濾」就是這個技術。而TXAA其實就是結合了反鋸齒的頁框交錯過濾,開TXAA 2X已經能達到欺騙肉眼的效果了。

那麽這個 棋盤格渲染 到底是怎麽回事?

這是一種把低分辨率插值成高分辨率的一種畫面拉伸技術。

首先要註意:很多人會混淆插值和拉伸,但嚴格來說它們不是同一個概念,我們先把它們理理清楚。

光柵影像(位圖)拉伸畫面(Upsampling),意味著需要更多的像素去填充增大的空間。

這就是 插值(Interpolation)

影像處理早期,插值的方式就是簡單地用鄰近像素填充拉伸後的畫面(Neighbors Interpolation)

例如電子遊戲早期時代,大部份遊戲輸出到隔行掃描CRT上是只有半場影像的,就像這樣:

放大後

而實際渲染的畫面大小是這樣的:

一幀實際渲染像素其實是320*240,在電視上拉伸成640*480大小的畫面(近似比方,實際MD的輸出是320*224)

如果在逐行掃描電視上,就會拉伸成這樣:

也就是把每個像素在水平糊垂直方向上拉伸了一倍。這是直接拉伸(Nearest Neighbor)的概念。

而進階的插值處理, 需要在像素之間用它們的中間色插補 ,相比拉伸直接復制相鄰像素,這類插值有個計算過程。而計算中間色的方法有很多,這就形成了多種插值方式。

做個模擬,是這樣的

水平拉伸,垂直方向線性插值(Linear Interpolation):

水平糊垂直方向都插值(雙線性插值 Bilinear Interpolation):

(想象一下黑色部份由相鄰像素間生成中間值像素插補)

這個插值其實就是電腦模擬器上才有的柔化過濾的功能,看起來比直接拉伸稍微柔和一些。在當時的遊戲主機上是沒有這個處理的,因為:

一是在CRT電視上觀察,基本沒有區別。

二是插值是為了 更保真地再現三維實體對映成二維位圖前的畫面 ,這在像素時代沒有意義。

HD分割線

------------------------------------------------------------

到了HD時代,在有限的硬件資源和無限的感官要求越來越難以調和的矛盾下,插值的作用就體現出來了,還是拿圖說明(手機使用者請點開看大圖)

原圖(488*540):

為了節省資源,更快地渲染,采用抽線渲染對映成了244*540的畫面:

直接拉伸(Nearest Neighbor),鋸齒真難受:

水平方向線性插值(Linear Interpolation),註意地磚邊緣,鋸齒弱了,但是雕塑還是很不爽:

怎麽辦呢?看來硬件不行原生分辨率上不去靠投機取巧還真沒辦法?

別急,看看這個:

這張圖從垂直方向和水平方向都間隔地抽去像素,實際渲染像素總量也是減少一半。

直接拉伸看看

試試水平拉伸:

垂直部份邊緣出現間隔鋸齒。

試試垂直拉伸:

水平部份邊緣出現間隔鋸齒,但也比抽線方案強多了(這已經接近彩虹六號圍攻的頁框交錯過濾技術)。

然後看看在所有相鄰像素之間取中間色值,插值的效果:

怎麽樣,盡管還是有部份瑕疵,但是視覺效果怎麽說都舒服多了吧;

放大對比:

黑色部份像素由相鄰四個像素的平均色值生成插補

為了方便理解我采用了一個像素占一個棋盤格的方式插補,在實際的圖形渲染技術中還有占1/4棋盤格等其他交替插補方式,視覺原理是一致的。

它的優點已經很清楚了,缺點就是在對比過於強烈的邊緣會出現交錯雜點,所以盡量要與反鋸齒技術配合避免強烈的邊緣。

拿ARMA3來舉例(需要點大圖看細節)

未經反鋸齒處理的情況

原圖:

50%棋盤格抽取:

插值:

在邊緣處鋸齒更明顯了。

經過反鋸齒處理的情況

原圖:

50%棋盤格抽取:

插值:

差別小了,細看瑕疵都在對比強烈的物體高光邊緣處。

這就是所謂的 棋盤格渲染 Checkerboard Rendering Technique )的奧妙。

而且例圖本身分辨率不高,要是在客廳坐沙發上看4k電視,這種插值法是很難看出瑕疵的;

要知道這可比直接渲染要少了一半的像素值啊,而簡單的插值運算本身對資源消耗是可以忽略不計的。

也就是說可能帶來大量的幀數提升!畢竟60幀才是起碼的正義。

------

2016/9/29補充更新題外知識點

在棋盤格插值渲染之外我們常用的除了線性插值(Linear Interpolation)、雙線性插值(Bilinear Interpolation)和三線性插值(Trilinear Interpolation)外還有雙立方插值(Bicubic Interpolation)

它們也通常出現在3D遊戲的貼圖處理領域,稱為貼圖過濾。

這是50%的雙立方插值(Bicubic Interpolation):

很熟悉的朦朧感吧,它的計算會比較慢一些。其實雙立方插值就是目前主流圖片處理軟件縮放圖片的預設處理方式。

------

例圖是 MD 上的 Final Fight CD

以及 Carlo Scarpa 設計的 CANOVA SCULPTURE GALLERY 擴建工程

和ARMA3

所有插值效果圖片都是本人手工用PS算出來的(電腦處理會有更多的最佳化方式,原理大同小異,也從側面說明插值演算法非常省資源)

商用平台轉載需本人同意,論壇轉載保留作者出處即可。

(完)