Deferred object rendering

Hi guys,

First of all, I am working on a 2D game with Unity 2017.4.1. In this project, I am using the “post-processing-stack” asset to add some effects to the rendered image. But now I would like to have some objects (sprites) in front of everything and that are not impacted by those effects. I tried to use Canvas and UI components to do that, but finally it’s a really ugly and not viable solution, I am sorry to have thought about that…

So, to do things properly, I am looking at the rendering pipeline side and I am searching a way to add a work to the Camera.Render part. In the frame debugger, I am trying to do that :

  • Camera.Render

    • Drawing …

    • Camera.ImageEffects

    • (My Custom Drawing, processing after image effects)

  • UGUI.Rendering.RenderOverlays

I don’t know very well the Unity’s rendering pipeline. All I found about it is for deferred lighting and shading, using CommandBuffer, OnPreCull, OnRenderImage, OnWillRenderObject, etc. So, several questions come to mind :
is it possible to use CommandBuffer and/or other things to do that with Unity 2017.4.1 ? It seems that Unity 2018 gives more possibilities to manipulate rendering pipeline, should I think about changing for Unity 2018 ? Or may be I can try to do “post prod image effects”-like with an object that would cover all others and write a shader to render effects (is it feasible) ? Or something else ?..

Thanks a lot for your help.

Well, the solution I used is to do “post prod image effects”-like using shaders, inspired from this post : Works fine !