Unity Shader总结(七)——Unity渲染路径

前向渲染

在这里插入图片描述前向渲染路径有三种处理光照的方式:
1.逐顶点:not important;
2.逐像素:important,如果逐像素光源数量小于Quality Setting中的逐像素光源数量,则会有更多光源以逐像素渲染;
3.球谐函数;

在这里插入图片描述
每个Additional Pass可以与上一次的光照结果在帧缓存中叠加,混合模式为Blend One One;
一个Bass Pass只执行一次,一个Additional Pass可能会被影响该物体的逐像素光源被多次调用,即每个逐像素光源会执行一次Additional Pass;
在这里插入图片描述
在这里插入图片描述

延迟渲染路径

当场景中包含大量实时光源时,如一块区域有多个光源互相重叠,前向渲染的性能就会急速下降。
延迟渲染是用来额外的缓冲区——G缓冲,G缓冲区存储了我们所关心的表面(通常是离摄像机最近的表面)的其他信息,如该表面的法线、位置、用于光照计算的材质属性等。
延迟渲染使用的Pass数目通常为两个,第一个利用深度缓冲计算哪些片元可见,可见的片元存储到G缓冲,第二个Pass利用G缓冲的信息进行光照计算。
缺点:不支持真正的抗锯齿功能,不能处理半透明物体,对显卡有要求;
默认的G缓冲包含的渲染纹理:
在这里插入图片描述
可以使用的光照变量(在UnityDeferredLibrary.cginc中可以找到声明):
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/memory_MM_forever/article/details/118224908