Endocytosis - xyzdist & prim uv

   1392   2   0
User Avatar
Member
133 posts
Joined: March 2016
Offline
Hello - As part of learning vex and Houdini in general, I've become slightly obsessed with trying to do an endocytosis setup. (amazing example: https://www.instagram.com/p/CBjdW1WjYmB/?utm_source=ig_web_copy_link)
Tried various things, from nearpoints() to point clouds, and all have worked to an extent. However my latest attempt has been using xyzdist and prim uv, which seems to have the most potential. The problem I'm having is getting the points to wrap under the full sphere. I guess I could overcome this by pushing the points toward the centre as the sphere moves through the cell wall (grid) so the edge points find the base of the sphere?

The second issue is that during endocytosis, the points that are transferred to the sphere are replaced by points moving in from the rest of the cell wall (grid). Any thoughts on how best to achieve this?

I've attached a simplified version of where I've got, to better illustrate.

Any thoughts would be greatly received and indeed if there's a completely different approach i could look at that might work better?

Image Not Found
Edited by Hatchery - March 6, 2021 05:22:38

Attachments:
XYZ_Dist.hiplc (148.7 KB)

Love Houdini
User Avatar
Member
142 posts
Joined: Aug. 2009
Offline
float vsample = volumesample(1,0,@P);
vector dirtosurf = volumegradient(1, 0, @P);
@P -= normalize(dirtosurf) * (vsample - chf("offset"));

//Input 2 is Geo
//Input3 is SDF representation of Geo
int handle = pcopen(@OpInput2, "P", @P, chf("rad"), chi("num"));
vector lp = pcfilter(handle, "P");

i@npt = nearpoint(1,@P);
vector npos = point(1,"P",i@npt);
vector off = set(0,chf("yoffset"),0);
vector disp = @P-lp;
float vsample = volumesample(2,0,@P); 

if(vsample<0)@P-=disp;

https://forums.odforce.net/topic/44999-on-growth-and-form/?page=1 [forums.odforce.net]
+
https://github.com/kiryha/Houdini/wiki/examples [github.com]
Study those files in 2 weeks and if you Love CG and Want More-- Open your Own business..
User Avatar
Member
133 posts
Joined: March 2016
Offline
Oh nice! will have a play with that, not used volumesample before -

In the second example these lines don't seem to be doing anything?
i@npt = nearpoint(1,@P);
vector npos = point(1,"P",i@npt);
vector off = set(0,chf("yoffset"),0);


Also attached bit of a rough and ready version of what I'd been looking at re XYZ and PrimUV

Attachments:
Test.hiplc (157.7 KB)

Love Houdini
  • Quick Links