Upscale rendered scene frames

Problem :Is it possible to render the scene at a low resolution (for example 384x216) then apply a stretch to the rendered to pixels or an upscale (without altering the pixel properties ) so that it covers a 1920x1080 screen ?


-Goal : to keep the image pixelated while making the rendering process less taxing on the system which a pixelation shader will not provide

Why? : the low resolution scene appears as a window and cannot be full-screened to fit a bigger screen with out increasing the pixels number


-the technique is applied in dos emulator games like doom II and blood (1993) where it scales up a very low resolution rendered image and full-screens it


-Your help is appreciated

I think that it should be possible, yes, via the same route that’s used for full-screen effects:

Render your scene to a low-resolution off-screen buffer, then apply that buffer to an on-screen quad. (Presumably with nearest-neighbour filtering applied to the buffer-texture, or a custom pixel-shader to the on-screen quad if that doesn’t work out.)

Thanks for your reply .
The problem is I do not know what to do exactly as I come from a 3d designing background and i am new to panda and python .
It would be highly appreciated if you can give me starting points (libraries to use and modify ) and the tools i need to do so .

I would suggest that you start with the following section of the manual, which outlines one way of doing this in Panda3D:
https://docs.panda3d.org/1.10/python/programming/render-to-texture/generalized-image-filters

(If that proves incapable, then I’d suggest going further in the manual to the section titled “Low-Level Render to Texture”, which describes a more-complex but more-flexible approach.)

(Also: sorry that I didn’t say it before, but welcome to the forum! I hope that you find your time here to be positive! ^_^)

Thanks for the fast response Thaumaturge .
I will send an update when I get new results

1 Like