Leaf and Foliage Generation - Donovan Foster

Leaf generation is the process of creating realistic leaf textures and material properties that can be used on 3D trees.

Leaf Generation Pipeline

Foliage generation is the process of placing leaves on a 3D tree model in a way that appears realistic.

Foliage Generation Pipeline

Problem

The previous system, Tree Draw, lacks the ability to create trees with foliage. In the spirit of the previous research project, any leaves generated by the system should be generated from a user sketch, and should allow for variation. Additionally, these leaves should then be created into a foliage and placed onto a generated tree model. However, the structure of the tree is predefined, both by Tree Draw and other parts of Yggdrasil, meaning that foliage must be appended to the current branch structure in a way that appears natural and realistic, and allows for variation.

Research Question

Can realistic leaves be generated from a sketch, allowing for user-specified variation?

A system needs to be researched and developed that can take in a user-generated sketch of a leaf and create a leaf, consisting of front and back textures, as well as supporting image maps such as bump maps. This system must be designed to handle variation in such a way that the user can specify parameters such as size and colour, and have the system generate several similar, but unique leaves with those same parameters and sketch. Wherever possible, the procedural generation techniques should follow principles and models created from biological observation.

An additional requirement of the system is the abilty to create foliage for a tree model, given the model structure and the leaves to be used.

Leaf Creation

Leaf Creation Flow Diagram

Leaf Generation Cycle

Leaf Creation: Get Input From User

The system get the sketch and parameters from the user

Sketch Interface Parameter Interface

Leaf Creation: Growing Veins

The system shrinks the leaf down and grows it again, growing the veins at the same time. This models the natural processes that cause leaf growth. The system places growth hormones in the expanding leaf outline, and the veins grow toward these hormones. Vein size depends on the number of children.

Vein Growth

Leaf Creation: Texturing

The system textures the leaves with several different option that mimic different leaf colours and styles in nature.

Different Leaf Texture Types

Leaf Creation: Bump Mapping

The system creates a bump map that mimics the small variations in height and texture not handled by the texturing or meshing

Leaf Bump Maps

Foliage Creation

The foliage for a tree is created from a tree structure file from the Tree Draw system. The foliage creator runs through the file and finds all of the end points. It then places leaf clusters on each point. Before a tree is generated, the user selects the leaves he wishes to use, as well as parameters for how far they spread and how big they are.

Foliage Creation: Choosing Leaves

The user selects the leaves to be placed onto the tree from the menu

Foliage Interface

Foliage Creation: Creating Foliage

When the user creates a tree, foliage is automatically created for it. The system gives the foliage creator the tree structure, and it output a foliage that is then placed back on the tree.

Tree with foliage

Results

Results: Variation

All of these leaves were created from the same sketch, with the same parameters (with assigned potential variation)

Examples of variation

Results: Rendered Leaves

The end result of the generation process, a rendered, bump mapped leaf.

Rendered Leaves