Graphics.Blit vs GrabPass vs RenderTexture?

Just to add to a wonderful bgolus’s answer - keep in mind that Unity needs at least one non-render texture camera in the scene just to send something to backbuffer (even if its render layers are set to none). It really ignores you if you just wan’t to do some general Graphics / GL stuff if there are no cameras rendering into the Unity’s backbuffer.

Generally OnRenderImage callback works ok if you don’t need any sort of 3D scene “master” downscale (rendering your 3D contents to a lower res texture like 0.8 or 0.6 and applying fullrez UI ontop of it)

You can find more info here

Also note that generic distortion based on overlay normal map won’t work effectively on older devices because it involves dependent texture reads. What you really need is to render a tesselated fullscreen quad with some vertex shader tweaks done to the w coordinate. This is the way it’s done in Fetty Wapp Nitro Nation Stories and in the old Shadowgun game (they even have a Unite presentation somewhere)

5 Likes