When you increase the zoom of the game view like this:

what you're doing is cropping out a smaller section of the render target it's been drawn into.
So you can simply draw to a smaller render target in the first place.
Create a RenderTexture
asset in your Assets folder, and set it to a resolution about 4x smaller than your target screen resolution. (If you want to support multiple resolutions, you can use a C# script to create and assign this RenderTexture
dynamically to match the current screen/window resolution)
Set your camera's "Output Texture" field to render into this RenderTexture
. That forces it to render only the number of pixels in that texture - including all post effects like bloom. You may also need to adjust the "Reference Resolution" in your pixel perfect camera script to work with your cropped-in resolution - otherwise it may try to scale everything down further to fit into the smaller space.
Lastly, create a new UI Canvas
set to "Screenspace - Overlay" mode. Add a RawImage
component that stretches to fill the whole canvas, and assign your RenderTexture
as the image for it to display. That handles scaling up the few pixels of the render target up to the full window/screen size and displaying them to be seen.