SpeedTree
    Show / Hide Table of Contents

    Curves

    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

    Use parent curves for modeling realistic foliage behavior and to make parts of the tree behave or appear differently based on where they are growing on the tree.

    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. The node position reference, either relative or absolute, depends on the evaluation mode you select.

    Parent curves also allow you to fine tune results by using different curves at different parent levels.

    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.

    The curve editor window shows a curve that produces a tree with branches of the same length, which is illustrated beside it. Another curve editor window shows a curve that produces a tree with branches longer at the bottom than at the top.

    Parent curve evaluation mode

    The node position reference that the Modeler uses to evaluate a parent curve depends on the evaluation mode you select in the Curve window.

    Parent curve window showing the evaluation mode selection dropdown

    Mode Description
    Relative Evaluates the curve against the relative distance between the node's Boundaries on the parent. Tree window showing the relative distance between the node boundaries
    Absolute Evaluates the curve against the absolute Length of the parent. Tree window showing the parent absolute length

    Parent level

    Use the parent level setting to apply different curves at different parent levels. This setting is located on the Curve Editor toolbar.

    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 suppose 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 combo box 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)

    The curve editor windows are configured to produce example trees 1, 2, 3, and 4.

    Profile curves

    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.

    A curve in the curve window preset to "Droop" shape. Next to it is a branch radius reflecting the "Droop" shape. Below, a curve set to custom shape. Next to it is a branch radius reflecting the custom shape.

    Note

    Profile curves work down the length of the node. Each node of that generator will be affected equally.

    Resolution curves

    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.

    The Curve Editor when a resolution curve is applied.

    Distribution curves

    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, you can see the effect 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.

    A distribution curve in the curve editor window shows the effect of no distribution curve on a tree, producing a tree with evenly distributed nodes. A second distribution curve in another curve editor window shows the effect of applying a distribution curve, with many nodes at the base and tip of the example tree and with very few in between.

    Pruning curves

    There is exactly one pruning curve per generator. The pruning curve will remove nodes wholesale based on their positions throughout the tree.

    The pruning curve window. Below it are two trees, one with pruning and one without. The tree with pruning has no nodes below a certain point, indicating the nodes' removal.

    LOD curves

    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 LODs.

    Editing the highest LOD state with LOD curves

    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 set up 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, refer to Level of Detail.

    Copyright © 2023 Unity Technologies
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX.