Archived post by Bender

From @trzanko ray sop or prim uv’s don’t yield super great accuracy, as it only interpolates among a primitive’s points, to get a smooth position you can leverage the osd vex functions
here’s my subdiv ray snippet which illustrates this, you can see the diff between the osd pos and the primuv pos if you comment out the line which declares the variable sDP
“`int primNum; vector UV;
float dist = xyzdist( 1, @P, primNum, UV);
vector restN = primuv(1,”N”,primNum,UV); vector posOnRest = primuv(1,”P”,primNum,UV);
//subdiv float pU, pV; int pId; int patch = osd_lookuppatch( 1, primNum, UV.x, UV.y, pId, pU, pV);
//these two functions return the last argument //so posOnRest is being overwritten in the function, much like xyzdist() int sDN = osd_limitsurface( 1, ‘N’, pId, pU, pV, restN); int sDP = osd_limitsurface( 1, ‘P’, pId, pU, pV, posOnRest);
@P = posOnRest;“`

posting Tighe’s post for re-gemming

Archived post by Sasa Budimir

Little trick for those nasty gaps and weird sim behavior in vellum when using attach to geometry constraints. Say you have some vellum sim and want to attach few lines/hairs to it in the second sim (using the first one as collision). There is always a small gap between attached points, and after some time I figured it was due to collisions between those points that is forcing them apart, and causing some weird motion. Easy fix is to just disable collisions on those points that are going to be attached with: `i@disableexternal = 1;` Little GIF that hopefully illustrates things better (or not).

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20192910/24/19/disable_collision_vellum.gif

Archived post by SniperJake945

if you’re too lazy to search 😛

this is that shit but on surfaces. I cant release the code for this unfortunately but it works on most if not all non degenerate triangle meshes 😮 the tracing methods are based off that keenan paper i posted in cgi-math about intrinsic triangulations 😮

will pump out some longer versions laterrr

gotta actually do work at some point today 😦

but if u dont want to do crazy surface tracing, you can just fake it with xyz dist and primuv, though itll be pretty slow for big meshes like this (100k points)

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20190510/22/19/jr_physarum_revisited_reupload.hipnc
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20190510/22/19/jr_surface_physarum_v001.mp4

Archived post by lcrs

discovered a hilarious baking gotcha that should be documented for future searchers of discord – the bake texture ROP does border expansion or diffuse fill to cover the black gaps between UV islands, but it silently fails if you have a background image enabled on the camera node the ROP is set to. only took about 2 hours to figure out <:goose:418150131272122368>

Archived post by matte

Just a random thing if anyone finds it useful – here’s some vex to quantise a value to steps, with variable smoothness: “` float smoothstep(float n; float x) { if (n == 0) return x; return 1.0/(1.0+pow(1.0/x-1.0,n) ); }
vector smoothstep(float n; vector x) { if (n == 0) return x; vector un = {1,1,1}; return un/(un+pow(un/x-un,n) ); }
// step: levels of quantisation // val: value to quantise // rolloff: smoothness
val *= step; vector fraction = smoothstep(rolloff, frac(val)); val = floor(val) + fraction; val /= step; “`

default houdini smooth() doesn’t work symmetrically

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20192210/08/19/smoothquant.png