Skinwrap for KMY?


#1

Is there any chance of getting the awesome looking Krakatoa Skin Wrap WSM ported over to KMY?

thinkboxsoftware.com/krak-skinwrap-wsm/

I don’t see any way to reproduce this type of effect in KMY at the moment, but it would be very powerful to have this ability.


#2

It is not in our immediate plans, but thanks for the suggestion!

A while ago I managed to recreate a somewhat similar effect using Magma in Krakatoa MY, but it performed only rigid (single reference point) deformations.

Basically I took a deforming mesh (e.g a Cylinder with a Bend deformer) and created a reference mesh on frame 1 without deformations.
I then created a point cloud (e.g. a PRT Volume) from the non-deforming mesh.
Then in the Magma, I used NearestPoint to find the closest point on the surface of the reference mesh, which includes the Barycentric Coords, Face Index, Face Normal and Distance. I then Queried the point in the Face with the same index and BaryCoords in the deforming mesh, took its Normal multiplied by the Distance from the previous calculation and added to the face point’s position to produce the new deformed position. I set the Position channel to the result, and the particle moved to where that point in space would deform according to the relationship between the non-bending and the bending meshes…

If you would take an animated particle system or PRT sequence, it would still work as long as the deforming mesh does not change topology vs. the reference mesh. So it would be useful for deforming particle simulations after the fact.

I can provide an example scene if you are interested. But it is not nearly as cool as the Krakatoa MX skinwrapping…


#3

Cool, thanks much fr the quick response. I’d love to check out an example scene file to be able to dissect the magma flow and learn that methodology.


#4

Thanks again for the suggested approach. I got something working using that methodology, here is a quick screengrab of the magma flow and rendered result on a deforming cyclinder. There is some banding visible down the length if edge loops, but I’ve been able to minimize this in later versions where I scrambled the topology a bit to prevent long contiguous edges.



#5

Nice job!

I wonder if using the FaceNormal output of the FaceQuery makes any difference?
The NearestPoint finds the closest distance to the face’s surface which would be orthogonal to the FLAT face, but then you are offsetting based on the Smoothed Normal in your flow. I suspect that using the Face normal might produce less banding, but I could be wrong…


#6

Thanks! Yes, I’ve updated the flow to use the face normal output and the result definitely has less banding. The topology scramble trick still helps, and with vec noise blended into the world pos lookup at the beginning of the flow the result has almost no visible banding.

Next up, finding a way to get accurate motion blur from the resulting particle movement!


#7

The Krakatoa SkinWrap handles Velocities the same way.
Take the Position channel, Add to it the Velocity Divided by the FPS to get where the particle will be a frame later (our Velocity is in units per second, so you want to know the next frame instead of a whole second later).
Now take the resulting value (think of it as “Future Position”) and process it the same way as you did with the particle Position.
The result will be the position of the particle a frame later, but in the new deformed space.
Now Subtract the deformed Position from the deformed Future Position, multiply the resulting vector by the FPS value, and output as Velocity.

This should result in Velocities that deform with the particles…