Friday, May 3, 2013

The Importance of Ozone

As I've written about before (in particular here and here), ozone absorption has a big influence on the color of the sky during twilight. In particular, ozone absorption gives the sky its increasingly saturated blue color as the sun sinks below the horizon. You can easily see this effect in real life, especially if you are looking out the window from inside and your eyes are adjusted to the unchanging hue of indoor light. I recently rendered a new pair of images (below) to clearly illustrate the effects of ozone. I hadn't rendered before-and-after ozone pictures since adding aerosols to the atmosphere, so I wanted to create these updated images. The solar elevation angle in these renders is −4°. These are display-linear images—I haven't done anything to increase the saturation or contrast.

Twilight with ozone.

Twilight without ozone.

Thursday, April 25, 2013

Poster and Presentation

Here's a simple poster that summarizes my sky renderer project:

And here's a quick presentation that summarizes the project (I spoke over this when presenting it, so much of it doesn't have words; some of it won't make sense without narration):

Friday, February 1, 2013

New CMFs and More Accurate Spectrum Renders

I updated the color matching functions (CMFs) that my spectral rendering system uses to convert spectral power distributions to CIE XYZ. My new CMFs are the new, physiologically-relevant, 2-deg XYZ CMFs transformed from the CIE (2006) 2-deg LMS cone fundamentals. My old ones were the CIE 1931 2-deg, XYZ CMFs modified by Judd (1951) and Vos (1978).

I made some new images of the visible spectrum rendered into the sRGB color space. When you convert XYZ to sRGB you get negative color components when the color lies outside the sRGB gamut. Clipping these negative components to zero distorts the color. But if you add white light to the entire spectrum, you can bring the negative components into the displayable range, resulting in an accurate picture of what the spectrum looks like on a gray background. In each gray background image below, I added just enough white light to bring the most negative value to zero, and I set the range so that the most positive value maps to one. In each of the darker, black background images, I simply removed the white light. And in each of the brighter, black background images, I brightened the spectra just enough to utilize the entire displayable range.

New spectrum on gray.
Wavelength range: 390–830 nm.

New spectrum on black.
Wavelength range: 390–830 nm.

New spectrum on black, brightened.
Wavelength range: 390–830 nm.

New (top) and old (bottom) spectra on gray.
Wavelength range: 380–830 nm.

New (top) and old (bottom) spectra on black.
Wavelength range: 380–830 nm.

New (top) and old (bottom) spectra on black, brightened.
Wavelength range: 380–830 nm.

Old spectrum on gray.
Wavelength range: 380–825 nm.

Old spectrum on black.
Wavelength range: 380–825 nm.

Old spectrum on black, brightened.
Wavelength range: 380–825 nm.

Sunday, January 13, 2013

Sunny Bunny

Below is a new bunny render, lit by a new sky render with a solar elevation angle of 45°. Apart from the sky map and the exposure, the setup is identical to the bunny images in the previous post.

Bunny lit by 45° sun.

Here's a low dynamic range version of the sky render that I used to light the image above:

45° solar elevation angle.

Here's another new sky with a lower sun, shown here with the same exposure as the image above:

30° solar elevation angle.

I rendered these sky renders directly to equirectangular format. I rendered them at high resolution to more accurately capture the shape of the sun. The sun isn't visible in the images above because the sky around the sun is blown out. The images above are both re-exposed so that you can see the blueness of the sky, but I originally rendered them 3 stops lower to ensure that the bright sun could not exceed the half-precision floating-point maximum value (because the renders are saved as 16-bit OpenEXR images).

Here are LDR versions of the images with unmodified exposure:

45° solar elevation angle.

30° solar elevation angle.

By the way, the ground color in the bunny render doesn't match that in the sky render—the bunny render ground is tan, and the sky render ground is gray.

I also rendered some images of a gold bunny lit by the same 45° sun and sky, featuring photon-mapped caustics: