Global IIIumination(GI)全局光照原理(二)屏幕空间全局光照

一、什么是屏幕空间?

在这里插入图片描述
顾名思义,屏幕空间只使用来自“屏幕”的信息,也可以理解成是对现有直接光照效果图的后期处理,使得加上模拟的间接光照。
RSM严格来说属于图像空间,LPV、VXGI属于3D空间(世界空间)全局光照。

二、Screen Space Ambient Occlusion (SSAO)屏幕空间环境光遮蔽

AO是全局光照反射不到物体间夹缝的现象,左边图有AO,右边图没有AO,可以看出AO使得物体间的轮廓更清晰。
在这里插入图片描述
什么是SSAO?SSAO就是在屏幕空间内对全局光照的一种近似。
在这里插入图片描述
SSAO核心思想1:我们不知道间接光照,但我们假设间接光照是一个从各个方向来都一样的常数。
SSAO核心思想2:虽然假设间接光照是一样的但每个Shading point接收到的是不一样的。
SSAO核心思想3:假设物体Shading point表面都是漫反射表面,即是diffuse BRDF。
补充:UE中的天光就是干这个的,形成AO贴图,如图坦克。
在这里插入图片描述
SSAO可见性:如图黄色的光
在这里插入图片描述
从渲染方程来看,SSAO针对的就是可见性:
在这里插入图片描述
在这里插入图片描述
最终,AO就等于 一个平均的Visibility 乘以 一个参数(我们给的常数)。
在这里插入图片描述
实际上,一个更简单的理解:
间接光照不知道,所假设L是一个常数;
漫反射BSDF结果也是一个常数;
将两者就可以从渲染方程的积分中提出来。

引擎工业上判断AO的可见性,即判断Shading Point有限的反射范围内有多少漫反射被遮挡:

在这里插入图片描述
而SSAO在工业上用了更取巧的办法:
在这里插入图片描述
在Shading Point周围球内随机分布一些点(通常为了性能采样点为16个),判断这些点是否被物体遮挡,从而确定Shading Point的可见性0~1。
如图,红色点在相机空间的位置和和该位置z-bufffer的深度值一比较就知道红色点在物体内部,而绿色点比较则在物体外面,最终根据可见比例对Shading Point的可见性给出0~1的值,行成阴影遮蔽。
在这里插入图片描述
通常,只有不可见点(红点)过半才有环境光遮蔽,如图球2球3。
在这里插入图片描述
SSAO存在的问题:因为是基于屏幕空间的,如图这种情况石凳会干扰地面计算AO。 那么英伟达就提出了HBAO:带法线的屏幕空间AO

屏幕空间 Horizon Based Ambient Occlusion(HBAO)水平基准环境光遮蔽:

顺着SSAO,现代引擎都能得到shading point点的法线,多存一张Normal Map,知道法线就只需要用半球来代替球,得出的AO效果就更准了。而且有法线可以对不同方向的可见性加权,一般靠近法线加权更重,这样计算得到AO就更准了。
在这里插入图片描述

三、Screen Space Directional Occlusion (SSDO)屏幕空间方向遮挡

在这里插入图片描述
SSDO是对SSAO的改进,SSAO假设间接光照都是均匀的,而实际上间接光照是不均匀的。
在这里插入图片描述
如上图,AO和DO是一个恰好思路相反的假设:

  • AO:假设间接关照是从远处四面八方均匀过来的,那么没被遮挡的方向上就有间接光,被遮挡的就没间接光。
  • DO:假设P点打到四面八方的射线没被遮挡说明这里是直接光照,射线如果被遮挡就证明 这些遮挡物会反射间接光照给P点。DO表示近距离的间接光照。
    在这里插入图片描述
    一般而言,SSDO效果好于SSAO,更接近离线渲染。但SSDO也存在着一些问题:
  • SSDO只能表示小范围的全局光照。
  • 可见性从相机到P点,存在误判可能。
  • 屏幕空间SS天然存在的问题,由于是屏幕空间,不能直接看见的地方信息就会丢失。如上图,绿色方块反射的间接光随着视野越来越小。

四、Screen Space Reflection(SSR) 屏幕空间反射

在这里插入图片描述
什么是SSR?

  • 屏幕空间反射依然是一种实时全局光照算法
  • SSR实际上就是在屏幕空间做光线追踪
  • 而这个光线追踪是不需要知道三角形结构的。

SSR需要做到两件事:

  • 任何光线和场景的求交;
  • 相交像素对着色点的贡献;
    在这里插入图片描述
    Shaded场景+每个P的法线已知+每个P点的深度图已知,计算出SSR,再叠加到场景。
    在这里插入图片描述
    通常,我们要找到shading point 的反射点,可以用固定步长渐进判断每个位置是否和物体相交。
    在这里插入图片描述
    但这种方式步进多大不好确定,于是人们又发明了动态决定步长多大:
    在这里插入图片描述
    在这里插入图片描述
    把场景的深度图做一个特殊的MipMap,特殊在此MipMap上一层存的像素不再是本层四个像素的平均,而是本层四个像素的最小值(也就是最浅的一个)。
    在这里插入图片描述
    就像BVH或KD-tree一样的层级结构,光线没有相交就上一层,碰到就下一层:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    如上图,直到找到相交的某层,减一层判断是相交的是哪层:
    在这里插入图片描述
    减一层,不相交了:
    在这里插入图片描述
    于是又往前走,加一层:
    在这里插入图片描述
    相交,减一层,最终找到Level 0层:确定相交点
    在这里插入图片描述

屏幕空间反射(SSR)的存在的问题:

在这里插入图片描述
由于是屏幕空间,SSR只能反射画面上看得见的部分。
窗帘拿不到屏幕外的反射:
在这里插入图片描述
所以,我们一般做个衰减来解决这个问题:
在这里插入图片描述
最后,就是SSR的Shading,BRDP是Glossy的。
在这里插入图片描述
SSR优点:
较快速的性能和光泽、镜面反射质量好
没有尖峰和遮挡问题
SSR缺点:
在漫反射情况下没有那么有效,画面整体偏油
SS缺点屏幕外缺少信息
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cxihu田树东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值