Jump to content


  • Content count

  • Donations

    0.00 CAD 
  • Joined

  • Last visited

Everything posted by whythisname

  1. Cut Mesh with Curve

    More good stuff from petz, awesome! Thanks man I was recently also working on a tool to cut polygons with curves and I actually got quite far using the XYZDist node in vop sops. The hardest part I find is solving the boundaries when a curve doesn't go beyond the polygon edges, but I'm enjoying the challenge. The easy way is to just draw a line to the nearest point and use that to end the cut, but I'm trying to make it so it extends the curve with a straight line in the same direction as the last segment of the curve (similar to the asset on Orbolt) within vop (so no dirty foreach loops with clip nodes and such).
  2. Roof Generator

    another +1 from me for a possible tutorial or something about straight skeletons. Also, thanks petz for the file, I'm definitely going to look at that and try to understand the basics a little. I think I roughly understand how to generate a straight skeleton, but it's still a little too far outside my grasp to make my own implementation.
  3. Drawing a tube (with self collisions)?

    I'm not familiar with Modo so don't know for sure, but the first 2 videos look similar to a curve+sweep (or curve+copy+skin) in Houdini. I don't see any evidence that there is any self collision detection in any of those videos, at least they aren't drawing any geometry that clearly demonstrates self intersection detection/prevention imho. Also if I look at this video (that seems similar to the other ones you posted) it's clear that the geometry self intersects and that the user has to fix that manually: http://www.youtube.com/watch?v=L_oQ0RSu7BY That said, I think you can do self intersections by cutting your curves or geometry in separate parts and detecting collision between them using curvesect (or something similar, the key is that you cut the curve into parts so it becomes as easy as detecting collision between separate pieces). Alternatively Houdini has built in ways to simulate wires and ropes (http://www.sidefx.com/docs/houdini13.0/dyno/wire) or perhaps you can even get away with a spring sop (http://www.sidefx.com/docs/houdini13.0/nodes/sop/spring). Personally I'm not a huge fan of simulations because they cost a lot of time and don't scale very well, but if they solve your problem then they are an option of course. You can forget any real time usage if you go for simulations though which might mean you might as well want the user to solve it. I hope that helps you a bit, but it's not that easy to solve this in a fast and reliable way. Or at least I don't know of any clean way to solve tube/rope collisions.
  4. add point vop H13

    Yeah I'm looking at the add prim node again and there is actually a "closed polygon" option, so I'm feeling like a bit of a dumbdumb here I guess I was so focused on the vertices and points that I never considered to look in the prim options
  5. add point vop H13

    I figured it out by looking at the the attrib wrangle in one of the "find shortest path" node examples. I recreated part of that attrib wrangle in an attrib vop by looking at the code. It's not too hard because pretty much all vex code (including the snippets in wrangles) also has vex nodes that do the same thing (that's the whole point of using the nodes in the first place, so you can build the code in a visual manner). So you might want to look into that example as well, it's the example file to demonstrate one way connections I believe and it's used to make a grid for the path finder (just check out the help for the "find shortest path" node, there are only 2 examples I think so it should be easy to find if you dig around a little). One of the issues I ran into though was that those nodes are available in vop sops, but they don't work there because vop sops can't create geometry. So if you want to create geometry make sure you're using one of the networks that supports geometry creation (they're listed in the help of those nodes, the attrib vop is one of them but take a look in the help to make sure you're using a compatible network type). In short though: you put down a primitive node (I'm not sure if it's necessary, I don't think it is), take the primnum that comes out of that and stick that into (a) point node(s) (this is not needed if you don't create a new prim, but it will assign the points to existing prims then, I think), and the point number(s) from that you stick into (a) vertex node(s). The prim node makes an empty primitive, the point node makes a point at the position you designate and the vertex node can create lines from point to point depending on what order they're executed (I think). I'm not sure how to control the order in which the points/vertices are placed though (other than sticking 1 node in a while/for loop) and I'm not sure you can create closed polygons either (lines aren't an issue for me, but closed polygons I've not managed to figure out yet, if it's even possible).
  6. Valid groups rename

    You can also rename groups by using a group node. The name of the new group needs to be correct and then you can just put the old/wrong group name as the selection criteria and then delete the old group. There is also a rename option in the group node, but the issue that it has is that it can't overwrite existing groups (so if you need to order a list of groups it can have issues, but for your purposes it might be fine). So what you could do is this: have a group node on your #2 geometry before the merge and give the name of that group this expression: group_`argc(pointgrouplist("../last_node_of_#1_geometry_before_merge"))+1` And then put "group_1" in the selection criteria (so it selects the same things as there are in "group_1") and then delete "group_1" (I'm going to assume you know how to do that). Do note that this only works if geometry #2 has only 1 group and the name of that group is always "group_1". If that is the case you might also be able to replace the name with that expression in the node where you originally create "group_1" (instead of having a group node to rename "group_1" just give it the right name when it's created). I hope it's understandable what I'm writing here and I hope it helps you. Either way, good luck with it