Skip to content

Migrate world space to right-handed (-Z forward) and .fscene to v6 - #499

Open
bdero wants to merge 6 commits into
masterfrom
bdero/right-handed-v6
Open

bdero wants to merge 6 commits into
masterfrom
bdero/right-handed-v6

Conversation

@bdero

@bdero bdero commented Oct 10, 2026

Copy link
Copy Markdown
Owner

Migrates the engine world and view coordinate space to right-handed (+X right, +Y up, +Z out of the screen, -Z forward) and bumps the .fscene document format to v6. glTF assets now import directly without a scene-root or baked Z reflection, PerspectiveCamera uses a right-handed view-projection matrix so a camera at +Z looking toward the origin places +X on the right side of the screen, and the .fscene loader automatically migrates legacy v2 through v5 documents at load time by conjugating skin inverse bind matrices, reflecting animation tracks, and applying a root Z reflection.

@bdero bdero added documentation Improvements or additions to documentation rendering Behavior when preparing or drawing geometry to the screen. dart Pull requests that update Dart code labels Oct 10, 2026
@argos-ci

argos-ci Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Argos notifications ↗︎

Build Status Details Updated (UTC)
ios (Inspect) 👍 Approved by bdero 43 changed Oct 11, 2026, 7:51 AM
macos (Inspect) 👍 Approved by bdero 43 changed Oct 11, 2026, 7:48 AM

bdero added 5 commits October 10, 2026 17:28
Place the semantics tests' behind-camera and depth-order nodes relative to the +Z default camera, aim the area_light smoke panels with lookAtFrom and swap the irradiance_field bleed sides, and derive the audio listener forward from local -Z.
Adds environmentMirrorZ to environment resources, folded into the environment sampling transform as a Z reflection so migrated documents keep image and procedural skies aligned with their reflected content. The v5 to v6 migration sets it on every environment, reflects prefab overrides of component vector properties, physics gravity and character up vectors, and remaps the editor camera azimuth.
glTF data is already in native space, so the policy enum and its conversion hooks were constant identity. The 0.25.0 and scene 0.5.0 CHANGELOG entries describe the convention change and migration, the README and skill snippets place cameras on +Z, and the changed skills bump their versions.
glTF assets face local +Z while the engine aims -Z, so lookAt, lookAtFrom, and lookAtTransform take modelFront to turn that side toward the target. The basis is the same rotation turned half a turn about its own Y, so it stays proper and keeps up upright.
@bdero
bdero force-pushed the bdero/right-handed-v6 branch from fae33f7 to 5360603 Compare October 11, 2026 00:34
Azimuth 0 puts the eye on the target's +Z side, the front of a glTF model, and pi looks from behind; the constructor doc never said which side was which.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dart Pull requests that update Dart code documentation Improvements or additions to documentation rendering Behavior when preparing or drawing geometry to the screen.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant