Commit Graph
29 Commits
Author SHA1 Message Date
alphafetusandClaude Sonnet 5 4d9a0c8b43 feat: route mesh access through AssetManager instead of MeshRegistry
AssetManager now owns scene loading and single-model registration
(MeshRegistry::register_mesh appends a mesh into the shared buffers
and rebuilds them), and exposes vertex/index buffers and mesh lookups.
app.rs and RenderBatch now go through AssetManager rather than talking
to MeshRegistry directly, so material lookups can be added there later
without touching callers again.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01986QNHM1cUsnRskKvBbbuo
2026-09-10 11:42:09 -04:00
alphafetusandClaude Sonnet 5 9a93c0d189 feat: add submesh support for mesh loading and rendering
Meshes now track per-primitive submesh ranges (index range + source
material index) instead of one flat index range each. glTF meshes get
one submesh per primitive; OBJ meshes get a single default submesh
until .mtl loading exists. MeshRegistry rewrites these into offsets
into its shared index buffer, and the renderer issues one draw call
per submesh so each can later be bound to its own material.

Also fixes app.rs to match the current MeshRegistry API (load_scene
instead of the removed from_scene, and Option-wrapped buffers).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01986QNHM1cUsnRskKvBbbuo
2026-09-10 11:31:05 -04:00
alphafetusandClaude Sonnet 5 fb64fa50e4 wip: checkpoint mid-refactor of asset loading before submesh work
Moves mesh/material loaders under src/assets/loaders, renames Mesh to
MeshHandle, and begins scaffolding the material loader. Known-broken
build state (MeshRegistry::from_scene call site and asset_manager
mesh registration are out of sync) — committed as a rollback point
before implementing submeshes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01986QNHM1cUsnRskKvBbbuo
2026-09-10 11:20:39 -04:00
alphafetus 363c21136d feat: begin implementation of material loader 2026-09-03 12:21:47 -04:00
alphafetus 20c1d2c0c8 docs: update rotation to reflect radians 2026-09-03 11:19:00 -04:00
alphafetus 284476dac7 chore: change default camera angle 2026-09-02 22:38:11 -04:00
alphafetus b285671165 feat: properly implement GTLF/GLB loading 2026-09-02 22:29:55 -04:00
alphafetus 8baf537be9 feat: construct scene transforms properly 2026-09-01 14:55:22 -04:00
alphafetus a97a14a254 feat: PC change for gltf load algorithm change 2026-09-01 14:22:46 -04:00
alphafetus 508a69d385 chore: minor changes to scene and app error logging 2026-08-27 11:24:10 -04:00
alphafetus 8683f8b565 feat: additional implementation of renderer 2026-08-25 10:31:36 -04:00
alphafetus 639875b603 feat: switch to gltf crate and remove easy_gltf
This is because easy_gltf did not expose texture information, which the gltf crate did.
2026-08-13 07:12:21 -04:00
alphafetus 2d8b895841 chore: check number of instances before mapping to new type 2026-08-08 13:47:23 -04:00
alphafetus de059012f4 chore: add test models 2026-08-08 13:44:22 -04:00
alphafetus 5eb71f06cf feat: implement gltf loader 2026-08-08 13:43:52 -04:00
alphafetus ba9b677545 feat: implement MeshLoader
This loader abstracts mesh loading logic into a series of individual file handlers. Each handler is chosen based on the extension of the file to be loaded.
2026-08-07 23:46:12 -04:00
alphafetus b7e31732e6 feat: add UVs to shader pipeline 2026-05-17 11:47:04 -04:00
alphafetus 170a7ad645 docs: add some comments for App functions 2026-05-17 11:38:18 -04:00
alphafetus a7deec14a5 chore: removed validation layer requirement for functionality on my laptop 2026-05-17 11:35:14 -04:00
alphafetus 44cd6fff96 chore: small optimizations 2026-05-14 17:22:09 -04:00
alphafetus 14fb61a4d5 feat: render with depth checking 2026-05-14 15:32:14 -04:00
alphafetus a1aea8e2a5 fix: rendering now has correct viewport height and width 2026-05-10 22:41:08 -04:00
alphafetus 41ed63e732 fix: rendering now displays using camera uniforms 2026-05-10 22:15:39 -04:00
alphafetus 2a1beaca43 chore: add temporary testing meshes and scene 2026-05-10 17:33:24 -04:00
alphafetus 8b76fdb6ae feat: implement a more modular graphics pipeline 2026-05-10 01:04:42 -04:00
alphafetus 6fe8ff2af0 feat: implement mesh registry and buffer allocation 2026-05-08 16:51:34 -04:00
alphafetus 0661494b0f style: rustfmt run 2026-05-08 16:51:18 -04:00
alphafetus e7659ba387 feat: attempt to implement math library
Adds many files, but the next thing is to implement the MeshRegistry properly.
2026-05-08 08:02:38 -04:00
alphafetus 9e4f531bd4 chore: initial commit 2026-04-16 11:45:26 -04:00