Files
bearstonem--openmohaa-vr/code/renderergl2
bearstonemandClaude Opus 5 393b0e3e3d fix(vr): make billboards face the viewer rather than the view plane
Quake's autosprites and MOH:AA's sprite imposters both orient themselves
by adopting the camera's own axes, so every one of them sits parallel to
the view plane. On a monitor that is indistinguishable from facing the
viewer, because the screen is the view plane. In a headset it is not:
turning the head swings every billboard in the level round in unison,
and they visibly spin in place.

They now take the direction from their own position to where the viewer
actually is, built against world up so they stay upright instead of
inheriting the head's roll. Head rotation no longer affects them; only
moving does.

Covers AutospriteDeform, and SPRITE_PARALLEL and SPRITE_PARALLEL_UPRIGHT
in the sprite path - the latter being the foliage imposters that stand in
for static models at a distance, which is why near foliage looked correct
while distant foliage did not.

Still outstanding: some foliage continues to rotate, so at least one more
path orients this way. Left for when movement makes it easier to tell
which effects are misbehaving and why. Autosprite2Deform is untouched: it
pivots around a fixed axis for beams and rails, so it is far less
sensitive to this, and changing it blind would risk breaking effects that
currently look right.

All of this is conditional on a VR view being active, so the flat
renderer is unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-26 17:12:26 -07:00
..
2023-05-24 19:29:36 +02:00
2026-03-11 21:37:57 +01:00
2025-09-07 19:45:51 +02:00
2023-05-08 19:53:53 +02:00
2023-05-08 19:53:53 +02:00
2023-05-24 19:29:36 +02:00
2023-05-24 19:29:36 +02:00
2016-03-27 11:49:47 +02:00
2025-10-19 14:28:05 +02:00
2024-12-20 21:53:33 +01:00
2023-05-08 19:53:53 +02:00
2025-09-07 19:45:51 +02:00
2024-12-01 15:41:48 +01:00
2024-12-21 21:43:29 +01:00
2024-12-21 21:43:29 +01:00