Upscaling from lower resolutions?


#1

I’m fighting the renderer here and I feel like I’m missing something.

I’m trying to render to a fairly low resolution (say, 320x200) and pixel double my way to a more sensible resolution.

I tried setting the render size in “dimensions” low and running at 200%, but this seems to give me a much higher resolution output than I would expect.

Is there a good way to do this in Armory without hacking up the renderer?


#2

There is a way to upscale from defined resolution if you set Armory Render Path - Post Process - Resolution. Sadly it was meant as perf option for mobile and the lowest option there is 480p. I will enable entering arbitrary value there.

Using that option the window is created at specified “dimensions”, but the actual rendering happens at “Resolution” defined property.


#3

Ah yes, I saw that option, but it’s not quite what I need; it’s using some kind of linear scaling to bring the texture back up to target, but in this case I specifically want chunky pixels.

Is there a way to override both the resolution and scaling behaviors in code? I’m assuming the renderpath class has some secrets but I don’t know how much is going to get code-genned away, vs what’s actually tweakable.


#4

I have finally pushed some more control over this, sorry it took this long. With Armory Render Path - Post Process - Resolution set to Custom, you can now set Filter to Closest, which should preserve the chunky pixels. Not sure if this is enough for what you need, but hopefully a start. :slight_smile:

Capture

Size set to 120 and closest filter applied to celshade example:


#5

Nice! I was also wondering about such an option. This is great.


#6

Nice!

Got this patched in, looks pretty good! I’ll tinker a bit and let you know if I have any more feedback :smiley:


#7

V. nice, is this tooltip still correct? its always 720/ something?

Also, where is Dimensions? I just seem to be missing that bit :slight_smile: