考虑了很多方案,比如渲染次序和mask(stencilebuffer)
渲染次序
sorting order(深度) renderer都有的属性能开放出来,sprite renderer原本就开放在inspector里面了
https://unity3d.com/cn/learn/tutorials/topics/2d-game-creation/sorting-layers
render queue 在shader里面设置
https://docs.unity3d.com/ScriptReference/Rendering.RenderQueue.html
https://docs.unity3d.com/ScriptReference/Material-renderQueue.html
https://docs.unity3d.com/462/Documentation/Manual/SL-SubshaderTags.html
command buffer 在pp后面自己画
https://docs.unity3d.com/Manual/GraphicsCommandBuffers.html
最后发现用camera 一个挂pp一个不挂 , 不要pp的obj用不挂的camera layer画
不挂pp的camera depth值大一些在前面就ok了 unity很强大
这说明它管线做的相当碎了comman buffer
本文探讨了Unity中渲染效率的提升方法,包括渲染次序、mask使用、RenderQueue设置及CommandBuffer的应用。通过合理调整SortingOrder和利用Camera层深度值,实现更高效的渲染流程。此外,还介绍了Shader中RenderQueue的配置,以及如何在后期处理后使用CommandBuffer进行自定义绘制。

被折叠的 条评论
为什么被折叠?



