noise to stick to a volume??
9685 6 2- pip31
- 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.
Please see hip file attached. How do I get the noise to stick to the moving sphere?
Thanks,
Pip.
- tamte
- Member
- 8594 posts
- Joined: July 2007
- Offline
- merlino3d
- 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 …
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 …
- jbudsberg
- 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
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
- merlino3d
- Member
- 65 posts
- Joined: Feb. 2013
- Offline
- jbudsberg
- 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
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
- merlino3d
- Member
- 65 posts
- Joined: Feb. 2013
- Offline
-
- Quick Links