Is it possible to override Unity camera rendering?

I am trying to do my own rendering pipeline. The image the player see would be from my own pipeline calculations. I am overriding Unitys cameras result using the OnRenderImage function. I just ignore the source texture and return my own. But this happens after the unity engine render the frame. Is it possible to make unity do not render anything, while I have the control what is showed?
In other words, I am trying to make my own camera. There is a better way to do that? I am just concerned that unity is doing a rendering work that is thrown away.
Setting the culling mask of the camera to Nothing still gives me Tris and Verts not equals to zero on the Statistics panel.

There are several ways. One is to simply set the camera’s culling mask to “none”. That way the camera shouldn’t render anything. Make sure you also set the clear mode to solid color or maybe just “clear depth” (if you’re going to overwrite the whole buffer anyways).

Another way is to not use any camera at all. You can use the OnGUI event callback and do your rendering inside the Repaint event. Keep in mind that you most likely need to clear the color / depth buffers first (GL.Clear). Of course this approach won’t show anything in edit mode.