Hey!
For the last weeks I've been working on parsing collada files for use in my personal project. Quite recently I managed to get GPU skinning kind of working, there is only one flaw.
The mesh and the rig seems to load correctly and the model does not become deformed in the way it usually would if there was any fundamental errors in the math or shader.
The problem is that the animations I load seem to play correctly although the rotations that are applied seem to be inverted somehow. The animations work fine in Blender(which is where I create both model, rig, and exported .dae file). Here is a picture of the same keyframe side by side, one in Blender and one in my engine:
(Edit: The only bones that seem to transform correctly are both of the upper-legs which makes this whole thing even more strange)
At this point my limited knowledge in matrix math crumbles. I have tried to invert every axis in every way in the animation-transform that is applied to the joint, but the result were mostly extreme deformations.
I use Directx11 and to my knowledge they use row-major system. I make sure to Transpose the skinning matrices before I pass them to the vertex shader. Feel free to ask if you need any more info on the implementation part.
Any hints or thoughts are greatly appreciated!