I have noticed that the only way to get an Xmesh object to motion blur with Krakatoa is to turn on sub-Sample Geometry.
I did a test where I had a normal Tea Pot, a Tea pot Xmeshed with 1 sample and a Tea pot xmeshed with 10 samples. Only the geo tea pot with Motion blur.
I switched the loading mode to various sections (sub frame velocity offset on the Xmesh with 10 samples) Still nothing.
Switch on Sub-Sample Geo and they all blur the same.
Does this have something to do with Xmesh being a cache files or am I doing something wrong?
So if you animate a teapot by setting Position, Rotation or Scale keyframes and set it as Matte Object, Krakatoa will create motion blur because all it has to do is ask for the new positions on each sub-frame.
But if you add a modifier that deforms the geometry in object space (e.g. Bend with animated Angle), you are now creating a deformation of the mesh that cannot be captured unless the enable the “Sub-Sample Geometry” option in Krakatoa. When you check it, the geometry will be reloaded on each sub-frame again. This means that if the topology of the geometry is also changing, Krakatoa will get the correct shape of the object for each sub-frame sample.
By default, the number of these samples will be equal to the number of particle sub-samples. But if your matte object requires heavy calculations, this can take a lot of time. So for the cases where the topology is NOT changing and you are willing to sacrifice quality for speed, you can let Krakatoa take less samples and interpolate between them. If the mesh is for example Frost, there is a special mode that preserves the topology within the motion blur interval (+/- half a frame) that would allow Krakatoa to update Frost less than once per sub-frame sample.
An XMesh cache is equivalent to a deformation animation. XMesh loads new vertex positions, or interpolates them based on the Velocity channel, if present and non-zero. So an XMesh is like a Teapot placed at the world origin and then animated around using an XForm modifier and other modifiers - the vertices are moving, but the OBJECT IS NOT! Thus, there is usually no Position/Rotation/Scale in the XMesh (unless the XMesh object itself is keyframed to move around - this would be the case when saving XMesh in Object space AND applying the original object animation to the loader in one of the supported ways).
In other words, the only way to capture sub-frame samples of XMesh Loaders in Krakatoa is to enable “>Sub-Sample Geometry”, as you already discovered.