Add transform and camera with movement #38

Merged
akadmin merged 2 commits from feature/Implement-Camera-System-with-Uniforms into main 2026-04-13 01:21:10 +00:00
Owner

Closes #12

Closes #12
Add transform and camera with movement
Some checks failed
CI / build (pull_request) Failing after 7m21s
f7249c1940
akadmin added this to the Foundation milestone 2026-01-18 18:10:40 +00:00
Change benchmark code to work with camera
All checks were successful
CI / build (pull_request) Successful in 7m53s
ec4d5720fb
akadmin force-pushed feature/Implement-Camera-System-with-Uniforms from ec4d5720fb
All checks were successful
CI / build (pull_request) Successful in 7m53s
to 5b31e69e2a
All checks were successful
CI / build (push) Successful in 8m39s
CI / build (pull_request) Successful in 3m2s
2026-04-13 01:03:12 +00:00
Compare
Replaces the hard-coded z=-3 view with a navigable orbit camera.

- Add EditorCamera to src/math.rs: orbit (right-drag), zoom (scroll),
  pan (middle-drag) all operate on a target/yaw/pitch/distance model
- Add mat4_look_at and build_model helpers to math.rs
- Split vertex shader MVP into model push-constant + CameraUniform
  (view + proj) at descriptor set 1, bound once per frame
- render_offscreen now accepts pre-computed view/proj matrices and
  uploads them as a per-frame uniform buffer
- SharedState gains a camera: EditorCamera field
- viewport::show handles mouse input to drive camera navigation;
  navigation is suppressed in Runtime mode
- 9 new unit tests for look-at and EditorCamera behaviour

ADR: docs/adr/adr-0009-editor-camera-with-uniforms.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: correct inverted vertical orbit direction on right-drag
All checks were successful
CI / build (pull_request) Successful in 3m2s
6167ba36b0
Dragging down now moves the camera eye above the target (looking down)
instead of below it (looking up).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
akadmin deleted branch feature/Implement-Camera-System-with-Uniforms 2026-04-13 01:21:11 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
akadmin/NemesisEngine!38
No description provided.