kondrak / vkQuake2

id Software's Quake 2 v3.21 with mission packs and Vulkan support (Windows, Linux, macOS, FreeBSD, Raspberry Pi 4)
GNU General Public License v2.0
896 stars 91 forks source link

Gun position dictated by aspect ratio, doesn't scale well with 16:9 #114

Closed Tintin-Asterix closed 3 years ago

Tintin-Asterix commented 3 years ago

The gun model position scales with the horizonal size, it should stay the same (at least there should be an option toggle this behaviour). Running the game in 21:9 aspect ratio is even worse, the gun model can hardly be seen.

Yamagi doesn't do this, it preserves the position no matter how wide the FOV or screen is. In Yamagi is the model not tied to the FOV value?

"Yamagi Quake II has a different FOV calculation then the original
client. Yamagi Quake II determines the optimal FOV (horizontal and
vertical) with the *Horplus* algorithm and the gun is rendered always
with a static FOV of 80, the original client only had a vertical FOV
applied to everything.

* The FOV itself can be altered through the *Video* menu or the `fov`
  cvar. That gives a smaller or wider FOV, but not the classic Quake II
  look because the Horplus algorithm is still active.
* The Horplus algorithm can be disabled by setting `horplus` to `0`.
* The gun can be rendered with the global FOV by setting `r_gunfov` to
  the same value as `fov`."

Screenshots taken at 90 FOV.

2020-10-16 10_43_54-Quake 2 (Vulkan) x64 2020-10-16 10_44_31-Quake 2 (Vulkan) x64 2020-10-16 11_01_15-Quake 2 (Vulkan) x64

Yamagi retains gun position in super wide: 2020-10-16 11_16_23-Yamagi Quake II 7 43 - OpenGL 3 2

mjr4077au commented 3 years ago

For 16:9, I'd set the FOV to 106.25. There'd probably be a bit of work to scale it I'd imagine.

kondrak commented 3 years ago

Hi!

I've noticed this behavior before but I decided to leave it as it is, since I want to retain as much compatibility with the original game behavior as possible (unless it's a game breaking problem or something I broke ;) ). Fixing problems like these is also a bit beyond the scope of this project but I'm always open to Pull Requests if you feel like fiddling with this.