URP custompasscustom render objects
https://dbbh666.blog.csdn.net/article/details/141296728?spm=1001.2014.3001.5502
上一次 custom render pass的时候,直接是quad的渲染,如果想把任意对象绘制到FBO怎么写呢
参考这两个高手的文章,总结一下
https://www.bilibili.com/read/cv6735961/
https://zhuanlan.zhihu.com/p/365734868
主要使用这个绘制方式来进行绘制
context.DrawRenderers(renderingData.cullResults,ref draw,ref filter);
这里要先在CS里添加一些TAG,这个TAG就是shader里那个Tags{“LightMode” = “XXX_Unlit”}
还有filtering setting有这么些设置
https://docs.unity.cn/cn/2020.2/ScriptReference/Rendering.FilteringSettings.html
整个流程就是
先在C#为这次渲染指定过滤器,由于要根据shader TAG,所以要在shader把TAG对上
然后执行一次对应相机的一些culling,得到result接下来就绘制就行了
context.DrawRenderers(cullResults, ref drawingSettings, ref filteringSettings);
这个drawingsetting比较神秘,不知道下面实现有没有CS里根据这个剔除,不过我估计还是CPU端剔除的,哪天有机会翻翻看源码才知道了
贴一下上面链接的知乎老哥的代码片段,可以比较直观的看一下