I'm implementing skeletal animations with Assimp for DX10 following this tutorial :http://ogldev.atspace.co.uk/www/tutorial38/tutorial38.html
For now, I can display the skinned mesh in global pose, filling the matrix palette with identities.
I don't understand the bone transformation explained in this tutorial, that is:
I think it should be :
1) offsetMatrix : to get from model space to bone space
2) scale*rotation*translation : transformation in bone space, get by interpoling animation keys,
3) inverseOffsetMatrix : to get back in model space.
Which one do you think is correct, please?
I tried both, and get incorrect results (abstract art instead of a ... duck )
Animation keys interpolation seems to work, but I wrongly compute the bone transformations apparently.
I suppose I don't understand correctly the aim of the offset matrix ...
[EDITED2] fixed !
in fact the transformation for a node is :
and is for a bone :
In this tutorial it has been said :
If the node does not correspond to a bone then that is its final transformation. If it does we overwrite it with a matrix that we generate.
Actually it's not totally true, if an animation channel is associated to a node, we must also overrite the transform with animated one, even if it is not associated to a bone.
(Anyway, it would be odd that some animations channels would be defined for nothing ....)