在阅读urp的延迟渲染管线中的代码时,内心有一些疑问和思考,跟大家分享一下
疑问1:对于每盏灯,为啥要分别用两个pass(lit和simple lit)去计算光照,计算出来的结果如何处理
思考: 两次draw call的 stencil Ref 不一样,一个是48,一个80,而stencil comp是 Equal,因此,应该是通过模板缓冲来分别处理不同的像素。
疑问2:Stencil Volume这个pass有写入模板缓冲,但没有看到对不同物体区分lit和simple lit的写入
思考:深入读了一下代码,个人判断是在GBUFFER写入时,通过模板写入,根据物体的shader,如果是lit.shader,写入lit的模板值,如果是simplelit.shader,写入simplelit的模板值 |