Leaf Object

Leaf object generates leaves and needles along the surface of its parent branch object. To create a leaf, select a branch object or some of them and hit the Leaf tool button in the tool control bar, or select the pull down menu Methods/Branch/Leaf.

Note that leaves are generated only for the direct parent object - parents of parents are not taken into account.

A branch object can have multiple leaf children. All leaf objects are considered active every time the parent branch object determines to insert a leaf. For example, a branch of a rose can have three sub leaf objects: a 'spike', a 'flower' and a 'leaf'.

One leaf object adds leaves for the trunk and another one for the branches

Leaf object has the following attributes:

Type: Defines the type of leaf geometry. The choices are:

Leaf types from left: Copies of Nurbs modeled curved surfaces, 2D particles, 3D particles and clip+texture mapped flat quads

Own Hierarchy: If set, the actual leaves generated by this leaf object are placed into a separate folder. This can be necessary when the plant object includes multiple leaf objects and you want to attach a unique material map to each type of generated leaves.

Size: Size of leaves. The three values represent length, width and thickness. Thickness is irrelevant for flat quadrangles. For 2D particles, the values define length, start and end radius.

The plant on the left has all its leaves in a same folder. On the right, the Own Hierarchy option places the leaves into separate folders so that they can be textured individually.

Random Size: Randomizes the size definition components. The random factor is multiplicative: a value triplet (1, 1, 1) will give each particle a random size between zero and the defined full size. A value triplet (0.5, 0.1, 0) varies length by 50 % randomly, width by 10 %, and thickness will get no random variation at all.

SeparateRnd: If set, an independent random value scales each leaf dimension. An example: an orange tree has 3D particle leaves as fruits. The maximum leaf size (radius of oranges) can be 0.05 0.05 0.05. Because some oranges are big, some small, the Rnd Size can be (0.5 0.5 0.5) for 50 % size variation. Separate Rnd must not be set, because it would make some oranges long and thin, some flat.

Leaf Angle: The angle between the leaf and the branch from which it is growing. Note: the angle around the branch depends on several other attributes of the parent branch and the leaf itself, such as twist and horizontal spread.

Random Angle: Randomizes the angle between the leaf and its parent branch. Randomization is additive: a random value 1.0 adds a random angle variation between -90 ... +90 degrees to the regular leaf angle.

Horizontal Spread: Guides the leaves to spread out horizontally around the branch. Horizon direction taken from the blue z axis of the object space of the plant root level. Many plants grow this way: the purpose is to catch as much light as possible. Note that will full horizontal spreading level 1.0, leaves may start overlapping unless there is a sufficient amount of position randomization.

Horizontal spreading increases towards the end of the branch

Spread by Age: Changes the horizontal spread by the age when leaf started to grow. The actual spread parameter is the sum of the constant spread and the age dependent spread. If Horiz. Spread=0, Spread by Age=1.0, full horizontal spreading is achieved at the end of each branch. If Horizontal Spread is 1 and Spread by Age -1.0, spreading reduces towards the ends of branches.

Random Position: Randomizes the position of leaves. If the value is zero, leaves will grow in regular rows and columns along the branches. Full random level 1 places the leaves to totally random positions.

Regularly and randomly positioned needles

Shift: Applies regular incremental shift to leaves. Shift is incremented by U direction (= around the parent branch), and moves each leaf along the branch. For example, if U density is 2 and Shift = 1.0, leaves switch the side of the branch regularly. In other words, Shift parameter produces spiral like distribution of leaves around the branches.

Both plants have Leaf Shift set to 1.0. Parent branch's leaf density in U direction is 2 on the left, 20 on the right. High U Density reveals the spiral form distribution.

Gravity: Guides the leaf orientation to take gravity into account. The direction of gravity is defined by the plant's root object's z axis (blue axis line). The higher the gravity, the more leaves will hang down. A negative gravity value makes leaves to grow upwards (to simulate light attraction etc.).

3D particle leaves are spread sideways using a high horizontal spread value, and then pulled down using some gravity

Age Distribution: The distribution of this particular leaf type in the plant by age. A rapidly ascending curve that starts from x=0.9, y=0 and ends at x=1, y=1 will guide the leaf to grow only at the end of branches. For example, plant flowers can be made to grow only at branch ends this way.

Distribution for leaves, which grow only at branch ends

The curve defines a stochastic distribution for the event that the leaf grows at a certain age. For example, if the curve travels at the 50% probability level (y=0.5), about one half of the attempts to grow a leaf of this leaf type will succeed.

[Note] Note
Each branch object has top-level controls Leaf Density U, Leaf Density V and Leaf Density Curve. These properties control all sub leaves the same way. The Age Distribution curve gives a more detailed, leaf specific control.

Colors: The From and To fields define a color variation range for leaves. Each leave gets a randomly picked color from the defined range. The age distribution curve below these two fields define another color which depends on leaf's position in the plant (0 at the root, 1 at the end of branches). The final color is the product of the random color and the age dependent color.

Leaf colors variate from yellow to green. Old leaves are darker than young leaves.

Note: Leaf colors are evaluated and stored only when the Set Colors option of the plant's seed object is enabled. If colorization is done using materials and texture maps, which replace the colors computed using the options above, it is wise to turn the Set Colors option off to save some memory.