4.11. T REES AND V EGETATION Rendering of trees and vegetation
Rendering flora
Video not available in on-line slides
Grass is typically rendered using (randomly) placed intersecting quads which are texture mapped and rendered with an alpha test. The grass quad are crossed (using a star-like configuration) to ensure good visual quality independent of the line of sight.
Different alpha/depth tests can be used at runtime to suitably render a clump of grass quads and provide the appearance of densely packed grass.
In a vertex shader the top two vertices of each quad can be animated (using a combination of sinusoidal waves) to provide a natural looking wave modelled motion due to wind effects. By having separate animation parameters for each cluster or clump of grass, more chaotic (i.e. natural) behaviour can be introduced.
When lighting the grass, the quad’s normal may also be updated to reflect the grass movement. Alternatively, the colour change can be simulated by directly modifying the rendered colour based on the oscillations.
Rendering trees
Video not available in on-line slides
At a distance, a tree can be adequately rendered using a billboard or imposter. Up close, trees are typically separated into two different parts: solid component of the tree (trunk and branches) foliage or leaves. The trunk and the branches are represented using a triangle mesh. Leaves are represented using an image of a leaf group textured using a quad.
Minor branches can be approximated by simple polygon strips
Leaves are rendered as texture mapped quads
More sophisticated tree rendering deals with issues such as silhouette clipping
Or accurate leaf shadowing / lighting
Directed reading regarding trees and vegetation Directed reading
Directed reading Read GPU Gems - Rendering Countless Blades of Waving Grass – for coverage of how to render grass Read Creation and Rendering of Realistic Trees – for an early paper on generating trees Read GPU Gems 3 - Next-Generation SpeedTree Rendering – for an exploration of current tree rendering approaches
To do: Read the directed reading Think if you would like to implement either approach within your project Today we explored: Overview of vegetation rendering Overview of tree rendering