The following is a step-by-step breakdown of our print advertisement in the October 2009 issue of Computer Graphics World magazine. The entire scene was constructed within the SpeedTree toolset. As you'll see, the SpeedTree pipeline is unrivaled in both speed and flexibility as a means of modeling both realistic and stylized vegetation.
The centerpiece of the scene is the tree-turned-ghoul nicknamed the “Headless Horseman.” We wanted to show just how far the SpeedTree Modeler is capable of going in terms of quickly modeling any type of tree. In this case, a posed, character-esque model would showcase the flexibility of our system – the artist is in total control of the shape of the tree, to the extent that this one is barely recognizable as such. Continue to the following sections for details on each step of the modeling process.
SpeedTree 5.0 includes the amazing ability to hand draw branches directly on-screen as seen in this demonstrative video. Press down on the spacebar and draw a line from any existing scene geometry with either a tablet device or with the mouse. After drawing you can go back and edit individual control points, which we'll discuss in more depth later.
After setting up a few materials and prototyping some basic parameters on a standard trunk model, we had enough to create a template, or "brush," to draw with. Hand drawn parts must be attached to either the ground, or another part of the tree that is already in place. This is to maintain a proper hierarchical structure, e.g. the "finger" nodes must be attached to the "arm" node, etc.
After drawing the "legs," a torso needed to be built. Instead of drawing the torso directly from the top of a leg, a hidden base for the torso was put in place to sit on top of. That way, the legs could be manipulated as necessary without affecting the position of the rest of the body. Additionally, the torso needed to be thicker than would be permitted as children of the legs (in general, branch radius is limited by the radius of the parent node).
From there, arms were drawn off of the torso and fingers were drawn directly off of the arms. No need to get it perfect – we'll go back in the next step and adjust control points individually.
Various stages of hand drawing the rough body shape. The splines show the path drawn for each branch.
"Node editing" provides access to the transforms of not just individual branches and leaves, but also access to the control points which comprise hand drawn branches. Once a branch is drawn on-screen, the path of the cursor is converted into a Bézier spline with a configurable number of control points. Control points can be added or deleted after line creation.
Once in node selection mode, select any control points and freely manipulate them to create depth and 3-dimensionality, or just to change the way the spline was initially drawn. You can go back at any time and further edit control points as necessary. The skinning of the branch is computed after the splines, so textures and segments never become stretched.
Once again, to see this feature in motion please refer to this demonstrative video (about 45 seconds in).
NOTE: Node editing is not limited to hand drawn branches; any individual root, branch, or leaf can be rotated, scaled, or translated along its parent while maintaining hierarchical constraints.
Now that there is a good basic shape made from hand drawing, it's time to start procedurally adding details such as roots and vines, which would take too long to draw manually.
Procedural creation gives you the ability to randomize your results, allowing you to quickly experiment with unlimited variations. Additionally, parts of the tree can be saved off as templates for later use. In this way, a library of reusable (and randomizable) tree parts can be stored, passed around, and used to quickly build other trees later.
To make the Horseman model more interesting, it needed to be covered in moss, vines, leaves, and other "clutter." This is achieved by connecting a few preset branch definitions to the arms, torso, and legs of the model, then tweaking their properties until just right.
The goal here was to create the effect of a large network of vines and roots that appear to be tearing loose as the Horseman stands up and raises his arm. About 70% of the geometry was created procedurally, however it took only a fraction of the time to add the procedural layer as compared to the hand drawn base.
Procedural components are highlighted in the right-side images, plus a schematic view (bottom-right).
A "force" is a modeling aid that directly affects the growth direction of branches (video). SpeedTree allows you to import (and export) arbitrary objects to use as parts of the tree, or as "colliders" for the tree to grow around. These "mesh forces" are a powerful way to interact with the tree.
To create the multi-level root network, an older, simpler version of the Horseman model was used as a base. This made the hand drawing mechanism more responsive (far less geometry) and presented a cleaner palette to work off of. After hand drawing the roots they were exported as an OBJ file, and then imported back into the latest version of the Horseman model (from left to right below).
Meshes can be exported and imported in a variety of formats. Here, part of one tree was exported and merged with another.
The final piece needed to complete the Horseman model was, of course, the jack-o-lantern! The pumpkin was generated in the SpeedTree Modeler as branch geometry. The round shape was created with a distinct radius profile (below) and the ribs were created with a displacement map. A mesh was exported, edited externally then brought back in to the Modeler. Finally, the jack-o-lantern model was assigned to be a colliding mesh, forcing the fingers to grow over its surface, as depicted below.
After finishing the centerpiece, the rest of the scene needed to be filled with background content before rendering.
To expand on the jack-o-lantern idea, the pumpkin modeled earlier was reused as part of a pumpkin vine.Then, a cluster of vines and leaves were added, using various other forces to make the vines snake and twist over the ground plane.
This pumpkin vine was created from scratch for this rendering.
Finally, in the far distance, you'll notice several tree silhouettes. These trees are stock models from our extensive model library. Library trees can be used out-of-the-box, or custom tailored to suit your needs. Since these ones are only in the distance, the stock versions were sufficient (sans leaves).
Library Trees; Cherry Tree, Japanese Maple, and Red Delicious Apple.
The final render was done in Autodesk® 3ds Max® 2010 using the built-in mental ray renderer. All models were exported from the Modeler using its built in FBX exporter.
To rebuild the SpeedTree materials inside of 3ds Max, the SpeedTree Mesh Utility MaxScript (which ships with the SpeedTree Modeler) was used to process the materials appropriately. This script creates a translucent material for leaves and a mental ray displacement shader for the branch geometry, giving the bark a much rougher look. Optionally, the utility can also set you up to render ambient occlusion that was exported from the Modeler. The pumpkins in the scene use a subsurface scattering (SSS) material.
(left to right) SpeedTree Modeler interface, render setup in 3ds Max® (with SpeedTree Mesh Utility), and final render.
3ds Max is a registered trademark of Autodesk®, Inc.; mental ray is a registered trademark of mental images GmbH.
Following these general steps, you'll soon be creating your own stellar SpeedTree-powered scenes. Use the links below to obtain an evaluation version, or to learn more about SpeedTree Cinema.
Use the slider below the scene to rotate the view in 3D. Press play for continuous rotation.