Archived post by matte

I had an RBD sim that I wanted to cache, only very small like 20 packed prims, but wanted it to play back realtime

but even though the bgeos were small, reading them off the network was slow.. .even reading them off a local disk was not realtime (and wouldn’t work on the farm)

so I made a stupid setup to ‘cache’ it in memory inside the hipfile

chopnet -> geometry chop in animated mode -> (lock the geometry chop) -> then channel sop to read it back to sops

was super fast, and didn’t make the hipfile too big cause it was a small sim

Archived post by Solitude

Pyro Cd Field Setup

@mestela

that gif is crunchy… meh

looks nicer in the vp

there might be a way with the gas calculate… but I used a really simple wrangle.

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20185306/01/18/pyro_CdField.gif
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20185306/01/18/Pyro_Cd.hipnc
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/20185306/01/18/pyro_cd.jpg

Archived post by TOADSTORM

so what you’re trying to avoid when you’re dealing with mushrooms is a smooth pressure front. the project non-divergent step of the smoke solver computes the pressure field, and when you have areas of high density right next to areas of low density, like at the beginning of a smoke emission, the velocity field is going to be more or less “combed” straight out along the gradient of that pressure. short answer, you get mushrooms.
so what you want to do is mess up that velocity field a little bit in order to encourage smoke to swirl around a bit, along that pressure front. the way i like to do it is in a sop solver. use the sop solver to import the `vel` data from your smoke object. when you jump inside, you’ll see the `dop_geometry` node is importing that field. copy this node and change the geometry data path to `pressure`. we’ll use this pressure field as a mask, so we can only mess with the velocity field exactly along the “edge” of the pressure field. use a volume wrangle on this field to isolate just the edge like so: `@density = fit(@density, 0, 0.1, 0, 1);`. make sure “bind each volume to density” is enabled. now we can scatter points along the “edge” of the pressure field in a scatter sop.
next, use a vdb from particles to create a fog vdb around these points. the goal is to use this field to “punch holes” in the velocity field, like swiss cheese. convert the vdb into a standard volume, then use a volume mix sop to invert the volume (set the mix method to “user”, then value to `1-$V`). then post-add a small amount, like 0.3 or so. what this does is make it so that most of your volume has a value of 1, but the holes will have a value of 0.3. then just multiply this against your `vel` field in another volume mix.
the end result should be that the velocity field has holes punched in it, but only around areas on the edges of the pressure field, which should help break up mushrooms without disturbing the rest of the simulation.

Archived post by JeffLMnT

To quote @TOADSTORM you can punch tiny holes in the velocity field along the pressure front in order to break up big mushrooms. in a SOP solver connected to vel or sourcing input (set data name to “vel”), import the “pressure” field. use a volume wrangle to fit 0-0.1 to 0-1 (bind all volumes to density, f@density = fit(@density,0,0.1,0,1); ) then scatter points inside the density field, generate by density, scale ~7, max points maybe a million. fuse points by distance but keep unused points (not sure why this is done?) distance ~0.3 maybe. then in a volume vop/wrangle working on the vel field, open up a point cloud looking at these points. default radius ~0.25. get pcnumfound, if points are found, multiply vel by about 0.3, otherwise leave it alone. i think the basic gist is that you import the pressure field and then bind it temporarily to density, then ramp it to generate almost a band / isosurface so you isolate the main pressure front, then scatter points in it and use those points to “punch holes” in the velocity field. the easy way out is to just collide with scattered points but this A.) avoids collisions and B.) only applies at the pressure front so it might get cleaner and faster results

Archived post by trzanko

No, Initial state is the skin and tets at rest with the skin having the attrib pintoanimation set to 1. You don’t need a rest shape. Then target deformation is the deformed skin and the tets wherever, target strength parm can be 0 it doesn’t matter because of pintoanimation. You get the deformed skin of a tet mesh by setting the P to frame 1 and then piping the anim into an attrib, then after the solid embedd you set P of the skin to the attrib and there’s your target skin with matching topo. Here’s a file I had for debugging the workflow. Let me know if you have any questions.

you could honestly just change the inputs of this file and pipe the output into a wrinkle sim

Attachments in this post:
http://fx-td.com/houdiniandchill/wp-content/uploads/discord/createAnimTetMesh.hip

Archived post by TOADSTORM

yo @Fogelstrom not to toot my own horn but there’s a little section at the end of this blog post that goes into a similar kind of technique… you can generate “ribbons” of geometry or really any kind of surface and use it to drive volume shaders for nice sharp edges. it also means you don’t have to rely on pyro when things need to be more directable and less dependent on fluid dynamics.

www.toadstorm.com/blog/?p=465