NVIDIA Research
An Approximate Mie Scattering Function for Fog and Cloud Rendering

An Approximate Mie Scattering Function for Fog and Cloud Rendering

ACM SIGGRAPH 2023 (Talks)

Path-traced multiple scattering in clouds using a single HG phase function (a) or HG-mixture (b) fails to match a tabulated reference Mie phase function (c). Our model (d) blends a HG forward peak with Draine's phase function to achieve a closer match without requiring large tables for evaluation and sampling. Note the overall brightness and apparent detail in the clouds in (c,d) as compared to the more approximate models (a,b). All renders are 8000 spp and roughly equal time.


The Mie phase function describes the complex shapes that arise when light is scattered by water droplets. Inconvenient tables of data are required to include Mie scattering in a path tracer. To avoid this complexity, analytic models such as Cornette-Shanks (CS) or Henyey-Greenstein (HG) mixtures are often used instead, resulting in a lack of accuracy for fog, clouds, skies and tissue. We show that a blend of HG and Draine's phase function can accurately match 95% of the Mie phase function over a wide range of droplet sizes. We provide a practical parameter fit for this mapping and derive analytic CDF inversion of the Draine (and CS) phase function, to produce a parametric approximation with fully analytic evaluation and sampling. In this talk we describe our fitting procedure, sampling derivations, and compare the proposed model to several others.

Draine + Henyey-Greenstein Blend

We use a blend of Draine and Henyey-Greenstein (HG) phase functions to approximate Mie scattering of visible light with water droplets in air. Our approximation (left) more closely approximates the desired shape than HG mixtures or Cornette-Shanks (CS). We present a fitted parametric model over diameter that consistently has lower error than HG mixtures (right).


    author = {Jendersie, Johannes and d'Eon, Eugene},
    title = {An Approximate Mie Scattering Function for Fog and Cloud Rendering},
    year = {2023},
    publisher = {Association for Computing Machinery},
    address = {New York, NY, USA},
    url = {https://doi.org/10.1145/3587421.3595409},
    doi = {10.1145/3587421.3595409},
    booktitle = {SIGGRAPH 2023 Talks},
    numpages = {2},
    location = {Los Angeles, CA, USA}