Positioning joints
I have to apologise in advance. It wasn’t until I viewed the screenshots after-the-fact that I realised how hard it is to see the points and connections. I didn’t reset the size of the points to 4x4 after trying to figure out if the points were converging into one point or if they were tightly spaced apart. To see the points (they’re all green) you may need to view the images separately and zoom in.
The first attempt at taking the bind position into world space failed without much fanfare. I messed up the matrix multiplication order, after switching it around (from world * inverse bind pose to inverse bind pose * world) they appered as they do in the next screenshot.
As you can see, the joints are now upside down, which is correct, but there are two missing due to not multiplying all the matrices in the chain (I’ve since switched over to using the world matrix instead of concatenating the full chain).
After fixing the hierarchy, they were still upside down. To see if I could get a point rendered, I created a point at < 2, 1, 0 >, you can see the trail of points that are being rendered relative to the other matrices in the chain.
With all of that assembled, I made a dummy point to render which was located at < 0, 1 * joint index, 0 >.
Now I could get back to where I was last month.
I’m currently writing the API for animation. Next time I should have at least the positioning of the skeleton done, whether or not it will be animated is another issue. Getting the vertices weighted will be next after that.