25 Commits

Author SHA1 Message Date
94cecfe810 header: render materials array, material_index, buffer paths 2026-04-12 23:53:34 -05:00
70b46b0dd8 header: bug: input element indices are global, not per-<triangles>
This was never triggered in previous commits because all prior tests
were with Collada files that only used a single vertex format for the
entire file (therefore index=0 is always correct).

3ds Max CAT bones are (very appropriately) exported with no texture
coordinates, and therefore require a different vertex attribute
declaration with a different stride.

Coincidentally, this meant that CAT meshes were rendered with the
correct vertex attribute, while all (e.g: non-CAT, containing texture
coordinates) meshes incorrectly used the CAT vertex attributes, which
resulted in garbled nonsensical renderings with meaningless garbage
vertex data.

This bug alone consumed at least 4 hours of focused debugging
time. Because the Collada file that triggered this also contained a
complex skeleton, I was originally convinced that the "vertex
transformation result is garbage" bug was caused by something more
directly related to the animation/joint transform calculation.
2026-03-31 19:10:13 -05:00
58b9c254f2 collada: explicit namespace name from argv
This also adds a hack for replacing .png with .dds (maybe the run-time
should be responsible for this? perhaps image extension replacement
should be a command-line argument?).

Improved get_node_name_id behavior for <node> elements with no id and
no name.
2026-03-31 19:08:13 -05:00
6c0bb1fe12 collada: use collada::types namespace 2026-03-31 13:03:07 -05:00
e41f8667f0 collada: lua: emit uri in image table 2026-02-24 16:53:18 +00:00
727f5ff8d7 collada: add support for lua source generation 2026-02-23 19:23:32 +00:00
4603ebcec2 collada: factor out C++ code generation to cpp_header module 2026-02-23 05:32:27 +00:00
a7dfd1b782 collada_scene: load vertex/index buffers from descriptor 2026-02-02 21:57:50 -06:00
fcbaf7ab66 collada: partial support for cameras 2026-02-02 19:53:55 -06:00
a672190459 render instance controllers 2026-01-30 10:10:31 -06:00
fda7c28b2c collada: emit joint weight vertex buffer 2026-01-30 09:47:28 -06:00
acc14843cd collada: emit instance controllers, skins, inverse bind matrices, joint indices 2026-01-30 00:18:10 -06:00
af165a3843 collada: render make and resource files 2026-01-29 18:41:34 -06:00
5f0f933224 collada/header: render effect texture and image data structures 2026-01-29 17:44:22 -06:00
4d952b0a90 collada/header: add lights
This also automates the collada header/buffer build process.
2026-01-28 21:07:13 -06:00
683115e0c1 collada: implement animated rotate and scale
This also improves the correctness of channel source interpretation.
2026-01-27 22:02:25 -06:00
b0906ecdc6 collada_scene: linear interpolation 2026-01-27 14:43:45 -06:00
e4bb6c2616 collada/header: precalculate fully linearized node list 2026-01-27 13:05:43 -06:00
ff5d2da6dc collada_scene: add mutable node transforms 2026-01-26 23:49:13 -06:00
b052718d7e collada/header: reference node transforms by index rather than by type 2026-01-26 21:19:53 -06:00
f939e70bf9 collada/header: generate animation channels 2026-01-26 20:47:22 -06:00
b8cea38d9f collada_scene: basic scene rendering 2026-01-26 13:21:12 -06:00
67820fce2b collada: add main frontend 2026-01-25 23:31:14 -06:00
03b0299415 collada/header: generate reasonably complete header for instance_geometry nodes 2026-01-25 22:04:24 -06:00
2a0d4dd20b initial collada metadata data model 2026-01-25 00:15:50 -06:00