noise to stick to a volume??

   9685   6   2
User Avatar
Member
17 posts
Joined: July 2012
Offline
Can someone tell me how to stick noise to a moving volume? I just can't get it to work. I'm familiar with using a rest position to stick textures to geometry etc. but just can't get noise to travel with a moving volume.

Please see hip file attached. How do I get the noise to stick to the moving sphere?

Thanks,

Pip.

Attachments:
volume_noise.hip (163.8 KB)

User Avatar
Member
8594 posts
Joined: July 2007
Offline
you almost had it

here is fixed file for the rest usage

(and of course if you translate volumes afer generating noise it would stick even without rest, but I guess it's not your case in real scene)

Attachments:
volume_noise_fix.hip (127.4 KB)

Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
65 posts
Joined: Feb. 2013
Offline
wow, that's really good!
It's there a way to make the noise stick to a deforming geometry? like a character? I've tried using the same technique with the toon character in a great animation (the torso RZ 20° in 10 frames) with no result.
Thanks in advance!

The only way I can think is to subdivide the geometry, create an attribute and add a noise to that attribute in vopsop, but you loose all the detail I suppose. Or maybe metaballs could be the answer? Create metaballs on every point, make a rest, as you've done for one geo, to each one and maybe it works … I have to try it …

So the metaball strategy in the practice doesn't have any sense … eventually I'll have the same problem. So the investigation continues …
User Avatar
Member
92 posts
Joined: Aug. 2010
Offline
to get temporally-coherent noise in a deforming volume, you have to do a bit of work; the key is that you need coherent rest data that matches up with the volume, then you can do the noise lookup with rest like you're doing now.

as such, you could simply use a rest attr on the deforming mesh, however for volumes you likely need data inside the geometry.

hence, i do this via scattering points inside the rest geo, calc the rest, then wrap deform the points via the deforming geo. the volume looks up the corresponding rest coordinate on the deformed points and then samples the noise at the points' rest position.

i hope that helps!

-jeff

Attachments:
volume_noise_coherent.hip (337.5 KB)
tmp.jpg (20.2 KB)

User Avatar
Member
65 posts
Joined: Feb. 2013
Offline
Hi Jeff, that's awesome! It's exactly what I was searching for and even more!
Many thanks!!!

Now, what part of maths I have to learn well to understand exaclty what happens in the vopsop? I would love to understand it and use for other needs.

Marco
User Avatar
Member
92 posts
Joined: Aug. 2010
Offline
to “wrap deform” points to a deforming mesh, first you need to calculate a change of basis matrix [en.wikipedia.org] that maps the rest space of the mesh to the current frame of that deformed mesh (yay linear algebra).

you do this for every point on the mesh, but lets just consider one point on the rest mesh for simplicity. find 2 neighbors of this point and create normalized vectors towards each. cross those, then cross that with one of the first vectors. stuffing these vectors into a matrix yields an orthonormal basis. hooking in the position of our point is now a complete description of the transform at this point (M_ref).

we do this same process for the same point, but at the deformed frame (M_def). now, to describe the change of basis from rest to deform space:

mymatrix = invert(M_ref) * M_def

and to move any point from rest to deformed space:

P_new = P * mymatrix

we can now describe how to transform points from rest to deformed space at this frame, but what if a point isn't exactly at our rest position? this is why we interpolate the nearest change of basis matrices with a point cloud filter.

i hope that helps!

-jeff
User Avatar
Member
65 posts
Joined: Feb. 2013
Offline
It really help to understand! Wonderful!

And also it says to me that I HAVE to start a good course in linear algebra!

Many thanks Jeff!
  • Quick Links