User Tools

Site Tools

Modeling Approach

The SpeedTree modeling approach is a blend of procedural modeling and manual editing. Vegetation models are typically too complex to model efficiently by hand, so the backbone of the modeling system is procedural. Once you have the model roughed out using procedural techniques, you can fine-tune it with a combination of curve editing and directly manipulating each part of the model.

Procedural Modeling

Models are built by creating a hierarchy of objects that create geometry. These objects are called generators. Each generator creates one or more components of the model based on its properties. These components are called nodes, and each node makes a specific geometry type like branches, leaves, or fronds.

The image below shows a simple generator hierarchy and the corresponding model.

The hierarchy of generators on the left is created in the Generation Editor. Notice that a single generator may create one node (in the case of the trunk) or many nodes.

Now, let's answer some common questions about the procedural aspect of SpeedTree modeling.

How does it know how many boughs to make?

Each generator has a group of Generation properties. These properties control how many nodes are made by the generator, and where they go. There are many different ways to do this, and getting these values correct is usually step one when you add a new generator.

How does it know to only put roots near the bottom?

Two of the Generation properties are called “First” and “Last.” All nodes appear somewhere between these two percentages on their parent. In this case, “Last” on the roots is a low value.

Why aren't all the leaves the exact same size?

Many modeling properties have a variance value. This value is randomly generated per node and is added to the generator value. In this case, the “Size” property of the “Leaf Mesh” has a value of 2.0 with a variance of 0.5.

Can I make branches near the tip of the parent shorter than those near the base?

Sure. That is accomplished by editing the parent curve of the length value. Editing parent curves is the best way to make the geometry changes based on where the branch is in the anatomy of the model.

Manual Editing

Editing properties on generators is the best way to make general edits to the model; however, you can switch to node editing mode to select and edit individual components. In this mode, property edits are applied only to the node selected, thus allowing you to fine-tune any property for that node independent of other nodes created by the same generator.

Now, let's answer some common questions about manually editing a model.

When I select a node, all of the property values are 0.0. Why?

Node edits are offsets to the value it was already given by the generator. So, 0.0 means “just use the generator value”. Any values that aren't 0.0 are added to the generator value before the node is computed.

Will I lose my edits if I go back and change the generator value?

No. The edits will remain in place, even if you go back and edit the generator further. The only time you'll lose a node edit is if you reset it yourself or the node no longer exists due to changes to the model.

Can I just do everything with node edits?

You can, but the model won't randomize very well and you're losing the power of the procedural tools designed to make modeling faster. You're typically better off to model procedurally as long as you can and save the node edits for the end.

Can I place and draw branches by hand?

Sure. Check out the hand drawing page for instructions on how to do that.