Author: admin
Archived post by eetu
Archived post by hypercubexl
Trying to remember if someone had a hand as a sample, will look in bookmarks
Ah there is a whole dude as a sample here, with hands and textures if that helps
ten24.info/sample-scan/
Archived post by TOADSTORM
i gotta make some H&C membership pins or something
<:houdiniandchill:616479359129354248>
Archived post by jake rice
school.geometryprocessing.org/ lots of great talks are up for free on this site
😮
Archived post by rich lord
Nice @trzanko . WFC was somewhere on this discord awhile back, and I read this which vaugely explained it to me. Would also love to play with it in Houdini some. – robertheaton.com/2018/12/17/wavefunction-collapse-algorithm/
Archived post by trzanko
here’s a simple example of a 2d wfc running on points in houdini ( have yet to expand to 3d )
it pretty much comes down to: you can only be what your neighbors say you can be, and whoever has the least amount of options, randomly select from it’s choices based on probability and set yourself, then repeat
it doesn’t matter what the deformation is on the tiles
you could do it on any volume of points with clean connectivity
if you can do a neighbour lookup, it doesn’t matter what the tiles are, though it becomes a bit weirder because what you put in those tiles has to deform to that tile’s space
imo wfc is one of the best candidates for some super cool procedural stuff
would love to have a sec to explore this more or on a project, this sketch is from last year which is the last time we talked about it i think
maxim’s stuff is what inspired this sketch
oskar’s implementation is way way sexier because it’s dynamic and interactive
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20194308/24/19/tr_wfc_v4.mp4
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20194308/24/19/tr_wfc_v4.hip
Archived post by nicholas ralabate
i like that fat cat
Archived post by Reinhold
looks like vtx0 is {0, 0, 0}, vtx1 is {1, 0, 0}, vtx2 is {0, 1, 0} and vtx3 is {0, 0, 1}. and any point in between is just a linear interpolation of these four values. shouldn’t take too long to get there now
got it working now. building a matrix from the tet vertex positions and running an inverse transform on the point position puts the sample point into the normalized barycentric space, i.e. the new point position is the barycentric coordinate
“` int prims[]; vector p = v@P; vector vtxp[];
prims = primfind(1, v@P, v@P);
foreach(int prim; prims) { for(int i=0; i<4; i++) { vtxp[i] = vector(point(1, "P", primpoint(1, prim, i))); } matrix3 mat = set(vtxp[1] - vtxp[0], vtxp[2] - vtxp[0], vtxp[3] - vtxp[0]);
p -= vtxp[0]; p *= invert(mat); }
v@uv = p;“`
Archived post by aswaab
@flight404
here’s a chops way of doing it. I have something in there that will remove any scaling from the world cam/nulls, etc.
Knowing the CHOPS way is cool because you can do things like time-shift, retime, filter, sample, etc. Good to know even if not for your specific case tonight.
Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20194208/22/19/get_world_cam.hiplc