Games104第7节记录
四月 18, 2022
环境光遮蔽(Ambient Occasion)
预计算AO
采用光线追踪离线计算AO,并将结果存储到纹理中,这种方法广泛应用于物体建模过程中:
- 额外的仓储成本
- 仅适用于静态对象
屏幕空间环境遮挡
- 在视空间中每个像素p周围的球体中生成N个随机样本
- 通过比较深度与深度缓冲来测试样本闭塞
- 样本点的平均可见性来近似AO
SSAO+
回想一下AO方程实际上是在法向半球上做的HBAO Horizon-based Ambient Occlusion
使用深度缓冲作为高度场
在水平角以下的2D表面射线被遮挡 - 使用深度缓冲区作为2D表面上的高度场
- 从水平角直接在2D和近似AO中跟踪射线
GTAO Ground Truth-based Ambient Occlusion
GTAO引入了缺失余弦因子,消除了衰减函数,并增加了多跳的快速逼近Ray-Tracing Ambient Occlusion
使用RTT硬件从每个屏幕像素投射光线
1 spp(每像素样本)对远场遮挡效果很好
用2-4 spp,可以恢复接触区域的详细闭塞fog
high fog
Voxel-based Volumetric Fog基于体素化的雾
反走样 Anti-aliasing
反走样的原因
混叠是由高频信号与高频信号产生的一系列图像伪影。有限的渲染分辨率的采样不足解决方案
基于屏幕的抗锯齿方案的一般策略是使用抽样模式获得更多的样本,然后加权和样本相加产生像素颜色Super-sample AA (SSAA) and Multi-sample AA (MSAA)
FXAA (Fast Approximate Anti-aliasing)
基于1x渲染图像的抗锯齿.
根据亮度找到边缘像素
计算每个边缘像素的偏移量.
重新采样边缘像素的偏移量与邻居混合
Blend Nearby PixelsTAA (Temporal Anti-aliasing)
利用时空滤波方法提高机管局运动稳定性Post-process
在3D图形中,后处理是指将应用于最终图像的任何算法。这可以是出于风格上的原因(色彩校正、对比等),也可以是出于现实原因(色调映射、景深等)。Bloom
Detect Bright Area by Threshold
Tone Mapping
学院色彩编码系统
- 主要用于电影和动画
- 有趣的范例和转换
有用的部分
- 在HDR中应用颜色分级是好的
- 将一个固定的管道连接到最终的OTD转换阶段的想法是好的
- 将艺术意图与支持不同设备的机制分离开来
HDR and SDR Pipeline
HDR / SDR之间的视觉一致性
之前的SDR颜色管道相似的SDR结果
高质量
高性能
对美术团队的干扰最小
从当前的颜色管道简单
过渡掌握HDR和SDR所需的额外开销最小
Color Grading
Lookup Table (LUT)
- LUT用于根据LUT中包含的数据将源像素的输入颜色值重新映射为新的输出值
- LUT可以被认为是一种可以应用于图像或镜头的颜色预设
渲染管线
渲染管道是所有渲染操作执行和资源分配的管理顺序Forward Rendering
Deferred Rendering
优点
光照只计算可见的片段
G-Buffer的数据可以用于后处理缺点
高内存和带宽成本
不支持透明对象
对MSAA不友好
前进+(基于贴图的前进)渲染
深度预压(防止透支/提供瓷砖深度范围)
平铺光照剔除(输出:每个平铺的光照列表)
每个物体的阴影(PS:通过光剔除计算的光列表迭代)
挑战
复杂的并行工作需要与复杂的资源依赖性同步
大量生命周期小于一帧的瞬态资源
复杂资源状态管理
不需要大量的用户低级知识,就可以利用新暴露的GPU特性
屏幕撕裂
原因
在大多数游戏中,你的GPU帧率是非常不稳定的当新的GPU帧在最后一帧的中间更新时,屏幕撕裂发生
解决方法
v-Sync Technology
用垂直刷新同步缓冲区交换称为V-syncV-Sync可以用来防止撕裂,但帧率降低,鼠标延迟和口吃破坏游戏
查看评论