×

Unreal入门知识SSAO的升级HBAO+

发布时间:2021-03-25 10:26:09

Hello,大家好,今天是AO续作Unreal入门知识SSAO的升级HBAO+,我是木偶心没。

上一篇文章 Unreal入门AO知识科普 说到SSAO存在一些阴影清晰度和画质问题,所以在2008年的SIGGRAPH技术会议上,NVIDIA推出了升级的SSAO,基于水平的环境光遮罩HBAO。与以前的SSAO不一样的是,HBAO基于物理的算法,能生成更高质量的SSAO,同时增加AO阴影的清晰度质量和可见性。

然而处于性能的原因,一般游戏都以半分辨率渲染HBAO,比如《战地3》,将AO像素的数量减少了四分之三,但是以较低的分辨率渲染的HBAO会导致一些闪烁。所以为了解决这个问题,NVIDIA又重新开发并改造了SSAO,得到了最先进的HBAO+,这是SSAO渲染领域的典型转变。而且与HBAO相比,HBAO+将AO效果的细节级别提高了一倍,运行速度提高了三倍,并使用了最新的DirectX11技术。

1.webp.jpg

而对于原来的SSAO,HBAO+修复了下面这个bug。

首先是一个空场景

2.webp.jpg

往里面加一个动态的角色

3.webp.jpg

如果角色离墙很近,那他周围的确会有一圈墙面的AO效果。但是如果角色是远离墙面的话,按照SSAO本身的计算方法,取物体上面的一个点,然后在采样球里面取随机采样点

4.webp.jpg

根据深度判断采样点和中心点的遮挡关系,并将最后的结果相加,得到的结果就会让远离墙面的角色本身也受到错误的AO效果。

所以为了得到正确的结果,HBAO+使用了双pass AO去计算。比如对于下面的场景

5.webp.jpg

第一个pass只计算静态物体的AO。

6.webp.jpg

第二个pass计算静态物体以及角色的AO。

7.webp.jpg

然后抠出场景中的角色。

8.webp.jpg

然后把这些动态的角色加载到第一个pass计算出来的AO图中。

9.webp.jpg

但是这样子角色和地面的AO就完全消失了。

10.webp.jpg

所以我们还需要在角色和地面接触的部分增加AO效果,在反转动态物体mask后得到的新mask区域,与地面进行最小深度混合,最后就只会得到正确的角色与地面接触的AO值。

11.webp.jpg11-2.webp.jpg

由于在Ultra预设中double-pass HBAO+被设为默认,所以也可以称为HBAO+Ultra,并且添加了高级的混合函数到HBAO+中。

12.webp.jpg

当然除此以外还有比HBAO+慢3-4倍但是效果很好的VXAO,HDAO以及PBAO等。有兴趣可以了解一下。

来源:Thepoly公众号

返回列表>
热门课程

专业讲师指导 快速摆脱技能困惑

相关文章

多种教程 总有一个适合自己

专业问题咨询

你担心的问题 火星帮你解答

学员作品赏析
1903学员阮捍、徐珂小组作品

1903学员阮捍、徐珂小组作品

1903学员周德志小组作品

1903学员周德志小组作品

1903学员周德志小组作品

1903学员周德志小组作品

1903学员王悦、王思琪小组作品

1903学员王悦、王思琪小组作品

1903学员王悦、王思琪小组作品

1903学员王悦、王思琪小组作品

1903期学员阮捍、徐珂小组作品

1903期学员阮捍、徐珂小组作品

1903期学员阮捍、徐珂小组作品

1903期学员阮捍、徐珂小组作品

1903期学员阮捍、徐珂小组作品

1903期学员阮捍、徐珂小组作品

关于我们
关于我们
在线咨询 电话咨询
点击领取免费教程