關於KZSF和1080P
Q: KZSF到底是透過1080P還是其它方式執行的?
A: KZSF的單人劇情戰役以及其多人線上連線模式皆為1080P。
Q: KZSF是否為「原生(Native)」的1080P?
A: KZSF的單人模式和多人模式皆以每秒60張去輸出" 無經縮放 (unscaled) "的1080P圖像。而所謂的" 原生 "常用於表示圖像未經過任何的縮放,它的定義即為呈現出的圖像(玩家所看到的圖像)並非原本是個更大或更小(含有的像素更多或更少)的圖像。
唯一一點就是,我們在線上模式中使用了一個稱作" 暫性重新投影 (temporal reprojection) "的技術。這項技術會從多個解析度較低的畫格結合許多像素還有它們的" 動態向量 (motion vector) "來去重組成一個全1080P的畫面。也就是說如果原生的定義是畫面從頭到尾;從繪製開始到最終呈現的全部過程都是1080P的話,那麼這項技術所構成的畫面就會被定義成非原生的1080P。
世上有許多遊戲時常會在它們渲染過程中的不同地方採用不同的解析度。大多數的遊戲的粒子效果和環境遮蔽效果都是用較低的解析度進行渲染的,甚至還有一些遊戲將較低的解析度去套用在遊戲內所有的照明裡頭。但即使如此是這樣它們仍然會被稱作是" 原生 (Native) "的1080P。只不過我們在KZSF中使用的技術更深入,它重組了先前畫格中一半的像素。
我們瞭解到社群對於這個1080P議題的探討程度有多深,也因此先前所使用的慣有的專門性術語對於此議題來說就可能會顯得不大明確。為此,我們往後在咬文嚼字時將會試著更精確地去下達我們的用字遣詞。
Q: 那麼這個暫時投影技術是如何作用的? 它與既有的像素拓展方式又有什麼不同?
A: 放大圖像;拓展圖像中的像素是種空間添改過濾器。當您將圖像的像素從一個解析度延展到更大的解析度時,圖像將會在方維中的水平向和垂直向添增像素。那些新添加的像素將會填補進當下的像素在拉開(延展)後所產生的空隙,藉此使畫面變大,但也使它稍微變得更模糊。
而KZSF在多人連線中所使用的" 暫性重新投影 "則是對像素的位置進行暫時的追蹤並加以預測它們在未來會出現的位置。接著這些" 過去的像素 (history pixels) "將會與在新的畫格中以較高的解析度去另新繪製的新像素進行結合去構成下一張畫格。
來自舊畫格的回收像素 + 另新繪製的新像素 → 在下一張畫格呈現。
帶著一些細節來說明,我們在這項技術將會需要:
持續去追蹤三張處於解析度960x1080的"過去像素"
將每一點像素所含的色彩和向量保存起來。即:像素在畫面中的方位
同時保存一張全1080P的" 先前畫格 (previous frame) "去協助改善反鋸齒效果
接著我們將會在畫格中重組這些零散的像素:
我們將根據畫素的向量去將每一點像素追溯回先前的畫格
藉由觀察像素先前是如何移動的,我們在這步宣判它們的" 可預測性 (preditct-ability) "
絕大多數的像素的可預測性都會是非常高的,故我們接著把它們作為零散像素進行重組
如果部分像素的可預測性並沒有那麼高,那麼我們將會從當下畫格中挑選它的最佳近似值
有時候那些預測並不會成功且局部地使畫素變得模糊,或者促使畫面中出現一些垂直的細線。話說如此,絕大多數的時候那些預測其實都進行得非常成功,產生與一般的1080P圖像相等的結果。這種時候我們接著便會進而使用我們的" 先前畫格 (previous frame) "還有它們的向量去提高" 次像素反鋸齒效果 (sub-pixel anti-aliasing) "來進一步去改善圖像品質。
與其它渲染方式相比,這種" 暫性重新投影 "能夠帶來主觀地相似結果,並使部份的渲染過程更為迅速。這也能夠紓緩控制器的延遲去使KZSF的多人遊戲體驗更加美好。
*筆者註: 控制延遲 / Controller lag,玩家下達指令和在畫面上看到操作結果的反應延遲。在電腦平台上又稱滑鼠延遲。
我們將會在接下來於三月20號舉辦的「GDC, Games Developers Conference (遊戲開發者大會)」上在舉辦地點的北廳132號室內進行的演講中討論到KZSF所使用到的各種渲染技術 (包括這個在內)。
屆時我們將會更加地深入箇中細節,不過假若您現在有任何問題的話,請逕行在下方的評論欄位發問以利我們在到時的演講中去做囊括說明。演講所使用的投影片可於大會結束後在 GuerrillaGames 的刊物頁面找到。
Translate/ 翻譯