the blending itself is done on the CPU, even for hardware skinning blending is “baked” into the transformation matrices passed to the shader.
well…the hard way. There is no abstraction for different sorts of blending so the linear blending is hard coded in AnimChannel.update(). I guess you’d have to plug you code in there so that means you’d need to pull the JME repo and make your own version.
I’m creating bachelor thesis’s project which involves me to implement dual-quaternion blending which removes most of the artifacts caused by linear blend skinning and other methods (here is a paper: http://www.seas.upenn.edu/~ladislav/papers/sdq-i3d07/sdq-i3d07.pdf). I would like to create this blending method in JME using GPU or CPU and if I’m successful it would be a pleasure to me to share it with you
Heh ok I read the paper abstract and we’re not talking about the same thing. I think there is a misunderstanding
Blending in JME is blending two bones animations together in order to have smooth transition between the two, which is apparently not what you’re talking about.
The paper is about interpolation between keyframes in bone animations, and the thing is…we don’t have any.
JME uses “baked” animations, every frame has a stored transformation for each bone. The interpolation is done during the export process in whatever pipeline the user chose.
The idea is to avoid calculation at runtime at the expense of more memory.
That said, we have a blender exporter maintain by @Kaelthas, and I guess it does the interpolation when importing a bone animation, but I can’t tell what method is used.
@Shot511 said:
I'm creating bachelor thesis's project which involves me to implement dual-quaternion blending which removes most of the artifacts caused by linear blend skinning and other methods (here is a paper: http://www.seas.upenn.edu/~ladislav/papers/sdq-i3d07/sdq-i3d07.pdf). I would like to create this blending method in JME using GPU or CPU and if I'm successful it would be a pleasure to me to share it with you :)
I think I’m gonna develop some hardware solution for linear blend skinning and dual-quaternion skinning using shaders and shader nodes (I hope it’s possible)