作者cjcat2266 (CJ Cat)
看板GameDesign
标题Fw: [问题] 战神 画面问题
时间Wed May 9 05:23:13 2018
※ [本文转录自 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://webptt.com/cn.aspx?n=bbs/PlayStation/M.1525807419.A.50C.html
1F:推 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
2F:推 rhox: 嗯嗯,跟我想得差不多 05/09 09:00
※ 编辑: cjcat2266 (23.242.26.50), 05/09/2018 11:21:59
3F:推 wangm4a1: 推 05/09 23:10
4F:推 tmpss90473: 推XD 不过好像蛮多家补Ghosting效果都用了很多贴贴补 05/10 13:26
5F:→ tmpss90473: 补的作法 05/10 13:27
6F:→ kuma660224: 就是有Z有B, 但Z大於B的意思 05/10 16:28
7F:→ kuma660224: 忍受缺陷但能实用,总比关掉效果要好 05/10 16:29
8F:→ kuma660224: 优化通常不是要写出最好的效果, 05/10 16:30
9F:→ kuma660224: 而是87%像的效果,但只花很少消耗。 05/10 16:30
10F:推 lemmii: 推好文! 05/11 20:36
11F:推 ptt0211: 推 05/12 03:24
12F:推 azukikao: 刚好在跟同事讨论这个!推! 05/12 16:56
13F:推 a313102002: 推 05/13 10:45
14F:推 v86861062: :D 05/21 14:36