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.
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.