sunantha Posted December 19, 2009 Author Share Posted December 19, 2009 see attached. Its a hacky nearest-point-on-surface solution. Dunno how it would work with a character. Thanks cpb. I will study your hip file. cheers s Quote Link to comment Share on other sites More sharing options...
anim Posted December 20, 2009 Share Posted December 20, 2009 ... If you don't mind can you please explain me how things work in the vopsop, esp the matrix bits. ... the matrix bits are simply Transformation matrices in compute_transform VOP, the rotation matrix is computed and applied to points then the translation vector is computed then those informations are transfered to rest points with attrib transfer SOP and in apply_transform VOP the Transformation Matrix is computed which consists of rotations and translation and is applied to rest points to deform them there is also a switch in apply_transform VOP which I suppose should switch between transforms from transfer_transform_near/transfer_transform_far, but according to the condition the transfer_transform_near is never used (or i've missed something) you can simplify this by computing whole transformation matrix in compute_transform and export it as matrix(16 floats) attribute called Transform or something then in Attrib transfer SOP transfer just Transform attribute and in apply_transform just multiply P with that attribute look at the file testRat_fix2.hipnc Quote Link to comment Share on other sites More sharing options...
sunantha Posted December 21, 2009 Author Share Posted December 21, 2009 the matrix bits are simply Transformation matrices in compute_transform VOP, the rotation matrix is computed and applied to points then the translation vector is computed then those informations are transfered to rest points with attrib transfer SOP and in apply_transform VOP the Transformation Matrix is computed which consists of rotations and translation and is applied to rest points to deform them there is also a switch in apply_transform VOP which I suppose should switch between transforms from transfer_transform_near/transfer_transform_far, but according to the condition the transfer_transform_near is never used (or i've missed something) you can simplify this by computing whole transformation matrix in compute_transform and export it as matrix(16 floats) attribute called Transform or something then in Attrib transfer SOP transfer just Transform attribute and in apply_transform just multiply P with that attribute look at the file Thank you so much for your time anim, I really appreciated it. There are a few things that I still don't quite understand. 1. What is the AttribReorient doing in there? 2. In the compute_tranform, I think I understand it better now. The only thing I don't quite get is the subtract bit. 3. In the apply_transform, what are dot and compare doing in there? sorry to bother you again with some stupid questions. Your help will be really appreciated. cheers s Quote Link to comment Share on other sites More sharing options...
anim Posted December 21, 2009 Share Posted December 21, 2009 1. What is the AttribReorient doing in there? it is for computing the rotation difference between the rest and deformed geometry by comparing their topology (normals,tangents, ...) and reorienting vector attributes according to that information 2. In the compute_tranform, I think I understand it better now. The only thing I don't quite get is the subtract bit. it's just position difference between deformed P and rotated rest P, you can imagine it as translation offset which needs to be done on the points to get to correct deformed position after being rotated by matrix 3. In the apply_transform, what are dot and compare doing in there? this i do not understand either, as i wrote in previous post and notice that in that post i simplified the asset so it does not contain dot and compare and many other nodes anymore (hopefully with the same effect) Dot product of two identical non-zero vectors is allways 1 as far as i know, so i think it was ment to be used differently Quote Link to comment Share on other sites More sharing options...
sunantha Posted December 22, 2009 Author Share Posted December 22, 2009 it is for computing the rotation difference between the rest and deformed geometry by comparing their topology (normals,tangents, ...) and reorienting vector attributes according to that information it's just position difference between deformed P and rotated rest P, you can imagine it as translation offset which needs to be done on the points to get to correct deformed position after being rotated by matrix this i do not understand either, as i wrote in previous post and notice that in that post i simplified the asset so it does not contain dot and compare and many other nodes anymore (hopefully with the same effect) Dot product of two identical non-zero vectors is allways 1 as far as i know, so i think it was ment to be used differently Thank you anim, you've been such a great help. Thanks pclaes for pointing out to the asset. Last but not least, thanks to everyone who's tried to help. cheers s Quote Link to comment Share on other sites More sharing options...
anthonymcgrath Posted August 5, 2017 Share Posted August 5, 2017 hi all i know this is an old thread (really quite old now) but this technique by @anim is really quite effective. I'm wondering how i would go about applying this technique to an alembic mesh i've brought in? Right now in the network there is a channel sop thats bringing in a vertex cache from the locked geometry inside the scene. I've setup an alembic anim and i'm just trying to plug it into the sane network with the isooffset, scatter and then the mesh deform network. however it breaks because of the chop network outside of the setup and i dont know how to get around that. essentially i'm after the same technique where a volume of points moves with the deforming mesh as opposed to jittering around inside. I can lock points to a surface thats fairly straight forward but locking a 'volume' of points inside a deforming geometry seems to be quite a bit harder ? any advice ppl? cheers ant Quote Link to comment Share on other sites More sharing options...
Sepu Posted August 5, 2017 Share Posted August 5, 2017 you mean like this? point_deform_ex.hipnc 1 Quote Link to comment Share on other sites More sharing options...
anthonymcgrath Posted August 5, 2017 Share Posted August 5, 2017 @sepu hahahaha yep exactly thanks! I managed to get something working using a vdb from polygons then scattering points in that then point Deform. Is this the same trick? Quote Link to comment Share on other sites More sharing options...
Sepu Posted August 5, 2017 Share Posted August 5, 2017 yep iso offset is just the old school of doing that, VDB are newer and faster. 1 Quote Link to comment Share on other sites More sharing options...
TommyLee Posted January 22, 2019 Share Posted January 22, 2019 woohoo! so happy this decade old thread was updated with current VDB method. thanks all! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.