Transfer skin point attributes to hair primitives with VEX

Usually regular attribute transfer will do the trick but sometimes when you need the extra performance from VEX multithreading this script can become useful.

//run in primitive wrangle
//first input groom second input skin
int pts[] = primpoints(0,@primnum);
vector rootP = point(0,"P",pts[0]);

string attrib = chs("attribute_name");

int prim;
vector uv;

xyzdist(1,rootP,prim,uv);
float a = primuv(1,attrib,prim,uv);

setprimattrib(0,attrib,@primnum,a);
Previous
Previous

Calculate hair point distance to other hairs (VEX)

Next
Next

Simulating Cornrows