[Bf-committers] Physical plausibility - Was about adding boost uBLAS

Yves Poissant ypoissant2 at videotron.ca
Thu Jan 29 05:00:22 CET 2009

From: "joe" <joeedh at gmail.com>
Sent: Wednesday, January 28, 2009 12:36 PM

> Interesting.  Any specific papers on the topic you'd recommend?

That is one difficult question to answer and I don't have an answer. I guess 
you refer to physically plausible material representation. You know that 
papers authors rarely publish code.

It is all related to the concept of BRDF but papers about BRDF all go into 
theoretical details and no implementation details and the more modern papers 
just assume that the reader already understand the concept of BRDF. And 
since the BRDF concept is a difficult concept to grab, it is difficult to 
find good introductory papers. The set of papers by Christopher Schlick 
about his "inexpensive BRDF for everyday use" are nice ones with nice 
introductory material about the fundamental concepts. It is a relatively 
easy model to implement too but there are better ones today. That said, the 
beauty of BRDF is that they are building blocs. A better BRDF model can 
replace an old one easily and the rendering will work just as well if not 

On paper, BRDFs tend to look like your regular shader and in fact, a lot of 
them are often converted verbatim as shaders. That is why BRDF can be used 
with scanliner or raytracers or GI as well. But the similarity with shader 
is because it is not obvious that BRDF are really probabilistic reflectors 
and are in fact designed to be used with probabilistic renderers. In this, 
one can see shaders as a subset of probabilistic renderer where the 
probabilities already decided. So a BRDF is much more general than a shader 
and is much more powerfull than a shader.

Another important concept is the conservation of energy. A surface can never 
reflect more light than it receive. This statement seems simple but there 
are very important implications related to that. Think about a typical 
legacy CG material description with its diffuse, specular, ambient, mirror, 
(let's stop there, we already have enough to be dangerous). Think about what 
those properties mean. Diffuse represent the reflection of *light* by a 
rough material. Specularity represent the reflection of *light* by a 
variably smooth material. Ambience represent the reflection of the 
*environment* by a perfectly rough material and mirror represent the 
reflection of the *environment* by a perfectly smooth material. You can 
already see several conflicting representations. The difficulty is how to 
balance those components so the surface looks physically convincing. It is 
algorithmically possible to achieve this balance when the concept of BRDF 
and the implication of conservation of energy is well integrated. All those 
visual properties can be controled by one "roughness" property. For example, 
the specularity tightness represents the roughness. Received light is 
scattered above the surface but the incoming light energy is conserved. As 
specularity tightnedd gets tighter, its brightness also increase in 
proportion of the incoming light that is more tightly reflected. Same for 
the the balance between the specularity tightness and brightness and the 
mirror strength and falloff distance. They are related.

This type of knowledge you will acquire through reading a lot of BRDF 
related papers. But there is one book that I found covers those concept 
surprisingly well. It is "Real-Time Rendering" Third Edition by 
Akenine-Moller, Haines and Hoffman. This book covers a lot of ground, 
explains a lot of tricky issues and answers a lot of questions that arize 
when reading BRDF related papers.

You can see that with a single property, the roughness, you can control, in 
a physically plausible way, several of the legacy CG properties which are 
all numerically controled so the reflectance is always energy conserving and 
thus plausible. For anisotropic material, you would have two roughness 
properties. This is a much simplified model for users to control. Its 
control is always consisitent and it becomes intuitive very quickly.

A more general concept to the BRDF is the BSDF. This covers material that is 
reflective and/or transmissive. The more recent BRDF papers are focused on 
multiple layer materials. Once you have your BSDF system in place, you can 
achieve the look of a large bunch of man made materials through layers of 
BSDF. This is at the same time extremely powerfull and very simple and 
intuitive to ajdust.

Concerning implementation documentation, I would direct you to the book 
"Physically Based Rendering" by Pharr and Humphrey, also known as PBRT. I 
would not suggest implementing the code in there because it is designed to 
be easily understandable but is far from optimized, and also, I find the 
implementation overly complex. There is no need for such a complexity. But 
you get to see the actual code that implements the concepts. And you get to 
see how BRDFs are designed to be used. There is no other place that I know 
of where you can see the full implementation of the BRDF/BSDF concept like 
this one.

Another book I would recommend is "Realistic Image Synthesis Using Photon 
Mapping" by Jensen. The first part of the book that covers the fundamental 
concepts up to page 66, even if you don't plan to implement a photon mapping 
algorithm, is well worth reading IMO.

Other papers I would recommend (and you can find on the web) are:
"Arbitrarily Layered Micro-Facets Surfaces" By Weidlick and Wilkie, 2007. 
Start with this paper to get a good idea of what this is about. It is fairly 
recent and have very good examples.
"Distribution Based BRDFs" by Ashikhmin and Premoze, 2007
"A Simple Layered RGB BRDF Model" by Granier and Heidrich, 2003
"A Microfacet Based Coupled Specular-Matte BRDF Model with Importance 
Sampling" by Kelemen and Szirmay-Kalos, 2001. Szirmay-Kalos papers are 
generally too theoretical for my taste but this paper gives a hint of the 
work by this group.
"A Practicioners' Assessment of Light Reflection Models" by Shirley, Hu, 
Smits, Lafortune 1997.
"A Coupled Matte-Specular Reflection Model" by Shirley, Hu, Lafortune, 
Blocksom, 1997
"An Inexpensive BRDF Model for Physically-Based Rendering" by Schlick, 1994. 
He shows a very simple scheme for automatically balancing the diffuse, 
specular and mirror factors from the roughness property and also gives the 
warping equations for importance sampling the BRDF. This is an important 
"A Comprehensive Physical Model for Light Reflection" by He, Torrance, 
Sillion, Greenberg, 1991

If you start with those papers and follow the threads from the 
bibliographies, you should have a wide coverage os the topic.

Sorry for not being more specific with my explanations. I can only provide 
public references because I'm under a NDA with my employer.


More information about the Bf-committers mailing list