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

joe joeedh at gmail.com
Thu Jan 29 17:54:33 CET 2009

Ah and yes I know paper authors rarely publish code, I certainly don't
expect any.  Besides, it wouldn't help to have any code without
knowing what it did.  Especially since I can spend some time reading
papers, but I don't really have time to actually do any significant
coding in this area at the moment.


On Thu, Jan 29, 2009 at 9:49 AM, joe <joeedh at gmail.com> wrote:
> Fascinating.  I can see what you mean after reading through some
> stuff.  It does sound less hackish and more useful then the standard
> diffuse/specular split shaders most people seem to use.
> Joe
> On Wed, Jan 28, 2009 at 9:00 PM, Yves Poissant <ypoissant2 at videotron.ca> wrote:
>> 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
>> better.
>> 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
>> trick.
>> "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.
>> Yves
>> _______________________________________________
>> Bf-committers mailing list
>> Bf-committers at blender.org
>> http://lists.blender.org/mailman/listinfo/bf-committers

More information about the Bf-committers mailing list