Rendering at 320x180px and point scaling up?

Is this possible, and how?
I want to see sharp, big pixels on my display.

I know I could do this using a post effect shader, but I prefer to have performance extra.

1 Like

Hey -

Inside the editor preferences there is an option named Play under the Level Editor heading. In here you can modify your standalone and new window sizes. Hope this information helps get you further along.

Cheers

Unfortunately it doesn’t help me, I did find the startup parameters to set fullscreen. But I need to set the upscaling filtering method to point instead of bilinear, where can I do this or what is the start up command for that?

In the console you can use the commands r.ScreenPercentage 25 and r.UpsampleQuality 0. (The 25% assumes you’re running at 720p). For more information on the upsample options use “r.UpsampleQuality ?”.

Unfortunately there is still filtering.
There’s sharp pixels now, but it’s not what I want. If I compare it to a simple post effect pixel shader, that looks way better.
Is there a setting to get that effect without rendering on full resolution and then degrading it?

I would like to know the answer to that question as well. How come the thread is marked as answered when it seems that is still looking for a solution? What we are trying to figure out is how to render at lower resolution image and stretch the result over screen without using any time of scaling filter like bilinear.

In the texture edit window you can you can search for “Filter” and edit the texture filter option. This should allow for smoother image display. You other option would be to edit the texture itself in another program such as Photoshop and set the resolution and size as desired then import back into the editor.

Cheers

Thanks for your answer , but I was talking about the images of the game rendered through the active view. Take a game like Teleglitch for example. It seems to me that these frames are low resolution 3D renders getting stretched without filtering in order to fill the screen. This is the effect I am trying to reproduce in Unreal Engine.

This is the result I’m getting when I use the commands listed above:

r.ScreenPercentage 25

r.ScreenPercentage 5

The further you reduce the screen percentage the more pixelated the view will become. If you are looking for more pronounced pixelation you would need to edit the textures in another program such as photoshop.

Thanks for these screenshots . Referencing my previous bilinear filtering image. You can see that the technique you are using to degrade or under sample your renders is currently using some filtering (bottom) instead of keeping the pixels sharp (top). I don’t think editing anything in Photoshop would be a solution since we are looking for a runtime under sampling. I am not sure I understand why you seem to say that textures would be coming into play at that stage.

My understanding is is that you want a clear screen with pixelated objects. By combining the “r.ScreenPercentage 20” and “r.Upscale.Quality 0” commands I get an image like the one below:

If you are looking for more defined/pronounced pixelation then you would have to use the post processing effect. Unless your game is already performance intensive the performance cost of the post processing should be manageable.

It doesn’t seem like you guys understand this person’s intention. This person is simply wanting to render low resolution. And then instead of UPSAMPLING with a bilinear filter. They want THAT FILTER. To be a POINT FILTER instead. (Or Nearest Neighbor if you will).

How hard is that to understand? They don’t just want a pixellated screen. But a change in the resampling filter used to upsample the image to any desired resolution. (Hope this doesn’t come across insulting. Just trying to bluntly explain what he wants)

I’ll illustrate with a comparison (Using the UE3 game Alien Fear)
http://screenshotcomparison.com/comparison/102247

The 2nd example showcases Point upsampling. THIS is what this person wants. There really should be a choice in resampling filters for upsampling and downsampling! Choices are important for each person right? Personally I can’t stand bilinear upsampling. It’s something of a relic IMO.

Thanks BONKERS you get it. Now, is there actually an existing elegant solution for this or am I going to have to render high resolution images and then make a post shader effect that will only change color every n pixels to simulate the low resolution and the sharp pixels?

If anyone is interested in the post-processing solution for this effect check this video tutorial.

Eh, honestly. This shouldn’t be the solution you HAVE to turn to. Feels like a waste of rendering resources to have to render high resolution and use a shader to get a pixellated look from a shader.

How hard is it to simply code some changes into the source code right?

Hey -

Currently the only way to use a Point Sampler is to go into the Shader code and change it to adjust to that form of sampling which is in the engine but because its use it not a commonly requested function is available only as a code change. Without code changes or the use of a post process material, the closest the engine can do is the adjustments mention by my colleague below.

Thank You

Eric Ketchum

Thanks for the answer Eric. Could you give us some sort of starting guide on how we could access and edit that shader code? Maybe there is some reference online for this?

GitHub Source Engine Build and a working knowledge of High Level Shader Language for DirectX 10 and higher.

See my more detail response to your question here, Is it possible to make a custom shading model? - Rendering - Unreal Engine Forums

Eric Ketchum

Blockquote is there any way to do this? (This person is simply wanting to render low resolution. And then instead of UPSAMPLING with a bilinear filter. They want THAT FILTER. To be a POINT FILTER instead. (Or Nearest Neighbor if you will).)

You may want your resolution quality set to 100, otherwise certain vertical or horizontal lines of pixels may get missed or appear “filtered”. Try this again with the following added command. It helped me get pixel perfect results.

sg.ResolutionQuality 100

r.ScreenPercentage 20

r.Upscale.Quality 0

1 Like