Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by 3dome

  1. Multi-Shader RBD sim, diffuse to Cd

    just a random thing that popped into my mind: storing the sourceprim a particle was emitted from, using that with primuv() to lookup the shop_materialpath attribute to get the shader assinged to that sourcprim and from there get the texturepath (not figured out that part)
  2. If / Else group - VEX

    while there are functions like inprimgroup() or inpointgroup(), whenever possible I like to use the shorthand @group_groupname syntax. So if you run over points and are looking for a pointgroup then your code would be if(@group_inside) { f@stiffness = 1; } else { f@stiffness = 1000; }
  3. Maya Camera to Houdini

    use alembicArchive node, point it to the exported camera .abc file and hit Build/Update hierarchy
  4. Caching VDB's - reducing size

    absolutely. only cache the fields you need. If you need vel for motion blur, you could resample the vel VDB to 1/3 of the resolution, that's usually enough for motionblur. Also make sure to save out 16bit fields instead of 32bit and one more big saving comes from compressing the volume as well as masking the vel field by the density field
  5. I think the vector merge can only merge VDBs, so reversing the order of convertVDB and vectormerge should do the trick Also, you might want to set the vector type on the vectorMerge to the correct type (i think it's called displacement/vel/acceleration) so it gets interpreted correctly in some other operations
  6. Get all points on a prim?

    same wrangle, add following lines of code vector avg = {0,0,0}; for(int i = 0; i!=@scattered; ++i) { int pt = findattribval(1, "point", "sourceprim", @primnum, i); vector p = point(1, "P", pt); avg += p; } avg /= float(@scattered); v@avgP = avg;
  7. Get all points on a prim?

    on the scatter, under Output atributes, turn on Prim Num Attribute then use a primitivewrangle, plug the grid into the first and scatter into second input: i@scattered = findattribvalcount(1, "point", "sourceprim", @primnum);
  8. Velocity offsets point position from sops to dops

    interesting. The docs state 17.5 but I think they removed it in 17.5 then and the docs page is just there for legacy purpose (because until it really is removed the operator is just hidden by default)
  9. Velocity offsets point position from sops to dops

    seems like the particleFluidEmitter DOP ships with some version of Houdini. I'm using 17.5.173 and I do not have it, so must come with a later build https://www.sidefx.com/docs/houdini/nodes/dop/particlefluidemitter.html
  10. Volume - Outline Not Visible?

    hmm I guess it's guide geometry (like when you create an otl and can spcifiy a node as guide geo, just here it's code in c++) and maybe it's a small bug in the code. anyway, if you need to see it you could put down a volumevisualize SOP as a workaround
  11. you have to promote the parameter, then it should work
  12. You don't necessarily need a loop, although it might be the cleanest (and if compilable) fastest way. Anyway, here is a file to show 2 other methods of doing it dm_surviveConversion.hipnc
  13. Looping over Groups with only Points

    I hope I understand this correctly. There's 2 things you could do: 1) Don't use groups, attributes are superior in most cases. Instead of creating groups, create an integer or string attribute and use that as Piece Attribute on the loop, like ThomasPara suggested. 2) The name SOP can build names from groups, from there it's the same as 1) Iirc the old foreach subnet had the option to run over groups, the new ones does not.
  14. maybe you could try a different approach, like creating an array with the frames you want to render and then use a few lines of python as discussed here
  15. If the pre-build nodes don't give you what you need, like i said, build it yourself. This file is by no means the best solution, but it gets the job done. dm_Cluster_Individual_Problem_01.hip
  16. For stuff like that use Python. Create a shelf tool with the following code: obj = hou.node("obj/") geos = obj.children() for geo in geos: last = geo.children()[-1] nml = geo.createNode("normal") nml.setInput(0, last) nml.moveToGoodPosition() nml.setRenderFlag(1) nml.setDisplayFlag(1)
  17. i see. how about just creating those "missing" constraints yourself, merging them with the ones coming from the material fracture?
  18. not sure if that option exists in other versions but in 17.5 it's at the bottom of the voronoi fracture
  19. not looking at your file but it sounds like you want to set Connectivity Partition to None
  20. Ring pyro burst

    Hey caskal, seems like it has to do with a bit of fuel remaining down there and since there is still temperature high enough to ignite it you get a little bit of smoke. Increase the burn rate to 1 and it should be fixed. Edit: you could also play with the Ignition temperature, in this case raise it. Both methods will change the sim a bit, didn't compare it or anything but would guess that increasing the burn rate has less of an impact. Yet the temps you source into the sim are also quite high, so combustion happens quickly meaning overall temp in container will rise fast and "compensate" for the increased ignition temp. It's just some voxels of fuel will not be ignited instantly anymore but a few frames later (depending on the temperature released from combustion obviously)
  21. just tried it in 17.5.173, default sized torus: vdbfrompolygons voxel size 0.1 works just fine but as soon as i lower it some spheres are not contained in the torus' shape anymore When I scale the torus up and leave the voxel size lower than 0.1 at some point it works again. Seems to be some sort of correlation/ratio that makes or breaks it
  22. Keyframe and RBD simulated object issue

    First of all, as a general advice, I highly suggest staying away from any transformations on the object level (=> on the geo node itself) It is not wrong to do stuff there, but you can save yourself a lot of headache and have piece of mind (not having to keep track of object vs world space etc) by doing transformations in a transform SOP on geometry level. Second, I'm not sure if there is a more beginner friendly way of doing that, but I'm using a wrangle to override the active (= being simulated) and animated attribute. And of course enable the corresponding checkbox on the rbd packed object. dm_FracturedColumn_v001.hip
  23. Import hda/otl with python

    http://www.sidefx.com/docs/houdini17.5/hom/hou/hda I'm pretty sure you can find everything you need for this there or in the DIGITAL ASSETS section in general
  24. has happend to me quite a few times as well...utterly annoying. I used to know a way of reliably getting it back to 3 values, but forgot Luckily it didn't happen for quite some time now but I think I used to Alt-LeftClick the parameter name to set a keyframe (maybe scope it aswell) to make it "re-draw" the UI
  25. move points to coloured neighbours

    happy to help not in front of Houdini right now, but if you don't want to have them stack up you could either just use a point relax SOP (maybe only on the blue points) or not blend all the way to 1 (-> percentcomplete) but stop a bit earlier, randomized per point Depending on how detailed you need to go, you could factor in pscale (if present) but sooner or later things will break and you'd be better of using a solver