= A Realistic, Generic Earth/Atmosphere Model - CS348B Final Project = == Author == Dick Brouwer === Overview === Rendering scenes, especially outdoors, generally involves using manually created environment maps to realistically render skylight. Especially for twilight scenes with very diverse lightning conditions no suitable tools are readily available. I want to create a generic model for rendering a realistic sky for a given position on the earth, season, time of day and atmosphere condition (e.g. foggy, polluted etc.) to replace outdoors environment maps. My model should therefore not be too computational intensive. To accurately render skylights many atmospheric effects have to be taken into account, inluding: * Solar irradiance spectrum and its absorption in the ozone layer * Wavelength-dependent refraction of direct sunlight in the atmosphere * Climate-dependent composition and size distribution of aerosols / dust particles * Height-dependent air, humidity, and aerosol density * Rayleigh scattering (air molecules) and Mie scattering (aerosols) * Radiative transfer (multiple scattering) * Illumination of the atmosphere by the earth's surface (small, so neglected in my discussion) Important papers related to these issues are: [http://www.mpi-inf.mpg.de/~magnor/publications/tog05.pdf Physically Based Simulation of Twilight Phenomena], [http://www.mpi-inf.mpg.de/~lintu/papers/wscg05.pdf Realistic Solar Disc Rendering] and [http://www.cs.utah.edu/vissim/papers/sunsky/sunsky.pdf A Practical Analytic Model for Daylight]. Example images of beautiful skylights are plentiful. Here are some examples of the images I would like to reproduce: attachment:sunset_dunes.jpg attachment:oasis_sunset091206.jpg attachment:sunset_water3.jpg === Techniques Used === ==== 1st Attempt: divide the atmosphere in cells and layers ==== The most realistic way of rendering the sky is to divide the atmosphere into hundreds or thousands of different layers. Each layer is then split into different cells (see pictures). attachment atmosphere%20cells.png attachment:atmosphere%20layers.png === Approach === ==== Step 1: Sun/Earth Positioning ==== As a first step I need to model the sun's position relative to the earth given certain input parameters. Because this calculation does not need to be dead-on accurate I can make some simplifying assumptions like using a spherical earth. This should make these calculations fairly straighforward. My input parameters would be: "Time-of-day", "Position on Earth (latitude/longitude)" and "Day-of-year (seasonal dependence)". Next to calculating the position of the sun I need to collect data on atmospheric conditions. Some I will asume fixed (e.g. athmosphere temperature layers etc.) and others will be parameterized like humidity and aerosol distribution. ==== Step 2: Atmosphere Modeling ==== to realistically render the sky I need to calculate direct and indirect illumination of the whole atmosphere. A schematic description of the earth is depicted below: attachment:earthmodel.jpg Some different effects I will have to consider are: * Absorption in the Ozone layer * Atmospheric Refraction (wavelenght dependent) * Scattering (both Rayleigh scattering caused by air molucules and Mie scattering caused by aerosol particles) * Radiative Tranfer (the 'global illumination' in the atmoshpere) * Reflection from light on the earth's surface up into the sky (probably negligible) ==== Step 3: Creating Sky Environment Map ==== Because of the computational intensity of the above-described processes I could potentially output the skylight in an HDRI environment map for re-usage. PBRT can automaticall plug-in this environment map in it's calculation and speed-up multiple renderings using the same skylight. === Project Viability === I am currently researching the extend to which I can make this model 100% physcically accurate given the complex nature of the sky. I might have to use several approximations to speed-up the rendering process and the model the atmosphere. This general model could be re-used and expanded in subsequent research however and will definately get the 'basics' of skylight rendering right.