Page 1 of 1

Vertical stretching

PostPosted: Mon Sep 23, 2019 1:06 pm
by Iniquitatis
Question to the developers: is there any reason to keep this 1:1.2 aspect ratio as of today, given the fact that GZDoom already became a completely modern source port, which uses shaders, supports Vulkan, has no 320x200 video mode, etc.?

To illustrate the problem:
  1. This is the default aspect ratio. The BFG ball looks like an egg, the doors are a little bit tall, and so on.

  2. And I can prevent it by setting Force aspect ratio to 16:10, so everything will look perfectly fine.

  3. ... Until I look up/down, where the level geometry will be distorted by X-axis.

  4. And if I set the Force aspect ratio back to Off, the level geometry becomes normal, but the sprites are going to be stretched vertically again.

Or, at least, how can I prevent it, for example, in a new TC/game, which is built on top of GZDoom?

Re: Vertical stretching

PostPosted: Mon Sep 23, 2019 2:14 pm
by Hellser
You might want to give this a read, then. It'll explain why GZDoom has vertical scaling. As for an option to remove it, you might want to try and request it as a feature.

Re: Vertical stretching

PostPosted: Mon Sep 23, 2019 3:25 pm
by Iniquitatis
Well, thanks, but I'm already aware of why (and how) the image is being stretched. :)
Point of this thread is a little bit more "abstract": what's the reason of keeping this behavior? I mean, I don't think that GZDoom is still targeting to be visually comparable to vanilla Doom (see above).

Re: Vertical stretching

PostPosted: Mon Sep 23, 2019 4:01 pm
by Hellser
I think the reason is that it's a standard among all other source ports and all players and modders are expecting this behavior. Otherwise, there will be a lot of bug reports that GZDoom doesn't look like PrBoom, EDGE, Zandronum, ZDoom, Vavoom, Eternity and that everything's squished / doesn't look right / there's no aspect ratio correction. (am I missing any other? :P)

I can see this being an option for modders through an GAMEINFO flag.

Re: Vertical stretching

PostPosted: Mon Sep 23, 2019 5:49 pm
by Iniquitatis
Hellser wrote:I think the reason is that it's a standard among all other source ports and all players and modders are expecting this behavior. Otherwise, there will be a lot of bug reports that GZDoom doesn't look like PrBoom, EDGE, Zandronum, ZDoom, Vavoom, Eternity and that everything's squished / doesn't look right / there's no aspect ratio correction. (am I missing any other? :P)

I can see this being an option for modders through an GAMEINFO flag.


Ouch, now I feel stupid. I'm always forgetting that original Doom assets made with this "correction" in mind. This egg-like BFG projectile always confuses me. :mrgreen:

Anyway, yeah, there's already PixelRatio property for the MAPINFO lump, but it doesn't prevent, for example, PSprites from being aspect corrected. What I'm looking for is an option to prevent engine from doing any kind of vertical stretching, be it the HUD, PSprites, world sprites, models, level geometry, etc., so every asset that I made looks in-game just as intended.

Re: Vertical stretching

PostPosted: Mon Sep 23, 2019 6:14 pm
by Hellser
Probably a combination of PixelRatio and some ZScriptery that scales actors and psprites vertically down by 0.8 if you want a 1:1 ratio. As for the ZScript part - I don't know anything about it. But given that there's already so much that ZScript can do, I won't be surprised if this is doable.

Re: Vertical stretching

PostPosted: Mon Sep 23, 2019 8:46 pm
by Rachael
The BFG ball - what an odd asset to focus on.

I wonder if you've looked at some of the others? The BFG is more of the exception than the rule.

I suggest you take a look at this: https://doomwiki.org/wiki/Aspect_ratio

I very much disagree with Hellser about why GZDoom does 1:1.2. It isn't because we'd get reports about it not looking like PrBoom or other source ports - it is because it is the correct way to render Doom. Doom was designed for a canvas where each pixel was stretched 1:1.2. Even if not every asset doesn't fit this perfectly (the BFG and Doom Imp projectiles are good examples of this), many more assets were.

For example: The status bar mug shot was very clearly designed with the stretched aspect ratio in mind. The Soul/Mega/Invulnerability spheres will look out of place if they get squashed, too.

Remember first and foremost: This is a source port for a very old DOS game. And while there are many features that allow it to be used as a game engine for more modern games, it still has its roots in that very game - and that is something that it cannot cut away from, without losing its actual purpose.

That being said though, HUD sprite scaling is something that, in my opinion, should be there as a modder option similar to PixelRatio, and therefore, as Hellser said - should be suggested.

Re: Vertical stretching

PostPosted: Tue Sep 24, 2019 2:08 am
by Nash
As Rachael might already know - I was ranting about the HUD sprite scaling thing in our private Discord the other day. I think it's an oversight. Yes, it should be customizable, because my project doesn't use 1.2 pixel ratio, and every currently-available solution is work-around-ey (and doesn't even work on a practical scale). :)

PixelRatio already works to scale the 3D view, but HUD weapon sprites seem to remain hard-coded to be drawn at 1.2 ratio.



Re: Vertical stretching

PostPosted: Tue Sep 24, 2019 2:24 am
by Iniquitatis
Not only the BFG ball, but pretty much every round thing and projectile, and it's getting much more visible in various mods, where the creators didn't bother to scale their assets according to the aspect ratio correction.
(Also, it's just getting on my nerves, when my precious sprites are being distorted by some cruel correction. :3: )

Sure, it's a source port for an old game, but it's also already evolved into some kind of a customizable game engine for the sprite-based projects (judging by the count of mods/TCs), and it seems reasonable to take such usage into consideration.

Well, anyway, thanks for the answer.

UPDATE:
Missed the Nash's message.

Nash wrote:... my project doesn't use 1.2 pixel ratio, and every currently-available solution is work-around-ey (and doesn't even work on a practical scale).

This. I'm on the same boat, unfortunately.

Re: Vertical stretching

PostPosted: Tue Sep 24, 2019 9:35 am
by Rachael
Iniquitatis wrote:
Nash wrote:... my project doesn't use 1.2 pixel ratio, and every currently-available solution is work-around-ey (and doesn't even work on a practical scale).

This. I'm on the same boat, unfortunately.

The first step is usually making a thread here.

Iniquitatis wrote:Sure, it's a source port for an old game, but it's also already evolved into some kind of a customizable game engine for the sprite-based projects (judging by the count of mods/TCs), and it seems reasonable to take such usage into consideration.

Such usage already *is* taken into consideration. But it's not the default behavior, and it never will be, it's up to you to manually set it. As for the HUD sprites though - I assume you know what must be done about this?

Re: Vertical stretching

PostPosted: Wed Sep 25, 2019 6:57 am
by Gez
in the original Doom assets, pure pixel art spheres tend not to have been made with ARC in mind, because the spherical outline was just done using Deluxe Paint's circle tool, which itself didn't take the screen aspect ratio into account and assumed square pixels. However, all digitalized art -- be they scan from paper or captured photos from their little action figure studio -- does take ARC into account and require it to look right.

Titlescreen, mugshot, and monster sprites will trump BFG ball 100% of the time.