前向渲染和延迟渲染

unity的内置渲染管线默认使用的是前向渲染
前向渲染在渲染实时光线时非常消耗资源,在场景中有多个受灯光影响的物体时,它将对每个物体都进行了顶点,几何,片元着色的计算,后进行深度测试.因为大部分片段着色器的输出都会被之后的输出覆盖,正向渲染还会在场景中因为高深的复杂度(多个物体重合在一个像素上)浪费大量的片段着色器运行时间。

延迟渲染把着色计算放到深度测试之后进行处理

延迟渲染包含两个PASS,> 一个PASS是先渲染场景一次,之后获取对象的各种几何信息,并储存在一系列叫做G缓冲(G-buffer)的纹理中;想想位置向量(Position Vector)、颜色向量(Color Vector)、法向量(Normal Vector)和/或镜面值(Specular Value)。另一个PASS是做光照计算的.

延迟渲染缺点是不支持半透明和抗锯齿,读写G-buffer影响性能

https://zhuanlan.zhihu.com/p/339095194
https://learnopengl-cn.github.io/05 Advanced Lighting/08 Deferred Shading/

posted @ 2022-01-06 23:08  melt00  阅读(481)  评论(0编辑  收藏  举报