BRDF Library
Bi-directional Reflectance Distribution Functions (BRDFs) are a mathematical formulation of how light interacts with the material on an objects surface. When rays of light or photons are emanated from a light source such as the sun or a light, the flow in directions that ultimately lead them to a surface (otherwise we would not see the light rays). Depending on the material properties, the light rays are reflected in various ways. Reflection is currently categorized in three different ways, ambient reflection, diffuse reflection, and specular reflection. All BRDFs are formulated using some combination of the 3 types of reflection.
BRDFs can be difficult to implement, especially on graphics hardware. This is why I am providing a sample library of BRDFs implemented in GLSL
and a quick explanation of the formulation. This should aide the graphics pratitioner as well as novices in developing and implementing BRDFs for
personal and professional use.
Simple BRDFs
- Lambert: A diffuse only BRDF
- Phong-Blinn: A specular and Diffuse BRDF
Complex BRDF
- Cook-Torrance: BRDF
- Torrance-Sparrow: BRDF
- Ashikhmin-Shirley: BRDF
- Cook-Torrance: BRDF
More BRDFs
- Data driven: Distribution of the reflectance is represented by data as opposed to a formula.