Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.


  • Content count

  • Joined

  • Last visited

  • Days Won


hyperforce last won the day on April 21

hyperforce had the most liked content!

Community Reputation

19 Good

About hyperforce

  • Rank
  • Birthday 12/06/1988

Contact Methods

  • Website URL
  • Skype

Personal Information

  • Name
  • Location
    Heeze, Netherlands
  • Interests
    I love playing and making computer games.
    My specialization is procedural and technical level design.
  1. And here is the second article: https://80.lv/articles/procedural-world-building-in-ghost-recon-wildlands/ I go over the workings of some of our most intricate tools Hope you enjoy the read.
  2. Think about taking a set of curves and extruding them outwards, creating roads that interlink correctly.
  3. I'm looking into creating something using reversed straight skeleton. However no-one but you seems to have found a workable method within Houdini that I can tell. Is there any chance you would write a tutorial or release your straight skeleton method. I checked your file on orbolt, but its a file that even if I were to pay 130 dollars It won't allow me to learn from it. I'd rather pay for a tutorial than for a tool I can't learn from.
  4. I would suggest using the find shortest path SOP. If you provide it with a proper grid of your terrain it can do exactly what you need. I tend to create these grids using a attribwrangle node. Have a look at the findshortest path advanced example for that. For rivers I would use a flowmap to set the cost of the paths, also to make them one directional, since you don't want your rivers to flow uphill. Next to that to set the start and end points. And if you need more help send me a PM, I can give you some pointers on how to make it do what you want.
  5. I would try to use the attribWrangle node and vex code in combination with a find shortest path node. I won't be able to provide you with an example right away, but I'll try to describe the way to do it: There are 2 ways I can think of to do this: 1: This method will work well for the example image of the initial post: By creating a single step - nearest point connection vex script, and then running the find shortest path over that to order your points. Use an AttribWrangle and make it do a point cloud operation to store the points within a certain distance to the current point in an array. Then loop through the array, give every point a temporary variable of VALID = 1. This loops through the array of points found by the current point. Now perform checks for each found point using if statements. If the point number found is the current point being processed set its valid state to 0. If the point found has a point number lower then the current point set it valid state to 0. Then using an if statement, push the point numbers of only the valid points into a new array. Then exit the loop. Outside the loop, find the point number in the array with the lowest and highest value. Now create a primitive using vex (a two vertex polygon line) between the lowest valid point number and the current point number. Do the same with the highest valid point number. If a point does not have any valid targets due to the culling, skip it. Now you will have a system that constructs a maximum of 2 lines per point. This won't be perfect, as it can do branches, but the trick now is to use the start of your curve, (ensure there the shape you just generated is not closed, it has to have a end and start). Use the find shortest path node's distance function to write out the distance from the start point on your curve. Then, delete away the primitives, sort the points by this distance attribute and use an add node to connect everything together. And there you have it, one curve created from your point cloud image. 2: This method is slightly different, and is best suited if you want to create a curve through a curve through a dense point cloud. you can make a cloud-grid using the nearest point connection vex script described above with some changes. But this one is simpler, simply make it do a connection to every point in range (every point in the point cloud array it finds). This will connecting all the points to their nearest neighbors. You can then use the find shortest path node to navigate the grid. You can do this using way points if you do not need it to navigate every point in your cloud, or using a negative cost per point. This last method will do the traveling salesman method, where it attempts to pass through every point in your grid at least once.
  6. So far I've only seen these new functions in their pure VEX form inside wrangle nodes. Adding an attribute in VOPs should be as simple as an ADDATTRIB, or BIND VOP though.
  7. A function for the resample SOP that allows curves to be resampled based on an attribute on the original curve. (Allowing a curve with variable resample distances, so certain areas have a higher concentration of points then others).
  8. Version 198 is still pretty buggy, but its a version that's (judging by the version number) already a few weeks old. So i'm expecting the next daily build to have fixed several bugs. Any bugs you encounter, make sure you submit them to the bug tracker on sidefx.com The more bugs can be identified quickly, the faster they can be fixed.
  9. By default its Heuristics are set to A* but you can change that to act like Dijkstra's Algorithm by typing 0 (*zero) in the heuristics field. Its also got functionality for custom point, edge and turning cost, directional connections (based on vertex order), forced connections and connections to avoid. It can output one path, several paths from a start to multiple ends, or a path from each start to each end respectively. By specifying a second input, and setting the start and end point number to 0 and 1 (instead of a group name) the pathfinder will use the closest point on input 1 (the grid) to these respective point numbers from input 2 (for example a curve). This allows for a fast, interactive workflow. Finally it can export the distances across the grid based on this setting and export distances from all points to the closest start point, or export distances through a large array attribute for each point to each other point. Finally, the entire algorithm uses a pre-computed look up table method, making it extremely fast, easily able to deal with a large amount of data quickly. Look up the examples in the help files from some in depth examples.
  10. I just read about the PolyCut node YES!!!
  11. Do check the new FindShortestPath SOP. Its a very impressive pathfinder with tons of features.
  12. To my knowledge unloading is only really effective if you are not doing a recursive or manual operation on or from an unloaded node. Otherwise it will have to recook the node constantly and with recursive nodes it can increase cooking time significantly. Starting from Houdini 13 you'll be able to create polygonal geometry using Wrange nodes. Things like making curve connections between points based on distance is really neat, and it can be made 100x faster & memory efficient with a wrangle node then doing it with a for-each node.
  13. Very impressive tool, UV'ing isn't one of Houdini's strongest points, so this could come in handy.
  14. The ability to fuse and snap points not only on average point position or highest/lowest point number, but also based on a weight attribute. So a point with 90% weight will only be displaced slightly while a 50% weight is displaced far more. Like tug of war, the strongest contender is moved the least. Attributes on the fused points could be blended in the same way. The node could also include options for MIN, MAX, MODE, besides BLEND. So if 2 curves are fused with say 2 different colors values, using BLEND it will blend the fused points colors in a weighted way. If set to MAX or MIN however, the color from the curve with the with the highest or lowest weight could be kept.
  15. Thanks Kim and Twan. I need it to be able to blend between a variable range of curves so a simple hardwire won't work. I did find a mathmetical formula to do it with. Take the weighted offset of each curve/point. Add these weighted offsets together. Also add the weights together. Divide the sum of the weighted offset by the sum of the weight. And the value you get back is the weighted average. I haven't worked much with chops so far, I need to have another look at those.