【游戏技术群】959392658  【游戏出海群】12067810
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

蛮牛译馆

关注:648

当前位置:游戏蛮牛 技术专区 蛮牛译馆

查看: 726|回复: 21

[外文翻译] Unity_GroundTruth-Oclusion

[复制链接]  [移动端链接]
排名
1
昨日变化

7201

主题

7731

帖子

2万

积分

Rank: 16

UID
1231
好友
185
蛮牛币
11748
威望
30
注册时间
2013-7-29
在线时间
3692 小时
最后登录
2019-1-18

社区QQ达人活力之星原创精华达人突出贡献奖财富之证游戏蛮牛QQ群会员蛮牛妹VIP

发表于 2019-1-10 11:02:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
自从学习了Unity以来一些后期特效的缺失是很让人伤心的事情,之前Unity的反射做的一直不好所以自己造了一个SSR去玩,现在呢又感觉PPS的AO效果不是很好随即又开始了新的轮子制造。。那么本期文章的重点就是如题的GroundTruth-Oclusion(AmbientOcclusion和ReflectionOcclusion)。


首先呢先介绍一些什么是AmbientOcclusion。在早些年影视动画里很多非现实场景拍摄的内容为了达到逼真的视觉效果往往都会通过光线追踪去计算,比如光的反射 折射 散射等等,这些效果归类统称为全局光照,但是全局光照计算量实在是太大所以后来就延伸出一种近似的方法。这种方法呢假设整个场景都被一个单一颜色的光照明(即AmbientLight)然后在每个位置上去计算光线遮挡情况,遮挡的越多呢这一些地方就会越黑最后就形成了一种非常柔和的阴影细节效果。方法即在每个位置的半球空间内随机取方向去做RayTrace,因为只考虑了遮挡性计算所以速度比全局光照快了非常非常多,再以此为基础去混合IBL便可以高效的近似全局光照的效果(没记错妇联1里面纽约大战基本上都是IBL配AO)。


1.png
NVSampler里DXR渲染的AO效果





既然离线渲染都在全局光照上进行了近似trick,那实时渲染肯定也会很快跟进。但是即便AO的计算大大简化了全局光照计算量但是它本身还是属于光线追踪去做Trace,所以实时渲染里面为了更高效的计算AO于是乎衍生出了屏幕空间的AO计算(SSAO)。SSAO的方法与光线追踪的AO最大的不同在于光线追踪是每个位置去追踪光线,而SSAO则是在每个像素上生产多个随机采样点然后在每个采样点上进行见性计算,并把每个随机点的可见性信息加起来即可以得到遮蔽效果。该方法第一次出现是Crytek在2007年发售的游戏孤岛危机里,当时一出便炒热了实时全局光照。这种方法由于采样点是以采样像素为有限制半径的整个球的空间采样所以很多平面上也会产生出遮蔽效果。

2.png

可以看到很多平面也产生了错误的遮蔽效果





此后为了解决这种错误的遮蔽又衍生出了很多魔改版本,大部分都把原来的整个球的积分换成了法线为方向的半球的积分,才使得SSAO系列呈现出接近RTAO的效果。比如Scalable Ambient Obscurance,Volumetric obscurance,Line Sweep Ambient Obscurance,Far Field Ambient Obscurance。其中比较著名的一种衍生方法则是来自Nvidia的HBAO。

3.png

第一个整个球积分便是上面说的CrytekSSAO的基本原理图解。



HBAO的计算原理呢则是在半球上以Slice为基础在Depth上进行遮挡计算(可以想象成侧面的半圆)。然后再以此为基础进行一个旋转操作来达到近似半球上的AO遮挡。

4.png



但是这个方法也有一些奇怪的效果比如半分辨率下会闪烁(寒霜为了规避这个问题采样了TemporalSuperSampling去进行抗闪烁)。而GroundTruth-Oclusion这个遮蔽模型呢是动视在使命召唤12里面做的一个分享,原理上基于Nvidia的HBAO但是增加了更多的物理精确计算。比如在AO的Visibility项计算上新增了一个Cos Weight使得AO的遮蔽更加真实(GTAO和HBAO唯一的大区别),又比如用ALU去拟合类似Crytek在罗马之子上用过的AO MultiBounce效果,而且为了解决IBL遮挡问题在AO积分的同时去算一个BentNormal然后用这个BentNormal作为VisibilityCone去和SpecularCone求交得到ReflectionOcclusion。
对比HBAO基本上GTAO就是增加了一个Cosine Weight的操作,如下图的公式。

5.jpg

6.jpg


PPT里面直接给好了计算公式写成代码即是这个样子,一个以h(我这里节省计算直接把h1和h2整合成half2的h了)和n作为输入的计算函数。n是Slice上投影的法线。h1和h2则是Slice上采样原点往采样点方向向量在半球Slice上的夹角,因为光会被这个夹角挡住所以很容易利用这两个夹角和n去运算既可以计算出改点的遮挡值。然后这个积分过程只是一个Slice为了逼近半球结果需要再转一圈。

7.png
h1和h2可能会在负值,需要矫正回半球空间。

8.png

利用h1和h2和viewDir构建一个坐标系去推算出BentAngle以重建BentNormal

9.png

10.jpg

这里会吧计算的BentNormal送到一个RT里面去,供其他模块使用。





考虑到SSAO的采样数量的性能限制这里直接将Circle和Slice层面的积分加上了jitter。最后吧AO和BentNormal输出。

11.jpg

4 Circle Sampler,8 Slice Sampler的结果。

可以看到效果还是挺接近RayTrace的,因为在前面事先做好了jitter去模拟高频采样所以可以看到画面上有很多的Noise。那么下面就得去进行去噪。鉴于之前SSR去噪是空间混合Temporal的方法所以这里AO也基本是这个思路。不同于SSR的基于BRDF强度空间过滤,AO则使用基于深度的萝莉模糊(滑稽)也就是Corss Bilateral过滤。这里双边的方法主要来自寒霜2在2011年分享的战地3HBAO的Adaption Bilateral Blur方法。


https://www.slideshare.net/DICEStudio/stable-ssao-in-battlefield-3-with-selective-temporal-filtering?ref=https://www.ea.com/frostbite/news/stable-ssao-in-battlefield-3-with-selective-temporal-filtering​www.slideshare.net


12.png

13.jpg

14.png



这里范围使用和战地3里Blur的范围一样的8个像素。可以看到经过Spatial过滤后噪点消失了一大半以上(模糊真奥义。。),但是还有一些瑕疵闪烁的噪点,自古过滤Spatial配Temporal。为了消除这最后的鬼畜最后再加一个Temporal过滤也是不错的。这里直接使用之前SSR里面实现过的Variance Temporal方法。

15.png
16.png


为了避免MotionVector的像素点在下一帧被遮挡住,这里进行一个运算去选择深度最小的,距离摄像机最近的像素点作为采样点。
PPT里为了近似一下更全面的全局光照效果还做了一个MultiBounce的操作。我们可以直接和上面的计算混合起来得到结果。
17.png

18.jpg

无MultiBounce

19.png

20.png

有MultiBounce

至此AmbientOcclusion系列就完成了。还记得之前算的那个BentNormal吗。因为实时渲染的反射部分大部分都采用的Cubemap去做的视差矫正,虽然有些时候视觉上还行但是场景略微复杂一些就会出现漏光,大部分AO扩展都直接吧AO去乘以了反射颜色去压低那种漏光,但是我们自己玩肯定要与时俱进一些。这里使用的方法是ConeCone求交算ReflectionOcclusion。原PPT里面有三种方法(ConeCone,ConeLobe,4DLUT)仔细对比三个方法其实差距不是很大,为了便捷就直接使用了ConeCone的方法。既拿BentNromal当OcclusionCone然后拿ReflectionCone去求交,两个Cone的交点面积越大RO越强,AO越弱。

21.png
这里为了给RO去噪就直接放在双边的YBlur里一起输出给后面的TemporalPass进行去噪操作。
22.png

23.png

24.png

最后去吧AO和RO的结果混合到场景即可。
25.png
26.png
AO RO Off

27.png

AO RO On

最后效果感觉还可以。。起码比PPS和商城里面那些缺胳臂少腿的好(滑稽)。再分享一些图片。

ClassRoo
04.png

Off 03.png

On 02.png

Off 01.png




评分

参与人数 1鲜花 +2 收起 理由
李·双_VL7qq + 2 很给力!

查看全部评分

[发帖际遇]: 清风 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

跟我念“站长妹纸萌萌哒!”我说站长,你说YO!爱你们么么哒~
回复

使用道具 举报

6蛮牛粉丝
1309/1500
排名
2558
昨日变化
12

0

主题

296

帖子

1309

积分

Rank: 6Rank: 6Rank: 6

UID
163777
好友
1
蛮牛币
495
威望
0
注册时间
2017-2-27
在线时间
461 小时
最后登录
2019-1-18
发表于 2019-1-10 11:26:44 | 显示全部楼层
马克一下

回复

使用道具 举报

5熟悉之中
586/1000
排名
5131
昨日变化
23

2

主题

81

帖子

586

积分

Rank: 5Rank: 5

UID
266251
好友
0
蛮牛币
140
威望
0
注册时间
2018-1-25
在线时间
229 小时
最后登录
2019-1-18
发表于 2019-1-10 13:01:23 | 显示全部楼层
好厉害好厉害好厉害好厉害

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1284/1500
排名
2460
昨日变化
1

1

主题

411

帖子

1284

积分

Rank: 6Rank: 6Rank: 6

UID
56245
好友
1
蛮牛币
3396
威望
0
注册时间
2014-11-18
在线时间
300 小时
最后登录
2019-1-19
发表于 2019-1-10 19:07:00 | 显示全部楼层
效果一级棒~太羡慕啦!

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1202/1500
排名
4915
昨日变化
29

0

主题

705

帖子

1202

积分

Rank: 6Rank: 6Rank: 6

UID
254705
好友
1
蛮牛币
1194
威望
0
注册时间
2017-11-16
在线时间
209 小时
最后登录
2019-1-18
发表于 2019-1-11 08:11:44 | 显示全部楼层
66666666666666666666666666666666666

回复 支持 反对

使用道具 举报

5熟悉之中
723/1000
排名
63814
昨日变化
86

0

主题

533

帖子

723

积分

Rank: 5Rank: 5

UID
73320
好友
0
蛮牛币
12
威望
0
注册时间
2015-2-5
在线时间
188 小时
最后登录
2019-1-19
发表于 2019-1-11 08:47:12 | 显示全部楼层
it is very good
[发帖际遇]: r5t 发帖时在路边捡到 1 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复

使用道具 举报

7日久生情
1773/5000
排名
3031
昨日变化
8

2

主题

932

帖子

1773

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
209046
好友
0
蛮牛币
2469
威望
0
注册时间
2017-3-30
在线时间
363 小时
最后登录
2019-1-18
发表于 2019-1-11 09:03:06 | 显示全部楼层
很好

回复

使用道具 举报

4四处流浪
492/500
排名
11502
昨日变化
8

0

主题

310

帖子

492

积分

Rank: 4

UID
289569
好友
0
蛮牛币
202
威望
0
注册时间
2018-7-12
在线时间
98 小时
最后登录
2019-1-18
发表于 2019-1-11 09:06:48 | 显示全部楼层
效果一级棒

回复

使用道具 举报

5熟悉之中
509/1000
排名
6667
昨日变化
60

2

主题

188

帖子

509

积分

Rank: 5Rank: 5

UID
208267
好友
0
蛮牛币
988
威望
0
注册时间
2017-2-24
在线时间
123 小时
最后登录
2019-1-18
发表于 2019-1-11 09:12:39 | 显示全部楼层
有点东西

回复

使用道具 举报

5熟悉之中
645/1000
排名
4479
昨日变化
19

1

主题

200

帖子

645

积分

Rank: 5Rank: 5

UID
245227
好友
0
蛮牛币
832
威望
0
注册时间
2017-9-21
在线时间
122 小时
最后登录
2019-1-18
发表于 2019-1-11 09:31:02 | 显示全部楼层
发这些, 没有基础文章, 有几个看的懂哦

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1153/1500
排名
2310
昨日变化
14

0

主题

249

帖子

1153

积分

Rank: 6Rank: 6Rank: 6

UID
68040
好友
0
蛮牛币
1569
威望
0
注册时间
2015-1-13
在线时间
306 小时
最后登录
2019-1-19
发表于 2019-1-11 10:27:13 | 显示全部楼层
每个字都认识,连起来就看不大懂

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1153/1500
排名
2310
昨日变化
14

0

主题

249

帖子

1153

积分

Rank: 6Rank: 6Rank: 6

UID
68040
好友
0
蛮牛币
1569
威望
0
注册时间
2015-1-13
在线时间
306 小时
最后登录
2019-1-19
发表于 2019-1-11 11:39:50 | 显示全部楼层
on 和off的效果是不是反了

回复 支持 反对

使用道具 举报

7日久生情
1734/5000
排名
17577
昨日变化
7

4

主题

761

帖子

1734

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
63377
好友
0
蛮牛币
13
威望
0
注册时间
2014-12-24
在线时间
935 小时
最后登录
2019-1-20
发表于 2019-1-11 12:04:53 | 显示全部楼层
666666666666666
[发帖际遇]: 商城新_e88uA 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1001/1500
排名
3948
昨日变化
17

5

主题

414

帖子

1001

积分

Rank: 6Rank: 6Rank: 6

UID
269155
好友
2
蛮牛币
1767
威望
0
注册时间
2018-2-22
在线时间
212 小时
最后登录
2019-1-19
发表于 2019-1-12 13:59:49 | 显示全部楼层
谢谢分享
[发帖际遇]: 张瑞国 捡了钱没交公 蛮牛币 降了 3 . 幸运榜 / 衰神榜

回复

使用道具 举报

6蛮牛粉丝
1202/1500
排名
4915
昨日变化
29

0

主题

705

帖子

1202

积分

Rank: 6Rank: 6Rank: 6

UID
254705
好友
1
蛮牛币
1194
威望
0
注册时间
2017-11-16
在线时间
209 小时
最后登录
2019-1-18
发表于 6 天前 | 显示全部楼层
666666666666666666666666

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表