看板 GameDesign 關於我們 聯絡資訊
※ [本文轉錄自 PlayStation 看板 #1QyVaxKC ] 作者: cjcat2266 (CJ Cat) 看板: PlayStation 標題: Re: [問題] 戰神 畫面問題 時間: Wed May 9 03:23:32 2018 ※ 引述《zongshi (SPIDEY)》之銘言: : 不知道是不是只有我這樣 : 就是這次戰神的畫面,在用右類比轉動人物時 : 很明顯可以看到奎爺的模組跟背景的交界處呈現較低畫質的現象 : 有點像人物周圍被上了一圈馬賽克的感覺 : 各位有這個問題嗎? 之前我推文提到有可能是"時域反鋸齒"的副作用 (temporal anti-antialiasing, TXAA) 當時不確定純猜測,今天玩GoW的時候突然想到 就靠近螢幕去觀察,然後看到原po所謂一圈馬賽克的感覺了 現在幾乎確定是TXAA的副作用 在此分享一下原理:) (為了避免用太多術語,有些地方有簡化或不甚嚴謹) 註: 看完本文之後有可能以後會更加注意到TXAA副作用 進而影響遊戲體驗,不想冒此險者請左轉 嗯?還在繼續讀嗎?該給的警告已經給了唷! 在TXAA開始流行之前,傳統反鋸齒做法是"超取樣" 大致概念是使用比實際像素數目還要高的取樣數目 每個取樣點當作是個像素渲染一次 每個像素對應超過一個取樣點 像素最終顏色是多個取樣點渲染結果的的加權平均值 基本上可想成是運算較高解析度的畫面 然後把一些像素融合後縮小成實際解析度 TXAA則是每個frame稍微挪一下攝影機 讓攝影機有小於單一像素大小的"微震動" 然後跟上一個frame結合渲染,得到到新frame 如果每個像素只是單純跟上個frame的同位置像素做加權平均 那效果就只會是單純的視覺暫留模糊,看起來會更糟! 所以要推測每個像素在上個frame時在哪裡 然後用上個frame該位置的像素來做加權平均 這樣相當於是用多個frame的時間達到超取樣的效果 在算圖的時候,不是只算玩家看到的最終顏色結果 中間的運算結果還含像素在空間中的深度、材質參數、速度等資料 速度資料可以用來反推算一個像素在上個frame的位置 就是這個位置的像素顏色被拿來跟當前像素做加權平均 但如果用速度反推算上個frame的像素位置,找不到資料怎麼辦? 很多情形都會有這種資料不足的狀況 例如位置反推算出來之後發現其實在螢幕外面,根本沒有被運算 或是上個frame的像素應該出現的位置被其他物件擋住了 後者就是原po提到的問題 畫面旋轉的時,角色後繞出來的背景部分在上個frame是被遮住的 用像素速度反推算會找不到需要的資料 所以一般的做法就是對沒有過去資料的像素做模糊處理帶過 這個副作用,有突然出現或消失的物件 或有迅速移動跨過大量像素的物件時,尤其明顯 需要跨過數個frame,經過多次加權平均之後才會把舊資料的影響"清掉" 這樣就會產生殘影(俗稱ghosting) 看看這個Unreal Engine 4的Kite demo https://youtu.be/nwuFd5uK_xQ
在1:22左右的地方可以看到 快速大面積移動的鞋子,在有高頻細節加上風吹變形的草皮背景上留下殘影 TXAA另外一個副作用 常常出現在有高頻率細節加上特殊扭動效果的物件上 例如被風吹動的頭髮或者草 扭動效果是用動態方式算出變型的 如果沒有正確地同時算出速度 那就無法準確反推上個frame的像素位置 有時候使用的變型函數速度計算太複雜而吃效能 又有時候甚至不可能算出正確速度 因為使用的變型函式無法微分而算出速度 這樣就只能將就用估算的方式計算速度 結果還是比完全沒有速度資料好 但是多少會有詭異的殘影 還有一個TXAA常見的副作用 會出現在沒有整合到核心渲染流程的元素上 例如某些半透明物件或者某些特效 繪製這些元素的時候用的是經過微震動後的攝影機位置 但是沒有經過時域加權平均的流程 所以能看到這些元素沒有經過反鋸齒處理、且又有微震動 例如GoW中Niflheim一開始橋上的石頭大門上的藍色發光符文 就近觀察就可以注意到小於一個像素大小的微振動 既然TXAA有這些副作用,那為什麼還這麼熱門呢? 兩個字: 便宜 (運算資源消耗方面) 跟增加取樣數量的反鋸齒方法比起來 每個frame需要運算的像素數量維持不變 只是增加了用速度反推上個frame像素位置和讀取結果的額外運算 就像為什麼幾乎所有遊戲都要用LOD (level of detail) 過遠的物件用比較簡單的模型替換 替換過程沒有處理好,就會讓玩家看到視覺不連續性(俗稱pop) 原因也是兩個字: 便宜 或是像仁王,較遠敵人的動作幀率會減半 原因還是這兩個字: 便宜 開發遊戲有很大心力是花在從眾多效能優化手段中取捨 在副作用可接受的範圍內,想辦法讓玩家體驗最佳化 能夠好好享受遊戲是最重要的 我在玩GoW會被的優化副作用干擾到嗎?不會 偶然間注意到TXAA副作用時,頂多想說 "啊,是TXAA" 然後照樣繼續玩,我覺得GoW超讚的啊! 以上 -- Web http://AllenChou.net Twitter http://twitter.com/TheAllenChou LinkedIn http://linkedin.com/in/MingLunChou -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 160.33.43.15 ※ 文章網址: https://www.ptt.cc/bbs/PlayStation/M.1525807419.A.50C.html
itsawar99: 先推一個免得人家以為我文組的看不懂05/09 03:48
※ 編輯: cjcat2266 (160.33.43.15), 05/09/2018 05:16:34 ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: cjcat2266 (160.33.43.15), 05/09/2018 05:23:13
rhox: 嗯嗯,跟我想得差不多 05/09 09:00
※ 編輯: cjcat2266 (23.242.26.50), 05/09/2018 11:21:59
wangm4a1: 推 05/09 23:10
tmpss90473: 推XD 不過好像蠻多家補Ghosting效果都用了很多貼貼補 05/10 13:26
tmpss90473: 補的作法 05/10 13:27
kuma660224: 就是有Z有B, 但Z大於B的意思 05/10 16:28
kuma660224: 忍受缺陷但能實用,總比關掉效果要好 05/10 16:29
kuma660224: 優化通常不是要寫出最好的效果, 05/10 16:30
kuma660224: 而是87%像的效果,但只花很少消耗。 05/10 16:30
lemmii: 推好文! 05/11 20:36
ptt0211: 推 05/12 03:24
azukikao: 剛好在跟同事討論這個!推! 05/12 16:56
a313102002: 推 05/13 10:45
v86861062: :D 05/21 14:36