Sign in to follow this  
Large J

Concept behind BRDF that reflects according to Gaussian function

Recommended Posts

Hi all,


The last few days I am kind of confused about the concept behind a BRDF that uses a normalized Gaussian function to describe it's reflection behavior. More specifically, I am writing a hair shader using the Marschner hair model and in this model light is reflected in a lobe described by a Gaussian function. Since the standard deviation expressed in radians, is very close to zero, the normalized Gaussian function returns values larger than one for angles close to the expected value. When using this function as a BRDF, the reflection will be greater than one for some of the angles. This confuses me, since it does not make sense that for some angles the reflected light will be larger than the incoming light.


Now I have read that this normalized function is a PDF and that you have to integrate it to find the probabilities. But how would I use this normalized Gaussian function then to compute the amount of reflected radiance?

Share this post

Link to post
Share on other sites

Careful - the BRDF doesn't describe the amount of reflected energy, but the reflected radiance, which is a measure of intensity per solid angle (power over area over solid angle) dependent on view angle. If you look at the definition of solid angle, you'll see the "cells" (when integrating over a sphere) have different surface areas depending on the angle made by the light ray with the normal (this is the solid angle part). Similarly, the effective area also depends on view angle, in a different way - if you look at a sheet of paper at a grazing angle, the area taken by the paper's surface in your field of vision is much smaller than if you were facing the sheet of paper at normal incidence (this is the area part)


This means that the BRDF itself can take values greater than 1, without violating conservation of energy (since the BRDF doesn't represent energy). In fact, the specular BRDF is a Dirac function, and is infinite at a unique, infinitesimal angle (the specular reflection angle) and zero everywhere else, though it correctly integrates to 1, as expected for conservation of energy.


To get the actual energy reflected in a particular direction by the BRDF, you need to integrate the radiance for a given outgoing (or incoming) direction over all possible incoming (or, respectively, outgoing) directions. This will add up to at most 1. If the BRDF is physically correct, I mean.


This BRDF stuff is tricky to grasp at first, but it makes a lot of sense.

Edited by Bacterius

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this