Literature on rendering volumetric materials and effects tends to use a lot of mathematical physics terminology. Let's say that I have a decent handle on the concepts involved in surface rendering. What concepts do I need to understand for volumetric rendering? (Both real-time and offline rendering.)

  • What exactly is meant by light scattering in the context of volumetric rendering? (And why is it split into in-scattering and out-scattering?)

  • What is the relationship between transmission, attenuation, and absorption?

  • What is a phase function and how does it play into volumetric rendering? (In particular, the Henyey-Greenstein phase function.)

  • What is the Beer-Lambert law and how is it related to light scattering?

Basically, how do I make sense out of diagrams like this?

Confusing diagram

  • 1
    $\begingroup$ Should this be several questions. $\endgroup$
    – joojaa
    Aug 9, 2015 at 18:33
  • $\begingroup$ @joojaa Potentially. The answers to these questions are interrelated, though. I'm looking for an answer of the form "well, a photon can do X, Y, or Z when it interacts with media; X is described by the phase function, Y is described by the Beer-Lambert law, …" $\endgroup$ Aug 9, 2015 at 18:37

1 Answer 1


When I was first reading about all of this I stumbled upon this link which helped me better understand this large subject. Also this goes into some more detail on things mentioned here.

Light scattering is a natural phenomenon which arises when light interacts with particles distributed in a media as it travels through it. From Wikipedia:

Light scattering can be thought of as the deflection of a ray from a straight path, for example by irregularities in the propagation medium, particles, or in the interface between two media

In computer graphics there are models that have been developed to simulate the effect of light traversing volume objects from an entry point (Point A) to an exit point (Point B). As the light travels from A to B it is changed due to interactions with particles and these interactions are often referred to as Absorption, Out Scattering and In Scattering. Often you will see these split into two groups; Transmittance (Absorption and Out Scattering) which I like to think of as 'light lost' and In-Scattering ('light gained').

Absorption is basically incident light energy that is transformed into some other form of energy and therefore 'lost'.


Transmittance describes how light reflected behind a volume will be attenuated due to Absorption as it travels through a medium from A to B. This is usually calculated with the Beer-Lambert law which relates the attenuation of light to the properties of the material through which it is travelling.

As the light travels through the medium there is a chance that the photons can be scattered away from their incident direction and therefore not make it to the eye of the observer and this is referred to as Out-Scattering. In most models the Transmittance equation is changed slightly to introduce the concept of Out-Scattering.

In Scattering

Above we have seen how light can be lost due to photons been scattered away from the viewing direction. At the same time light can be scattered back into the viewing direction as it is travelling from A to B and this is called In-Scattering.

Particle In-Scattering itself is a pretty complex topic but basically you can split it into Isotropic and Anisotropic scattering. Modelling Anisotropic scattering would take a considerable amount of time so usually in computer graphics this is simplified by using a Phase Function which describes the amount of light from the incident light direction that is scattered into the viewing direction as it travels from A to B.

One commonly used non-isotropic Phase Function is called the Henyey-Greenstein phase function which can model Backward and Forward scattering. It usually has a single parameter, g ∈ [−1,1], that determines the relative strength of forward and backward scattering.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.