Hey all, I haven’t posted here in a bit, but I have taken on some small projects in my spare time. I have a longer term project coming up and wanted to begin creating a library of environmental assets and some procedural tools to help me generate assets a bit faster, since I’ll be creating some of the work on my own initially.
The initial idea was to create a number of assets for an outdoors scene, which meant a combination of organic and hard surface assets. As we know, trees and rocks would be extremely time consuming. I also knew that I would be using rope as a featured element in many locations so I needed a fast way to generate and pose ropes. For these things, I decided to get back into Houdini, in combination with ZBrush, to take advantage of the native procedural tools in Houdini, and high-resolution detailing and preferred re-meshing inside of Zbrush.
Trees:
For some, I started with ZSpheres and went from there. For others, I went with a procedural L-System approach as a base, poly-wired in Houdini, and eventually exported that into ZBrush for detailing. Below is an example of an L-System tree that has been poly-wired, without hi-res detailing. From here I made an OTL that allows you to position a bounding box to determine the ‘top’ of the tree. It scatters points within that region and copy stamps pre-UVed poly-cards with a random rotation to each of those points. This was a great way to get something that resembled a game-resolution tree fairly quickly for me.
Ropes
I didn’t really look, but I’m pretty sure there are plenty of rope generators out there for Maya, but while I was in Houdini land, I tried using this technique myself. The setup is fairly simple for this one: three poly circles are lofted and revolved around a curve with some additional twist parameters. You can pose and stretch the curve and the amount of resolution, revolutions along the curve will increase dynamically in order to keep the ropes consistent. For this one, I still need to add a tube extrusion that shrinkwraps onto the high-resolution rope so that I can export a lower resolution mesh for use in the game engine.
Rocks and Rockwalls.
Rock generators are common, but the setup inside Houdini is pretty straightforward. Scatter some points, copy some polyspheres or something even lower resolution around, add some noise to the mesh for variety, and in many cases (pending hero rocks), you’re all set. For things like walls that are formed out of rocks/stones however, I decided to set up something else. In this example, you provide a mesh of any shape, that is roughly the shape of the objects that you would like to be populated with rocks. I remesh that geometry, use a voronoi fracture on that mesh, and close all of the gaps within the fracture. Houdini makes that part incredibly easy. From there, I subdivide the entire mesh and put some extra room between each of the rocks. The really cool thing about this approach is that you’re guaranteed that there are no intersecting rocks along the wall, and you have controls for low-to-high frequency fracturing to adjust the size of the rocks. I used this for some rock walls and for generating stones around a campfire.
Other than this, I had some fun with some other “hero” assets that I didn’t make a tool for, which you can see in some of these IP development and assembly tests:
Thanks for checking these out!
-Dave