Rendering Trees with Indirect Lighting in Real-Time
High quality lighting is one of the challenges for interactive tree rendering. To this end, we present a lighting model allowing real-time rendering of trees with convincing indirect lighting. Rather than defining an empirical model to mimic lighting of real trees, we work at a lower level by modeling the spatial distribution of leaves and by assigning them probabilistic properties. We focus mainly on precise low-frequency lighting that our eyes are more sensitive to and we add high-frequency details afterwards. The resulting model is efficient and simple to implement on a GPU.
The contribution of indirect lighting is of high importance within a set of leaves due to the large number of reflections and transmissions of light that take place in this set. The following images show a comparison between a photo of a real tree and our rendering method. We are able to reproduce the different lighting effects inside the tree.
To emphasize the importance of indirect lighting, the following images compare a rendering without and with this lighting component. The lack of indirect lighting results in dark regions due to numerous occlusions of leaves.
Trees are most of the time present outdoors. We then define the lighting environment as follows: an environment light source (sky and reflection of sky light off the ground) and a directional light source (sun). Our approach is totally dynamic: radiance from the sky and the sun, and position of the sun can be modified as desired. The following images show the different lighting components. The first one is direct lighting from the sky and its reflection off the ground, the second one is direct lighting from the sun, the third one is indirect lighting from the sun after one bounce off neighbor leaves, the fourth one is the sum of all components.
Variations of sky light and sun light have strong influence on the appearance of trees. The following images show the same tree at different times of the day. These images are generated in a real-time application, no expensive computation is needed to switch between images.
Our model can be easily applied to different kinds of tree and to scenes containing many trees. It can be easily embedded into existing shaders in the GPU. We measured the impact of our lighting model on rendering speed by rendering a set of trees with different sets of light components. We tested our algorithm on a nVidia GeForce 8800 GTX using HDR lighting. Each rendered tree is highly detailed (about 98,000 triangles).
|Light components||1 tree||4 trees||100 trees|
|direct from the sky only||
|direct from the sky and the sun||
|direct from the sky and the sun + indirect from the sun||
We remark that the addition of the indirect lighting component has a small impact on performances (less than 7%). Our method only takes 0.4 to 1.5 millisecond per tree depending on the total number of trees. There is a small precomputation time, 2 and 40 seconds for trees of 1,500 and 40,000 leaves respectively. This precomputation has to be done only once, it is independent of lighting conditions and so can be stored with the tree mesh.
This work has been accepted for publication at the 19th Eurographics Symposium on Rendering 2008 in June 2008.
The trees are modeled using the XFrog software.
- Kévin Boulanger
Real-Time Realistic Rendering of Nature Scenes with Dynamic Lighting
PhD thesis [pdf] (contains all details about the algorithm)
- Kévin Boulanger, Kadi Bouatouch, Sumanta Pattanaik
Rendering Trees with Indirect Lighting in Real Time
Computer Graphics Forum (proceedings of 19th Eurographics Symposium on Rendering 2008), vol. 27(4), 1189-1198
If you want to have a quick preview of the video, here is a Flash version:
For up-to-date details on how the algorithm works, you can read the chapter on trees in my PhD thesis:
For a quick overview of the algorithm, you can look at the presentation slides of the conference:
If you have any comment, you can contact me at firstname.lastname@example.org