Efficient modeling of trees with the SpeedTree Modeler requires an understanding of curves and how to use them effectively. You can generally think of curves as a “volume control” on your tree properties. The static value of the property, either the default or one you've entered yourself, can be thought of as the maximum volume. The vertical position of the point on the curve then represents the percentage of that maximum, and the horizontal position of the point on the curve determines where that value of the property will be applied. For more information about standard curve shapes and how to adjust curves, please see the Curve Editor page.
Below you will find a detailed explanation of each of the several curves that SpeedTree employs.
Parent Curves are the green curves associated with many tree properties. They distribute values based on how far along the parent each child node occurs. This lets the user make parts of the tree behave or appear differently based upon where on they are growing on the tree. This is a simple and powerful mechanism for modeling realistic foliage behavior, as no two branches are ever exactly alike on a real tree.
Green curves are special in that they have a setting to fine tune their results: Parent Level. This setting is located on the Curve Editor toolbar. While grasping the concept and importance of Parent Level might be hard initially, once it is figured out the process of tree modeling will seem much more intuitive overall. Note: The Cascade setting available in previous versions of SpeedTree has been abandoned in favor of a more robust calculation of the “Parent Level”.
Note: The effect of editing the parent curve for length in the images below. In the second picture, the curve makes branches near the bottom of the tree longer than those near the top.
Supposing you had a tree with four levels of generators: Tree, Trunk, Big Branches, and Little Branches. (Tree #1) What if you wanted to adjust the length of the little branches so that they are smaller at the ends of the big branches than they are at the base? Then you would merely edit the length curve without changing the parent level, as the automatic behavior of curves is to select the direct parent of the current generator. (Tree #2)
But supposing you wanted the branches to get smaller toward the top of the tree rather than toward the end of the branches? You need to change the parent level of the curve to the Trunk rather than the Big Branches, which you do in the combobox in the upper left corner of the curve window. (Tree #3)
What if you wanted the Little Branches to get smaller both toward the top of the tree and toward the end of the bigger branches? New in SpeedTree 8 is the ability to compute compound curves. So in the curve editor, you can adjust the curve for multiple parent levels. (Tree #4)
Profile Curves are colored light blue and affect each node in a generator the same way. This makes them work well with parent curves. Parent curves govern the group as a whole while profile curves are applied the same to each member of that group.
The Branch Skin Radius property provides a helpful example. If the radius of each branch remained constant, they wouldn't look like natural branches, but instead like logs. In real life, branches on a tree taper from base to tip. Branches are told how to taper in the SpeedTree Modeler with a profile curve. The profile curve in this case is rotated around the center of the branch with the left side of the curve corresponding to the branch base and the right side of the curve corresponding to the branch tip, as in the example below.
Note: Profile curves work down the length of the node. Each node of that generator will be affected equally.
Resolution Curves are curves applied as you change the Resolution of a VFX tree. For instance, you can decrease length segments on branches as you move to lower resolutions.
The Curve Editor will look slightly different, indicating from where in the curve the resolution levels are sampled.
For some properties, instead of a parent curve, there may be an orange “distribution” curve. Like parent curves, distribution curves govern a group of nodes all at once. Distribution curves differ in that they control the spread of a fixed number of nodes.
If you look at the example on the right, you can see the affect of a distribution curve. The curve on the bottom has been set so that the fewest level 1 branches will occur around the middle of the tree, packing most of them near the base and tip of the trunk instead of evenly, as is the case with the top curve.
There is exactly one pruning curve per generator. The pruning curve will remove nodes wholesale based on their positions throughout the tree.
Dark blue curves are LOD (level of detail) curves, and only occur in LOD property groups. LOD curves govern the progression of the LOD sequence for each LOD property. In most cases, a linear progression is best suited, so that each LOD step simplifies the tree about the same amount. At times, however, it is beneficial to force a particular LOD state either earlier or later in the sequence than would occur linearly. This is achieved via LOD curves.
With LOD curves, the left side of the curve always corresponds to the highest LOD state (1.0), and the right side always corresponds to the lowest LOD state (0.0). This lets you have some play with the results of LOD. If your LOD step is too aggressive, move the right endpoint up a little bit to soften the effect at lower LOD's.
Inversely, the left endpoint can be adjusted to alter the highest LOD state. Use this method with care, however, since these kinds of edits can easily convolute a tree setup for users who are not familiar with LOD curves.
With that in mind, editing the highest LOD state does hold a great deal of power for advanced users. For instance, to reduce polygon counts, slightly lower the left endpoint of the Branch Volume Threshold Property on the highest branch level. A few of the smallest branches will be removed, but any children (such as leaves) will remain as part of the tree, since the “phantom” branches they were growing from are only hidden via LOD, instead of being hard-deleted.
For more info on LOD, please refer to the Level of Detail page in this documentation.