René Truelsen (rtr at rtr.dk) and Morten Bonding (mobo diku.dk) © January 2008
Student project, 7.5 ECTS, supervisor: Kenny Erleben.
Department of Computer Science, University of Copenhagen

In this project we describe a combined method for growing, representing and efficiently rendering procedurally generated trees on commodity hardware.
Modified Fractal-plant L-system growth from age 2 to 7
We use Context-free Stochastic Parametric L-Systems for simulating simple tree growth, and use a command-driven skeleton data structure, normally used for character animation, to represent and generate the geometry.

We use the geometry in a dynamic level-of-detail scheme, integrated into a slice-based volume rendering impostor.

Slices at different levels of detail
The data structure of the impostor is represented in a way, that allows for shader-based transitions and "early exits" in the rendering pipeline to achieve optimal performance. Each slice contains a projection of a given subset of the geometry, enabling us to render a plausible and fast approximation of the original geometry.
Level of detail scene
Using an optimized Vertex Buffer Object based batch rendering, we can render up to 10.000 trees at a frame rate of 20 to 50 fps, depending on the hardware in use.
Videos
- » Geometric age 4 growth(XviD 512x384)
- » Geometric age 5 growth (XviD 512x384)
- » Geometric aging 4-5 (XviD 512x384)
- » Impostor vs. geometry (XviD 512x384)
- » Scene with 2025 trees (XviD 512x384)
- » Impostor showing LOD (XviD 512x384)
- » Full scene flyover (XviD 512x384)
- » Full scene flyover (XviD 640x480)
- » Full scene flyover (XviD 1024x768)
- » Full scene flyover using LOD (XviD 640x480)
