Atmospheric Scattering Revisited
Posted: 10.06.2010, 00:52
Here's a video of some work I've been doing on using precomputed atmospheric scattering textures to produce much more realistic renderings of planets with atmospheres:
http://www.youtube.com/watch?v=vSNgxvshR6o
Note that there's no cloud layer texture in the video; the planet surface is hidden by atmosphere and nothing else.
The approach is similar to that used in the scattersim utility in the Celestia tools folder except that the rendering is performed on the GPU. Clever parameterizations are required to pack all the required tables into reasonably sized 3D textures for OpenGL. Some of the improvements over the techniques in scattersim were suggested in a paper by Eric Bruneton and Fabrice Neyret:
http://www-ljk.imag.fr/Publications/Bas ... rticle.pdf
As Fridger mentioned, the current implementation of atmospheric scattering in Celestia is simplified in order to run in real-time. Celestia's approximations unfortunately don't work very well with optically dense atmospheres like those of Titan and Venus. A workaround is to calculate most of the scattering integrals ahead of time and store the results in large 3D textures (about 1MB per atmosphere). So, you trade some flexibility for greatly improved rendering quality.
--Chris
http://www.youtube.com/watch?v=vSNgxvshR6o
Note that there's no cloud layer texture in the video; the planet surface is hidden by atmosphere and nothing else.
The approach is similar to that used in the scattersim utility in the Celestia tools folder except that the rendering is performed on the GPU. Clever parameterizations are required to pack all the required tables into reasonably sized 3D textures for OpenGL. Some of the improvements over the techniques in scattersim were suggested in a paper by Eric Bruneton and Fabrice Neyret:
http://www-ljk.imag.fr/Publications/Bas ... rticle.pdf
As Fridger mentioned, the current implementation of atmospheric scattering in Celestia is simplified in order to run in real-time. Celestia's approximations unfortunately don't work very well with optically dense atmospheres like those of Titan and Venus. A workaround is to calculate most of the scattering integrals ahead of time and store the results in large 3D textures (about 1MB per atmosphere). So, you trade some flexibility for greatly improved rendering quality.
--Chris