Microfacet BRDF Rendering with Image-Based Lighting

A long, long time ago, when I was just a wee freshman at DigiPen, I saw an awesome photo. The array of PBR balls; every graphics programmer has probably seen it at least once. It was crazy to me that you could get something to look so real on a computer. This was the moment I decided to take a look into the world of graphics programming, and the rest is history!


This slideshow requires JavaScript.

Turns out that rendering something like this is pretty complicated, so I stopped trying to implement it sophomore year. But that picture has always been in the back of my mind. Waiting… Until now!

My microfacet bidirectional reflectance distribution function (MF BRDF, whew!) renderer with image-based lighting (IBL) is working! A personal goal 4 years in the making, accomplished. Here’s a general sampling of some of the renders I’ve taken.

Now, since I’m now performing lighting calculations in a linear lighting space, some tone-mapping has to happen so that the image can be shown properly. The following two pictures demonstrate the tone-mapping. The left dragon has a high gamma-exponent, while the right dragon has a low gamma-exponent. Their material values are identical.


Finally, a bigger demo of the roughness parameter. The following images show the difference of roughness over the range 0.01 to 1, with a metallic of 0.

This is the first of the fruits of the graphics class I’m taking, next to implement is exponential shadow maps, SSAO, and depth of field.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s