BRDF Explorer

BRDF Explorer is an application that allows the development and analysis of bidirectional reflectance distribution functions (BRDFs). It can load and plot analytic BRDF functions (coded as functions in OpenGL's GLSL shader language), measured material data from the MERL database, and anisotropic measured material data from MIT CSAIL. Graphs and visualizations update in realtime as parameters are changed, making it a useful tool for evaluating and understanding different BRDFs (and other component functions).


In the pursuit of visual realism in our films, we have spent a considerable amount of time exploring the strengths and weaknesses of different BRDFs. To understand the properties of different BRDFs, we found it helpful to be able to visualize and graph them in different ways to see how they responded to illumination in different configurations. Additionally, we wanted to compare BRDFs to sampled BRDF data (mainly those in the MERL BRDF Database). We developed BRDF Explorer because at the time, no publicly available tool met our needs (although BRDFLab, which has since been released, has some similar capabilities).


A screenshot is worth a thousand words:

Major Features

  • Loads arbitrary BRDFs (coded as GLSL functions), measured materials from the MERL and MIT CSAIL BRDF databases
  • Handles multiple BRDFs at once, allowing easy comparisons
  • Automatically creates UI widgets for variables specified in the BRDF file, allowing parameter twiddling
  • Renders 3D models (OBJ format) under different environment probes (Ptex format), with interactive updating
  • IBL importance sampling with environment probes
  • Evaluates all BRDFs on the GPU, allowing real time interaction even with multiple BRDFs
  • Visualizations and Graphs:
    • Lit Sphere (can drag the highlight to adjust incident theta/phi)
    • Lit Object (lit with an IBL)
    • Theta H / Theta D - see Rusinkiewicz 98, A New Change of Variables for Efficient BRDF Representation [pdf]
    • Theta V
    • Albedo
    • 3D/Goniometric and polar plots
    • An "image slice" (with Theta H on the x-axis, and Theta D on the y-axis)

Get Started

You can get the source code or win32 binary at github. The source is licensed under the MS-PL (Microsoft Public License).

The only dependencies are Qt, OpenGL, and a relatively recent GPU - we haven't verified the requirements, but anything supporting DX10 / Pixel Shader 4.0 will probably be fine. While there's nothing platform-specific in this code, we have only extensively tested under Linux.

Future Plans

We plan to add Multiple Importance Sampling (MIS), in addition to the IBL importance sampling already there. Alternative BRDF representations (such as additional sampled format types) and additional graphs and views will be added as needed.

More Ptex Probes

Paul Debevec has graciously allowed us to offer his light probes in Ptex format which can be used with BRDF Explorer:

Download (20.2 MB zip file)

HDR Light Probe Images © 1988 courtesy of Paul Debevec,, used with permission. Also see:
Paul Debevec. Rendering Synthetic Objects Into Real Scenes: Bridging Traditional and Image-Based Graphics With Global Illumination and High Dynamic Range Photography. Proceedings of SIGGRAPH 98, Computer Graphics Proceedings, Annual Conference Series, July 1998, pp. 189-198.