Skip to content

Ozone Absorption

The effects of Ozone Absorption in a Single Atmospheric Scattering model. Made with C++ and Vulkan.

Overview

The aim of this research is to investigate how incorporating an additional physical effect, such as ozone absorption, influences the perceived colour of the sky (as well as perceived realism), and how using different phase function approximations affects both the visual result and the computational performance of real-time rendering models.

More specifically, how does this additional physical effect influence the perceived color of the sky in a Single-Scattering Atmospheric Scattering Model. So in short, the question I sought out to answer was:

How does a single-scattering atmospheric scattering model compare visually and computationally when extended with ozone absorption and alternative phase function approximations?

Performance differences can be measured directly through profiling. Evaluating visual differences, however, is inherently subjective. To address this, a pairwise comparison survey was conducted where participants selected the more realistic image without knowing which model was used.

Process

The project is built on a physically-based single scattering model, implemented from scratch using Vulkan. Unlike many real-time approaches, this implementation avoids lookup tables and instead evaluates the scattering integrals directly in the shader using numerical integration.

Model

Rayleigh and Mie scattering are evaluated separately using numerical integration.

Ozone

Added as an absorption term, subtly shifting sky colour without scattering.

Integration

Midpoint sampling along the view ray, sample count controls quality vs cost.

Shader Flow

Vertex Shader

Performs numerical integration along the view ray & outputs accumulated Rayleigh and Mie scattering.

Fragment Shader

Applies phase functions & computes final colour contribution.

Post Processing

HDR rendering with exposure tone mapping.

Pairwise Comparison

Ozone
No Ozone
Ozone
No Ozone
Ozone
No Ozone

Results

Survey Findings

Blind pairwise comparison (44 participants)
- High sun: ozone preferred
- Low sun: non-ozone preferred

Performance

Ozone absorption and phase function selection introduce negligible overhead.
- Ozone absorption: minimal cost
- Phase function: negligible impact

Controls

Adjust Sample Count
Scattering parameter g
Sun Intensity
Exposure
Speed
Light Preset
Ozone Toggle
Phase Function Toggle
HDR
Movement
Rotation
Hover over an item

Description will appear here.

Images of Results

Sunset with Ozone
Sunset with Ozone
Late Morning with Ozone
Late Morning with Ozone
High Noon with Ozone
High Noon with Ozone
Sunset without Ozone
Sunset without Ozone
Late Morning without Ozone
Late Morning without Ozone
High Noon without Ozone
High Noon without Ozone

Read More