Archived post by paqwak

Made an HDA, with dynamic iteration and a simple global water level offset. Wish I could easily implement a connectivity map so dry level could be randomize or controlled by a mask per lake, but that’s for an other day.

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264304/04/26/image.png
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264304/04/26/sop_heightfield_BasinFlood.1.0.hda
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20264304/04/26/BasinFloodingWip_18.hip

Archived post by mysterypancake

i put some info about worksets in this section github.com/MysteryPancake/Houdini-OpenCL?tab=readme-ov-file#worksets

the vellum thing above also uses worksets/graph color

there’s a few things that can be changed before running the kernel one is the number of workitems by using worksets as Jake said “`cpp // In VEX, runs the kernel 1 time with at least 6 workitems i[]@offsets = {0}; // this doesn’t affect any IDs but it gets passed as a kernel argument I[]@sizes = {6}; “` “`cpp // In OpenCL, the offset and size is passed from the VEX array // Note get_global_id(0) still starts at 0 even with multiple worksets kernel void kernelName( int color_offset, // offset number from i[]@offsets int color_size, // size number from i[]@sizes (not rounded up) … ) { … } “` the other is the [local workgroup size](github.com/MysteryPancake/Houdini-OpenCL?tab=readme-ov-file#changing-the-local-workgroup-size) “`cpp // Force the local workgroup size to 48 __attribute__((reqd_work_group_size(48, 1, 1))) @KERNEL { // This should print “Local size = 48” printf(“Local size = %d”, get_local_size(0)); } “`

The number of workitems it gives you always rounds up based on the local workgroup size

so if you did `i@[]sizes = {4}` but `get_local_size(0)` was 12, it gives you 12 workitems instead

this usually leads to [extra workitems you need to skip over](github.com/MysteryPancake/Houdini-OpenCL?tab=readme-ov-file#bounds-checking)

Archived post by sniperjake945

Id have to try it but potentially with the eikonal cop

Gimme like 10 and I can see if the idea works

im sure you can have it be one sided with some clever weighting but thats an exercise for another time. but this is all cops. you just use a black circle on a white background (where the white value is super high) as a source point/the initial distance and then use the letter outline as the speed parameter on the eikonal node. It’s worth noting that doing this with geometry is of course going to be way more controllable. But this way avoids any kind of geo

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20262203/27/26/cops_carve.mp4
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20262203/27/26/cops_carve_JR.hip

Archived post by pixel_bender

Does anyone have a good approach to (in USD) – 1) Culling by object volume or 2) using %bound %closerthan over a shot range?

In SOPs I’d always trail and timeshift a camera frustum to the end frame – generating a shotlength frustum volume and cull objects based on it – in USD, as far as I can tell, this isn’t possible in any meaninfgul way – which is incredibly problematic

If I could cull by object volume, I could do the heavy lifting in SOPs by generating the frustum there

alternatively, if I could do a ‘cumulative closerthan / bound(cam)’, I’d get the same benefit

Oh shit.. maybe this is accounted for

well shit, this works amazingly

canera path and its prims

no time dependency introduced

`%bound(path/to/cam, bound = 20, t = ($FSTART, $FEND)) & %type:Mesh`

on a prune node seet to prune unselected

this is so great- beats even the sops workflow of frustum/trail/timeshift/group/delete

Here it is culling outside bounds, then using %closerthan in another prune to remove points getting to close to camera

seriously, beyond useful, and fast

Im just not sure if it works with instances…

Now the problem is with payloads and instances…

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20265503/24/26/image.png

Archived post by mattiasmalmer

got it to work! thanx.
it is my own version of something like the wrinkle deformer.

(I intend to use it for post solve editing of cloth sims.)

i made this as a wrangle thing first but it was slow so i caved and made it in openCL. makes ALL the difference.

the stock wrinkle deformer does things im not entirely happy with so i had to make my own. also learning moment.

here is a hip if you want to play around

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20260503/24/26/houdini_eFFYhuo5Xh.mp4
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20260503/24/26/image.png
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20260503/24/26/constraint_solver_Mwrinkle.hiplc