[Games104笔记] 游戏中的渲染管线,后处理
文章目录
环境光遮蔽算法及效果
★>>>Ambient Occlusion: An Extensive Guide on Its Algorithms and Use in VR — ARVI VR (arvilab.com)
翻译:
>>>The Dark Side Of Ray-Traced Ambient Occlusion (RTAO) | TheGamedev.Guru
AO 环境遮挡
Precomputed AO
预计算环境遮挡
SSAO
Screen Space Ambient Occlusion
屏幕空间环境遮挡
💡立体空间采样的思想可取,用的人并不多
SSAO通过采样象素周围的信息,利用“逐象素场景深度计算”技术计算得出的深度值直接参与运算。
效果确实错误还比较大,应该先进行简单的空间划分(或类似处理)然后计算。
不过这种方法只是近似地模拟,效果并不正确,但确实能增强场景的层次感,让画面更细腻,让场景细节更加明显。
不同于显卡驱动中普通的AO选项,burnout的SSAO是全动态的,无需预处理,无loading时间,无需消耗内存,不使用CPU,全由GPU处理,对GPU有较大的消耗
SSAO默认是关闭的,可以在游戏视频选项中打开。
SSAO比起185.20驱动中AO的优点:
- 与场景复杂性无关
- 无数据预处理,无loading时间,无系统内存分配
- 动态渲染
- 每个像素工作方式始终一致
- 无CPU占用,完全通过GPU执行
- 与流行显卡的管线整合相当容易
缺点也是有的:
- 由于采样全部在可见点上进行的,对于不可见点的遮挡影响会有错误的估算。
- 颗粒感比较重,需要与动态模糊紧密配合才能取得较好效果。
SSAO+
HBAO-基于地平线的环境遮挡
Horizon-based Ambient Occlusion.
原理:
HBAO使用一种基于物理的算法,用深度缓冲器采样来逼近一个积分。有一个特定的表面,其中的角度被测量,检查多少光线会被遮挡,不仅要考虑深度,还要考虑表面的法线与世界(地平线)的关系方向。
HBAO在运作模式上与SSAO有什么区别呢?首先HBAO规定了一个半径为R的空间范围,对于范围外的空间不做渲染;此外对于一些低精度模型,遮蔽会导致错误的产生。
>>>HBAO(屏幕空间的环境光遮蔽) - 知乎 (zhihu.com)
GTAO
GTAO - Ground Truth-based Ambient Occlusion 基于地面真实的环境遮挡
GTAO引入了丢失的余弦因子,消除了衰减函数,并增加了多重反射的快速逼近。
>>>Unreal 【UE4】 GTAO - 游戏编程 🕹️ (233tw.com)
RTAO
Ray-Tracing Ambient Occlusion 光线追踪环境遮挡
Fog
视锥
反走样
anti-aliasing
由高频信号和有限的渲染分辨率的不充分采样引起的一系列渲染假象
古老的方法: SSAA 超采样,多采样
较主流,实用且快:FXAA
- 通过亮度找到边缘像素
- 计算每个边缘像素的偏移量
- 通过偏移量重新采样边缘像素,使其与邻居混合
横竖卷积一下, 比较上下&左右哪个差异大一点
找到边的两个端点
原理是相似三角形,
比较左右端的长度, 来决定自己影响多一点还是受别人影响多一点
每个点找自己的edge, 效果很棒
较主流,TAA
不需要在空间上做过多的采样, 而是在时间轴上找数据
根据xyz方向进行rgb编码👉计算当前帧的和过去帧的权重(运动的物体话依赖当前帧多一些,比较静止的依赖过去帧多一些)
TAA做的不好会有残影
※后处理
应用于最终图像的任何算法。它可以出于色彩校正、对比等原因或现实原因(色调映射、视场深度等)
步骤:
Boom
取出高光(超过设定的阈值)
高斯卷积, 不够大
Tone Mapping,调亮度
解决暗处过暗|亮处过亮 以及色偏
映射为0~1之间的值
多项式拟合派系
“降维打击派系” ——ACES
美国电影艺术与科学学会之作
适应于各种显示设备
>>>Tone mapping进化论 - 知乎 (zhihu.com)
Color Grading,调颜色,简单实用,性价比高
原始颜色与变化后的映射
对于美工很友好
性价比高
本文来自博客园,作者:泥烟,CSDN同名, 转载请注明原文链接:https://www.cnblogs.com/Knight02/articles/16255358.html