Retro Resolution Posibility

I was wondering, is the blur from scaling the game’s resolution a toggle-able filter or just a side affect with the engine that can’t be changed?
I’ve always loved the crisp look you get from 3d that’s been scaled up, for example…

http://www.polycount.com/forum/showpost.php?p=2114562&postcount=12366
http://www.polycount.com/forum/showpost.php?p=2107821&postcount=12314
(can’t post images yet, new user rules)

I also think it would be pretty damn cool to have the option to not only set the default resolution, but what it’s being scaled to. Because this could lead to some killer results!

Thanks for reading :smile:

Hello,

You can change the way the resolution is scaled when the canvas size changes with these methods:

http://developer.playcanvas.com/engine/api/stable/symbols/pc.fw.Application.html#setCanvasResolution

http://developer.playcanvas.com/engine/api/stable/symbols/pc.fw.Application.html#setCanvasFillMode

I hope this answers your question :slight_smile:

Hi Kitheif,
When the PlayCanvas engine intializes, it always asks for the back buffer (the main drawing surface) to be antialiased. I guess we could make that an option, perhaps in the Project Settings. But that is only part of the strory.

However, I believe what you should really be doing is to implement this as a post effect. There is already a tutorial on writing a custom post effect. The post effect would simply set a very low res render target up (maybe 1/16th res) and render as normal. That render target would then be rendered to the back buffer with nearest filtering.

It is not really possible to implement crisp upscaling with the resolution settings in your project because that is relying on the browser to scale the canvas and that always applies some blur type filter - this behaviour is not customizable.

Thanks for the replies guys!
You’re right Will, pixel perfect scaling isn’t realistic without a post effect. If i’m able to set the scaled rendering to nearest filtering then it’s definitely possible, thanks!

1 Like

It would also be much more performant if we could set switch off antialising, set the project resolution to say, 640x480 and change interpolation method to nearest neighbor. Isn’t there a way to set that somewhere? thanks!

so I hacked together a pixelate post effect.
pixelate post effect

the two things I couldn’t figure out:
—how to get the script attribute to the shader
—it doesn’t seem to update the resolutions on resize.

Anyone wanna help?