Monday, April 16, 2012

Refraction through Rough Surfaces

A ground glass version of the Purple Glass Bunny render I posted last week.

Over a year ago I implemented the Cook-Torrance microfacet model for rough specular reflection. Just a few weeks ago, I implemented a state-of-the-art microfacet model for rough specular reflection and transmission, based on the excellent 2007 paper Microfacet Models for Refraction through Rough Surfaces. It's a complete reflection/transmission BSDF, where the reflection part is a improved version of the original Cook-Torrance model, and the transmission part is based on much of the same theory and math. The new model includes high quality Smith shadowing and masking functions, a slightly modified form of the Beckman distribution, a brand new microfacet distribution called GGX designed to better fit real-life measurements of certain materials, and good importance sampling, all of which I implemented.

Below are some renders from the development process:

Blue ground glass using the GGX microfacet distribution.

Blue ground glass using the Beckman microfacet distribution.

Smoother version using the Beckman distribution.

New microfacet model.
Original Cook-Torrance microfacet model (it's slightly brighter).
Ground glass using the GGX distribution.

Another relatively smooth bunny.
Very smooth ball using new microfacet model for the black ball. Because the surface is so smooth and the specular lobe so tight, this render wouldn't have been feasible in a reasonable amount of time without high quality importance sampling for selecting BSDF samples.
Ideal specular version for comparison, to show that it closely matches the microfacet version above. The main differences (besides different run-times and levels of convergence) are that the microfacet version is not perfectly smooth, so it has slightly blurred reflections, and it's slightly darker due to shadowing and masking.
Another quick render, this time using the improved bunny model (without holes in the bottom) that I used for the big purple glass bunny render I posted recently. This is a brighter but lower quality version of the image at the top of this post.

A rough gold bunny.

No comments:

Post a Comment