top of page

Procedural Forest

Result of R&D

​

At the beginning of Fall semester of production, the Dragon short group, only knew of MASH for instancing large quantities of assets when set dressing. MASH is powerful and works extremely well using Arnold. One of my jobs was to explore the most efficient and effective method to generate the forests for our shots. To explore the group’s options for forest generation, I looked in the procedural instancing Houdini offered. Houdini has an advantage on MASH being the option to create masks from objects instanced along a surface allowing for multiple layers of instancing to occur without any interpenetration happening. When creating a forest environment, there are thousands of assets that are instanced into the scene and managing interpenetration manually would be far from efficient. Being able to draw masks based on objects presents a massive time saver and a clean scene overall. Cylinders were used in the images below to mask without using heavier tree assets.

​

​

​

​

​

​

​

​

​

​

The challenge of using Houdini for our forest generation is it would need to work with the Speedtree plugin as our forest generation vegetation were made only in Speedtree. Ethan Pflugh and Johnny McLean having created the assets in Speedtree exported the vegetation with their textures complicating the process due to Speedtree’s method of export being unusual compared to other programs. A plugin is necessary to blend the textures with the vegetation. Unfortunately, the plugin would load the vegetation into Houdini incorrectly due to not receiving any current updates from the Speedtree company. Maya’s plugin works as intended and imported the vegetation along with their textures. Houdini could generate a forest quickly while looking better than MASH, but these problems were adding up and more time could not be devoted to more R&D at the time.

​

​

​

​

​

​

​

​

​

​

I have ideas for improving the Houdini workflow for forest generation. I also now know Houdini can generate Arnold standins allowing for lighter and more optimized exports. If time constraints allow it, I will investigate it. If not, MASH offers a workflow that works and renders while instanced.

​

MASH offers a functioning workflow with its only disadvantage to Houdini being its method of instancing on a surface. In the group’s proven workflow using MASH, each kind of vegetation is placed in a separate MASH system with each system having its own mask guiding generation. The masks must be painted by hand, which is far less efficient than that of Houdini. A new feature in MASH is the world node that places objects in the way a real-world forest grows. The node places the objects from origin and expands them across the surface as seeds and time (in years) grow in number. The node sounds amazing but struggles under load and in large scale scenes. The node failed to meet expectation and the needs for our needs although it was designed to do exactly what we need. A failed node in MASH is a result from its creator no longer offering updates and fixes for the past couple years. Although MASH is slower to generate a full forest, it functions and offers what the group needs for our short.

​

​

Forest Generation Procedure (New Workflow so Below is No Longer Used)

​

A plane is made in Maya and sculpted using Maya’s basic sculpting tools to create any slopes or break up for the ground needed. UVs are generated then plane is exported as an .obj. The .obj is brought into Houdini and projected onto a heightfield in order to take advantage of the software’s terrain tools. Projecting the .obj plane onto the heightfield allows for a more controlled starting position that can be built upon using Houdini’s terrain tools. Once the terrain is at a satisfactory position, the heightfield terrain is split up into tiles, converted into polygons, and exported as an .obj to be imported back into Maya. Export should happen for high poly and low poly versions. The high poly version would be tiled into smaller pieces for lighter files then exported. The low poly version would be exported without being tiled as the entirety of the mesh is needed as one object when instancing assets onto it. The low poly mesh reduces calculation time and speeds up the workflow while keeping to the general shape of the high poly terrain.

​

Before instancing begins, all forest vegetation assets must be converted into Arnold standins. The standins help light the scene load without taking any visual hits.

​

Now that the terrain is back in Maya and all vegetation has been converted into a standin, MASH instancing can now begin. For our forest, rocks, trees, bushes, plants, flowers, and grass were all created to be instanced throughout the forest scene. The rocks would be the first to be generated as they would prevent a tree from growing on them. Trees would follow with bushes and plants being instanced afterwards. Flowers and grass would be last to act as fillers for any area of the ground that has not already been covered by the previous vegetation. All MASH systems were generated with a painted mask telling the instancer to avoid previously placed vegetation. When creating all of the MASH systems, I have painted the expected area that any character animation and interaction may occur. In the areas where character interaction is expected to occur, Ethan Pflugh or I will manually set dress the vegetation, still using MASH, allowing us to remain in full control of the scene’s design while maintaining instanced assets.

​

Once all MASH systems have been generated and finalized, the lighting stage can begin. The Dragon group is aiming for a realistic look and feel for the forest; therefore, volumetrics will be applied to certain lights to give the humid, volumetric appeal that is usually seen in a real forest. Animation and other assets would be brought into the scene set dressed to fit the cameras in various shots.

O__forest_generation_forest_generation_v
O__forest_generation_forest_generation_v
O__forest_generation_forest_generation_v
bottom of page