Autorotate loses yaw at vertical pitch and changes model scale
- Dominant language
- Python
- Stars
- 645
- Forks
- 59
- PR merge metrics
- No merged PRs in 30d
Description
## Description
Entity OBJMC models have two related autorotate inconsistencies:
1. At vertical pitch, the facing vector has no horizontal projection. Deriving yaw only from `facing.xz` therefore produces `atan(0, 0)`, making horizontal rotation snap to zero when looking straight up or down.
2. The autorotate branch multiplies decoded positions by the carrier quad scale, while autorotate `off` does not. The same OBJ is rendered at different sizes depending on the autorotate mode.
## Reproduction
1. Generate the same OBJ with autorotate modes `off`, `yaw`, `pitch`, and `both`.
2. Render the models as entities or equip them in the head slot using identical item model geometry.
3. Compare `off` with an enabled autorotate mode: their sizes differ.
4. Look straight up or down, then rotate horizontally: yaw-enabled models snap toward yaw zero.
## Expected behavior
- All autorotate modes use the same carrier scale.
- Yaw remains continuous at vertical pitch by using the carrier quad orientation when the facing projection is degenerate.
## Environment
- Minecraft Java 1.21.11
- Windows 11
- Vanilla core shader path (Fabric present, no shader mod involved)
A fix and regression tests are being added to #117.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at the autorotate branch that decodes positions and applies the carrier quad scale, then inspect how yaw is derived from the facing vector. The fix is complete when all autorotate modes use the same scale and yaw remains continuous at vertical pitch; regression tests are being added to issue #117.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- computer-graphics, game-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100