大佬们的文章链接参考:

https://zhuanlan.zhihu.com/p/666213716

https://zhuanlan.zhihu.com/p/100748588

UE的DeferredDecal

UE的延迟贴花有两种版本,一种是使用DBuffer,还有一种不使用DBuffer。

不使用DBuffer的情况


首先有一个BOX来划定范围,投射方向。

过程中画两次这个BOX。

第一次,关闭Cull,画Stencil:

第二次,CullBack,模板测试等于:

BOX的范围内,深度图转换为WorldPos,然后再转换到BOX空间。

使用BOX内的空间坐标采样Decal图,然后加到Gbuffer里。

如果Decal需要光照后面就也可以计算实时光照,但是无法计算BakeLight,因为BakeLight是在BasePass里画Gbuffer的时候已经算完了。

使用DBuffer的情况


将Decal的数据画进DBuffer里。

然后在BasePass的时候,把Debuffer融合到GBuffer里,这种情况就支持烘焙光。

更新于