延迟渲染路径

1. 延迟渲染路径处理光照的方式

延迟渲染路径对光照的数量没有任何限制,并且所有灯光都可以采用逐像素渲染。理论上来说,即
使场景中有成百上千个实时灯光,依然可以保持比较流畅的渲染帧率。
它支持法线纹理、阴影等等效果的处理;但是它不能处理半透明物体,并且不支持真正的抗锯齿。
这些会自动使用前向渲染路径。

延迟渲染的效率不依赖于场景的复杂度,而是和我们使用的屏幕空间的大小有关。
这是因为延迟渲染路径中除了使用颜色缓冲和深度缓冲外,还会利用一个叫做G缓存的额外缓存区
它会存储我们关心的表面(通常是离摄像机最近的表面)的其他信息,比如表面的法线、位置、材
质属性等等。总之我们需要的信息都存储到缓冲区中,而这些缓冲区可以理解为一张张的2D图片,
我们实际上是在这些图像空间中进行处理的。

2. 延迟渲染路径在哪里进行光照计算

要进行光照计算,那肯定是在Shader当中的Pass渲染通道中进行计算。
延迟渲染路径中主要包含两个Pass:
第一个Pass(对于每个物体,该Pass只会执行一次,通常无需我们自己实现)
主要判断哪些片元可见,并且将可见片元的相关信息存储到G缓冲区中
比如:表面法线、视角方向、漫反射系数等等数据
第二个Pass


利用G缓冲区中各个片元的相关信息进行真正的相关计算,最终将颜色写入颜色缓冲区

3. 延迟渲染路径的内置光照变量

常用内置光照变量

Unity会自动填充自定义变量 sampler2D _CameraGBufferTexture0~4 ,其中存储的就是G缓冲区中的数据,可以通过他们获取数据来进行逻辑处理

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值