Jump to content


  • Content count

  • Donations

    10.00 CAD 
  • Joined

  • Last visited

  • Days Won


Everything posted by acey195

  1. Set N points to same Y position

    when running over points, you should be able to do this in a single line of a wrangle : v@P.y = floor(float(@ptnum)/3) * 2; //if you want 2 y units between every group.
  2. Change a curve basis in VEX?

    No probs, but yeah we would also make happy use of such improvements :), so thanks to you too!
  3. Change a curve basis in VEX?

    Hey, Also tried adjusting stuff similar to this with NURBS. My fear is, that the setprimintrinsic() function only actually works on a couple of the intrinsics, and not all of them unfortunately.
  4. Mesh Border Mask

    assuming the shape is flat (it has to have boundaries) you can also do the following: Use a divide sop to remove shared edges (toggle at the bottom), though it looks like on the left image this may already be the case. Put an "primitive" or "ends" SOP and set the mode to "unroll" (easier to find in the ends sop), you should now have the boundary line. then you can do the rest in an attribute VOP or wrangle, for example: (input the main geo in the first input, and the boundary in the second) f@falloff = xyzdist(1, v@P); v@Cd = f@falloff;
  5. Well for the scatter node, the density scale is measured per m^2, so if you use a measure SOP to measure the area (it will be set to perimeter by default) you can then use an attribute promote SOP to promote the area from primitive to detail, using the "sum" method. you now should have the total surface area as a detail attribute. Then you can fetch that attribute, and divide it by the size of your bark pieces, times some kind of smudge factor and put that as the density in you scatter node. That should give you a reasonable filling in
  6. This is a very complicated problem, if the data you start with is not already pretty good. If you can also make something like that work well at different resolution scales, you are a super genius. The most straightforward way would probably be to use a lot of smoothing (using various constraints) in combination with fuse nodes progressively increasing in fuse range.
  7. Lambda SOP

    This looks awesome But isn't this sort of what the invoke sop does? although that does have the constraint that you need to call a compiled block (with all the constraints of that)
  8. Hey All, Moving to H17 has been great so far, including a lot of the UI improvements that came in both H16.5 and H17 One thing does annoy me though, is the node information (or middlemouse button) of nodes with errors. Is there any way to get rid of this unused space in the UI? I don't really want to have to scroll down in the error message to read it, or to screenshot it, when I need to notify colleagues. (and if you use middle mouse button, you can not even do that) Thanks! Twan
  9. Get rid of subdivide artefacts

    Basically, you want to avoid triangles as much as you can, so maybe an extra intermediate edge (ring) on the cap might work, or you could try making the cap quads by connecting across, rather than going to the center (or a combination of both)
  10. "Make circle" SOP?

    well, once you have the average position, you can look at all the vectors from the center to the original positions, adding up the cross products of each set of 2 of those vectors (flipping them if they have a dot products smaller than 0) if you normalize that resulting vector, that should be the average plane orientation. afterwards you could use this VEX function to layout all of your points on that plane: http://www.sidefx.com/docs/houdini/vex/functions/planepointdistance.html yay maths ^^
  11. 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.
  12. 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.
  13. In this case you just type the name of the HDA name (not label) where it says: 'geo' I believe
  14. 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)
  15. 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)
  16. 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
  17. 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:
  18. 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)
  19. 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.
  20. 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.
  21. 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.
  22. 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.
  23. 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
  24. 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!
  25. 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 ^^