渲染管线 -- 后处理

一、环境光遮蔽Ambient Occlusion

在这里插入图片描述
在这里插入图片描述
我的理解是AO,表示正半球上有多少部分能够看到,实际上就是计算渲染方程中的可见性函数,目的是突出阴影。
在这里插入图片描述

1.1 SSAO

他的流程是:

  1. 获取到场景的深度图
  2. 在一个着色点的(正)半球随机散布采样点,如果采样点的深度比深度图中的深度更大(更远离相机),那这个点就应该加入ao值
  3. 所有的采样点ao值取平均
    在这里插入图片描述
    在这里插入图片描述

1.2 HBAO

他的流程是:

  1. 将其周围360的角度进行均分,每个方向分别做RayMarching
  2. RayMarching之后可以得到一个以为的高度场(就一个角度,如下图中h(θ)的θ)
  3. 根据点P和它的法线N,计算出它的切面角(也是一个角度,如下图中t(θ)的θ)
  4. 根据前面求出的角度,我们可以求出当前方向的环境遮蔽值
    在这里插入图片描述
    HBAO在实现的时候可能出现的问题:Low-Tessellation 、不连续、噪声等,
    在这里插入图片描述

HBAO有个问题,没考虑不同方向光的贡献度不同

1.3 GTAO

GTAO的流程如下:

  1. 求出每个slice的 horizon angle
  2. 根据angle求slice的 visibility ( 注意根据法线做Cosine Weight)
  3. 根据经验公式做Mult Bounce ( 下图第二张)
    在这里插入图片描述
    在这里插入图片描述

1.4 RTAO

实时的光追肯定不能一个像素开高spp,每个像素的spp会分布在时序上
在这里插入图片描述

二、雾效

2.1 深度雾

在这里插入图片描述

2.2 高度雾

在这里插入图片描述

2.3 体素雾

我们会对相机空间进行体素切分,我们存储结构尽量和屏幕保持一致
在这里插入图片描述
体素雾的实现可以去看论文,也可以看知乎大神的文章:体渲染探秘(二)基于VoxelVolume实现体积雾 - 知乎

三、抗锯齿

可参考我的实时渲染–光栅化

四、后处理

物理真实的需要比如光晕;风格化的设计比如像素风,二次元风格等。
在这里插入图片描述

4.1 Bloom(泛光):

Bloom的实现原理:我们首先根据一个阈值提取出图像中的较亮区域,把它们存储在一张渲染纹理中,再利用高斯模糊对这张渲染纹理进行模糊处理,模拟光线扩散的效果,最后再将其和原图像进行混合,得到最终的效果。

然后高斯模糊中使用一个高斯核进行卷积计算,这个二维高斯核采样次数过高,但是我们能够进行将其拆分成两个一维高斯核来进行卷积计算
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 Toon Mapping

色调映射功能的目的是将宽范围的高动态范围(HDR)颜色映射到显示器可以输出的标准动态范围(SDR)
在这里插入图片描述
(简单地说就是让亮处暗一点,让暗处亮一点)

4.3 Color Grading

color grading的核心思想就是颜色映射,根据当前颜色映射到另外的颜色。
在这里插入图片描述
在这里插入图片描述

五、渲染管线

在这里插入图片描述

5.1前向渲染

根据距离摄像机的远近绘制,最远的物体最后绘制,这样来说天空盒是最后绘制的。但是对于透明的物体,需要先绘制远距离的物体。根据远处物体绘制出来的颜色然后再对近处物体绘制时需要作为参考元素。
在这里插入图片描述
但是前向渲染不适合计算大量光源的场景

5.2 延迟渲染

在这里插入图片描述
延迟渲染的流程:

第一个流程会先把几何信息放到GBuffer中,不考虑光的影响
第二个流程就几何信息进行光照运算

延迟渲染在计算光照的时候,需要注意的是每个光源创建一个包围盒来算他对于pixel的贡献,这样计算才能正确获得光照加速
在这里插入图片描述
延迟渲染优缺点:
优点

  • 光照只计算可见的片段
  • 来自G-Buffer的数据可以用于后处理

缺点

  • 高内存和带宽成本
  • 不支持透明对象
  • 对MSAA不友好

5.3 TBR

对于TBR来讲,整个光栅化和像素处理会被分为一个个Tile进行处理,通常为16×16大小的Tile。TBR的结构通过On-Chip Buffers来储存Tiling后的Depth Buffer和Color buffer。
在这里插入图片描述

5.4 Forward+

文章推荐:Forward+ Shading - 知乎

5.5 Cluster Based Rendering:

在这里插入图片描述
文章推荐:Cluster Based Deferred Lighting(1) - 知乎

5.6 Visibility Buffer:

在这里插入图片描述

5.7 挑战

  • 复杂的并行工作需要与复杂的资源依赖性同步
  • 大量生命周期小于一帧的瞬态资源
  • 复杂资源状态管理
  • 不需要大量的用户低级知识,就可以利用新暴露的GPU特性
    在这里插入图片描述
  • 22
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

想做后端的前端

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

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

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

打赏作者

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

抵扣说明:

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

余额充值