Page 3 of 3

Re: r_newrenderer pixel ratio support - partial implementation (for now)

Posted: Thu Nov 17, 2016 22:52
by dpJudas
Rats. I knew the hack of just modifying viewheight on the fly was going to break something somewhere. :)

About the upward shifting, I did wonder a bit about that. But when I switched r_newrenderer off the old renderer generated the exact same output. Maybe my viewheight patching psyched the old renderer.

Re: r_newrenderer pixel ratio support - partial implementation (for now)

Posted: Thu Nov 17, 2016 22:56
by Rachael
Yes, it actually did. Start a map without the new renderer on but turn the status bar on - then switch. You'll see it break immediately.

Re: r_newrenderer pixel ratio support - partial implementation (for now)

Posted: Fri Nov 18, 2016 2:00
by dpJudas
Okay, got the status bar working now. Ugh, that was painful. Had to support specifying a viewport partly outside the screen to do it (the same thing as GZDoom is doing).

Re: r_newrenderer pixel ratio support - partial implementation (for now)

Posted: Fri Nov 18, 2016 2:18
by Rachael
Doom is full of silly quirks like that. >_<

I know it's a pain in the ass to support us religiously play-with-the-status-bar-all-the-time folk but it's appreciated. :)

Re: r_newrenderer pixel ratio support - partial implementation (for now)

Posted: Fri Dec 09, 2016 1:21
by Gez
dpJudas wrote:Okay, so the world is vertically scaled by 1.2 for reasons only Carmack knows. :)
320x200 logical aspect ratio of 4:3 physical monitors means that the image was stretched to the equivalent of 320x240.

So what happens when you render on square pixels, rather than stretched pixels? As long as you can't actually change the view pitch (and with Y-shearing you're not actually changing the view pitch, projection is still horizontal) then you can get away with just stretching the rendered image. But if you start getting a polygonal renderer that lets you look up and down for real, then stretching the rendered image just doesn't work anymore. Not stretching also doesn't work, though. The only solution? Stretch the world. That way things still look like they should, and you can look at them at weird angles.

TL;DR: blame Mode 13h and Mode Y; this all would have been avoided if Doom had been coded in Mode X instead.