Jump to content


  • Content count

  • Donations

    10.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by acey195

  1. I would do the following: Create a convex hull Measure the distance between the mesh and the hull Constrain the smoothing, based on this distance. Possibly you want to do this in an iterative loop, smoothing in smaller increments, re-evaluating the constraints every iteration.
  2. Also, for object aligned boxes, I would generally loop over the objects, just use the Box SOP and then in VEX, do a intersect along the Normal (z), Up (y) vector and crossproduct(N, up) for the x axis, to get the scales.
  3. In this case you just type the name of the HDA name (not label) where it says: 'geo' I believe
  4. Also note that the "0" as the argument, refers to the input number, you can also use 1,2,3 to access the other input nodes (or even -1, -2, etc if you use spare inputs)
  5. How to selects a point ID using VEX?

    Because of how Houdini deals with ints, you can also do that (if your "whatever" fits on one line of code)
  6. trying to understand how arrays work

    Hey, didn't have time to check the file, but I have a hunch you used the setdetailattrib(0, "foo", yourArray); and then tried to read from it. This you cannot do inside the same wrangle. all the functions that write attributes, are only applied in the output of the node, not in the local data. so if you want to keep using it, use "yourArray" instead of "detail(0, "foo")" this restriction is not there for bound attribs like: "@foo" to your other question, of course. You can for example use the group parameter at the top of the node, to only process a subset (or a single) of your primitives
  7. For-Each Numbers Node Houdini 17

    Everything in the old foreach subnets can be done with the new ones, in slightly different ways (which will make more sense/are more flexible in the long run, than the old one) if you want an introduction to the new foreach logic, you can always watch Jeff's tutorial:
  8. trying to understand how arrays work

    you can use setdetailattrib() http://www.sidefx.com/docs/houdini16.0/vex/functions/setdetailattrib something like: int yourArray[]; /* stuff to build your array */ string selection = sprintf("selectionOfPrim%d", @primnum); setdetailattrib(0, selection, yourArray); note that, if this is what you actually want to do, its better just to save it as a prim attribute of course. if you just want one attribute, then run the wrangle in detail mode and build rebuild the logic to work with that. (you'll need to change the way you read and write your data)
  9. Houdini 18 Wishlist

    This works for Subnets, but unfortunately not at the top level of your geometry nodes. So for rendering your geometry, and for usage in Houdini Engine, you still have to set the render flag by hand, at the top level.
  10. Force python sop NOT to cook

    Maybe you could try something with the "stash" SOP or scripts related to its functionality? It can save geometry data to a parameter, if you load your geometry from there, downstream, I would guess it will not "dirty the node" and request a cook automatically.
  11. make window in the wall

    Hole is good, if you have only a few objects to cut out of your main object. when you start to have a lot and the order of the cuts is going to affect the result, because of the bridging edges, or if you start to have recursive holes (holes in holes) I would generally still advise the usage of the new Booleans. The booleans also have a mode specifically made for flat objects, and like you already found out, you would not need to clean the tiny sliver of a mesh below the doorframe in your case. also, as a second alternative, you could also use the "Trim" SOP if you work with NURBS surfaces.
  12. Is the SORT tool somehow broken?

    Apart from the join sop, you could also use the polyPath sop, which is more flexible in my opinion. The join sop only works if all the vertex numbers are in the correct order (and only merging connecting pieces requires extra nodes) the polyPath, just requires pre-fusing the points.
  13. Houdini Terrain Pipeline Vol 2

    Hey All! The first part of this tutorial has been available for almost a year now, but because of the sad news that hit CMI, I was unable to upload the 2nd "half" there. So instead I just made it available on Youtube for everyone, to make up for that I suppose. I'm considering putting the first part on there as well, if enough people want that. In this tutorial covers the following, using Houdini * Generating water meshes * Updating the terrain based on the water * Generate walking paths on the terrain * Create some basic instances * Build a flexible system using external files to place these instances. Built on Houdini 16.5, but should work on 16 too, or all the way back to H14 if you skip the heightfield part. Recommended specs: at least 16GB of RAM, reduce the terrain size if you have less. Disclaimer: Work files are as is, and do not contain the cached geometry to save on space, this may explain node errors on the various "File Cache" nodes. It does however also contain the work done in the first half of the tutorial, albeit mostly undocumented: https://tinyurl.com/y89egjvq Hopefully its of some use! Twan
  14. Just wanted to say thanks......

    Welcome Dennis! From your other post, I was curious where you were studying. Igad(Breda), HKU or self taught ? Also Dutch you see , not very new to Houdini anymore I suppose, but still learning all the same. Enjoy your stay!
  15. Learning Curve of Popular 3D Software

    Its Hilarious, its also a classic I believe I first saw it when I was still in school, more than 4 years ago ^^

    I said VOPSOPs specifically are dead, they are no longer supported.. Attrib VOPs are the new thing, which are basically the same, but not completely.

    VOPSOPs are kinda dead post H13 They are now "attribute VOPs" in which you can affect all geometry types (point, prim, vtx, detail) by selecting the corresponding node, just like Wrangles. import bind is just "bind" to output, use "export bind" (which is also a normal bind VOP, but with some toggles enabled)
  18. Houdini 17 Sneak Peak

    not entirely sure, maybe its specifically for the shader (not the sim)
  19. Houdini 17 Sneak Peak

    Awesome release indeed still some surprises in the launch presentation! To celebrate, I decided to transcribe the list at the end : Light path expressions Accl motion blur New PBR SSS for faster convergence of shadowed areas Much lower memory usage for rendering packed prims Support for multiple GI lights Better Bake texture ROP Pyro shader support for heat, density and temp Data window for deep EXR better Hqueue Alembic layering Better unified Noise VOP Better periodic noise support 64-bit vex AVX accl vex POP fluid DOP Smoother agent clip blending Agent unpack SOP compressed bclip file support color coded node parms channel stats in the animation editor much faster deform sop new blendshape version falloff sop point velocity sop triangulate 2d 3.0 windin number SOP better trace SOP Support for vertex groups in the group sop More compilable SOPs Faster UV transform Better FBX support HEX color support better parameter search and filters NVIDIA OptiX AI denoiser for Mantra/IPR
  20. Houdini 17 Sneak Peak

    I believe these (and probably their names) are still confidential. Unless you are working for larger companies/are able to attend the special events, where SideEffects makes visits to show their roadmaps.
  21. Laptop for houdini

    The top one seems totally adequate I would only get the other one with the potentially better video card if either: Plan on using GPU based renderers (redshift etc), as most of them are still CPU based, and current gen I7s are awesome I imagine You also want to play video games at higher settings. But I would definitely suggest getting an extra external hard-drive if you pick the bottom one, probably still for the top one as well, if you want to do a lot of caching for simulations and stuff.
  22. Group A += Group B

    or (almost) literally as you said in Vex Union: @group_A |= @group_B; Intersect: @group_A &= @group_B; Remove: @group_A &= !@group_B; etc.
  23. In my opinion explicitly typing your attributes is good practice; in particular, for not accidentally using floats when you can/should use integers(if you want to check against specific numbers) if(x==6) is way better than if(x==6.0) for example,
  24. Hey all, Any compositing wizards in the house? We were curious if any of you have a possible work around for the following problem that does not involve using the take system. (or leaving all nodes unlocked) Currently trying to updating some of our pipeline in compositing, but I seem to be running in all kinds of issues regarding Houdini's "Hardcoded-ness" in regards to $F Our file structure follows a 2d structure (filename_X_Y) rather than linear (filename_$F) and I get the feeling Houdini really dislikes that. (at least in the compositing context) So on the top level (from the SOP context) we have some logic to remap a linear number into this 2d structure (see tiles image), which works fine when this iteration number is set by hand. For reference, this 2d structure can be placed anywhere in our tile space, and can be a sparse set of tiles. But replacing this iteration number by "$F" seems to break a lot of stuff, as if Houdini suddenly engages all kinds of safety mechanisms that are in to way relevant to what we are trying to do. One of the things that breaks are all the switch nodes (they check if the input files exist and load a backup image if not, see image below) so to work around this I need to match all resolutions, file formats and file ranges apparently. But setting the file as a still image also doesn't work when the filename is indirectly built using $F. And manually setting the frame ranges also doesn't seem to work as we are not inputting a "true sequence" of files, again because of the 2d structure we are using. So it will report most things as empty frames, or it loads the wrong files altogether. Did any of you try anything similar? Did you run into the same problems and if so was there any work around you could use? Thanks a lot! Twan
  25. VEX "for loop" for Points

    for static values you can just use a "attribute create" node. for wrangles, if they run over "Points" that means it is already looping over all points, so the following should be enough: v@prob = set(5, 10, 20); // if you want to store the data as a vector or you could do, if you want to pick an integer randomly from your list: int probAr[] = {5, 10, 20}; int index = int(rint(rand(@ptnum) * 2)); //rint is for rounding the value to the nearest integer i@prob = probAr[index]; // you could even put this entire code in one line if you would like, like this: i@prob = int({5, 10, 20}[int(rint(rand(@ptnum) * 2))]);