4:3 Resolution with r.fullscreenmode 0

Is there any way i can keep the 4:3 ratio with r.fullscreenmode 0 ?

For example r.SetRes 800x600 works with r.fullscreenmode 2.
On my 16:9 Monitor, there is the 800x600 Fullscreen with nice black bars on each site. But as soon as i switch to fullscreenmode 0 the Fullscreen is now a real FULLscreen WITHOUT Black Bars, and the viewport ratio is streched to 16:9.

I just want those black bars!

I searched a lot, and it seems nobody found a solution to get this work.
I can’t go with fullscreenmode 2, because my fps drop from 200 to 120, so this is a huge performance deal.
I can adjust this however on my monitors settings, but it’s a pain in the ■■■, and i don’t want anyone to do this in order to play my game.

Is there an option to have a real fullscreen with black bars, which maintains the ratio?

This one is pretty straight forward.

In your pawn/character, add a camera and set the Constrain Aspect Ratio tick box to true and then the Aspect Ratio to 1.33.

You camera will now be locked to a 4:3 Ratio as seen below:

If you need to lock it to a 16:9 Ratio just use the following value 1.78 instead of 1.33 for the ratio value.

1 Like

thanks, but this is not the Problem. In r.fullscreenmode 0 the 4:3 Image is stretched to 16:9. There are no black Bars.
with r.fullscreenmode 2 it works like in your pictures, but i have performance issues.

In PIE or window mode, it works without problems (its not using fullscreenmode 0). The camera ratio is not the problem, the image just gets stretched to fullscreen when using r.fullscreenmode 0

Ah, in that case I would suggest using a Widget to create the black bars.

Basically a Horizontal Box with 3 sections, then dynamically change their fill depending on the screen height.

The math should be rather basic, basically ClearBoxRatio = Height / 3 * 4 / Width.

Than for the ratio of the bars it will be (1 - ClearBoxRatio) / 2 and set that value for your side bars.

Below is the widget setup:

Key thing for the widget setup is that the Horizontal Box takes up the entire screen and that each border object under it is a variable.

Next we setup the math I mentioned before:

There is probably an easier way to do this but it’s 4am where I am.

Let me know if that matches your needs.

For the rest of your GUI you should be able to nest it inside of the MidClear Border and it should act like the “screen” for your 4:3 ratio.

This was the result I got:

I’m not sure about it. It seems like a great Idea, but in Order to have a “Real” unstretched 800x600 Fullscreen i need to render in 16:9 with 1067x600 and then add your Borders. to get the 800x600. to archive 1280x1024 you need a 1820x1024 Fullscreen and add bars. And since i cannot get the monitor ratio in unreal, i needed a menu-item to select 800x600 4:3 or 16:9 and this is just very complicated.

Maybe i should just go with stretched fullscreen mode, because nobody with a 19:6 monitor will use 800x600 anyway and if you have a 4:3 monitor, the image won’t be stretched.

4:3 would add to the gameplay, since i want my players to move up and down a lot, and 16:9 encourages players to go left and right, because better “sight radius”. But maybe psychology isn’t worth the hitch lul

I really appreciate your Idea, thanks for all the screenshots and the detailed description anyway. =)

@Miroac gave some great solutions to the problem!

Using “Constrain Aspect Ratio” on the camera is the best solution in my opinion, and it does solve your problem, what you are seeing, is if you set your resolution to 800x600 and make your game fullscreen using r.fullscreenmode 0 (which is direct fullscreen) it actually changes the resolution of your monitor to 800x600, this means if you have a monitor which is not 4:3 you will see stretching.

You will have to use a resolution that matches the aspect ratio of the monitor for it not to appear stretched, and that resolution will need to be a supported resolution of the graphics hardware for it to actually use that resolution in fullscreen, 1067x600 will not work unless it is a mode supported by the hardware and it is a non-standard size so it is very unlikely to be supported by default, the end-user would have to add it as a custom graphics mode for it to work.