Wasn't sure where to post this so feel free to move…
Does anyone know why [the latest version of] Blender seems to mangle its coordinate systems when exporting to Collada? I'm exporting a simple model (which is a new editing widget for my engine):
You can see that Z is up, X is right (and -X is left) and Y is forward. When I export this model from Blender to Collada, it does something very odd. I added a small box just above the blue cone to see how it was being manipulated, like this:
This is how it looks when I export it and load it into my engine (my engine doesn't do anything to the vertices, and the transformation matrix is identity):
You can see that although the geometry initially looks roughly the same, what's happened is a negation of the Z axis (in Blender, i.e. up) and a rotation of 90 around X.. or possibly some other combination. This is partly because Blender is Z up and I work in Y up (Direct X). It's not quite as straight forward as that though.
What I find really hard to get my head around is how the Global Orientation settings work in the Blender Collada Export window - they don't seem to really make sense to how the object is exported. I've tried all combinations of the forward axis and up axis and I can't get it into Collada looking as it should (or as least as I want it).
This must be a known issue unless Collada is so seldom used nowadays that they've given up on maintaining the export plugin. If Collada is dead, what are people using?
What I also tried was exporting from Blender as Collada, converting that to FBX on a few of the conversion websites, e.g. anyconv.com and then viewing that FBX in Windows 3d Viewer and, although the viewer shows it pivoted on the x axis by 90 degrees, the actual mesh data is correct:
After a few more tests with very simple boxes, what I've found is that Blender exports Collada data, no matter how you change your orientation settings, not in keeping with its own coordinate widget. A straight export with default settings (Z up, Y forward) seems to not only switch Y and Z but also to reverse the Z coordinates. So if I export and change the Global Orientation settings to Z forward and Y up, the orientation of the object is correct but the X coordinate is negated.
I need a lie down…