someone asked me a good question, so I will write down the reply as a twitter thread below :D
Question is something like: "Where do the BRDF formulas come from? How can we make our own?"
Answer:
Conversation
Replying to
I will mostly explain specular BRDFs, since they are most used.
the most common way of making them, is by approximating the material
surface as a bunch of small mirrors called microfacets.
2
6
for very rough materials, these microfacets will have normals pointing
in all kinds of directions(left image). For smooth materials, there is less normal variation(right image),
and very smooth materials will closely resemble a flat mirror surface.
1
5
people use use a formula called the Torrance Sparrow model(see image) for describing microfacet materials.
It consists of three terms D(normal-distribution function NDF), G(geometric shadowing function),
and F(fresnel function)
1
1
7
The NDF(D), describes the distribution of the microfacet normals of the surface.
If high roughness, then normals have great variation, and if low roughness,
there is little variation.
1
4
There are several choices of NDF, which can be found in the table below
[1] graphicrants.blogspot.com/2013/08/specul
1
4
People mostly seem to favor GGX nowadays. It has longer tails than Beckman, which
seems to match real materials better. I think GGX first appeared in the below paper
[2] cs.cornell.edu/~srm/publicati
1
6
And people dont seem to create and derive their own NDFs anymore nowadays. They just try out the NDFs already out there, and pick the one that has an appearance that they like.
1
3
The G function describes the geometric shadowing of the microfacets.
some microfacets will occlude other microfacets, and cause shadows to be formed(black in image) in the microsurface, and G function models this phenomenon.
1
1
3
You can just use one of the G functions in table [1] in your BRDF. For very detailed info on the topic of G, see the excellent paper by Heitz
jcgt.org/published/0003
2
7
Finally, F describes the Fresnel reflectance, which describes how more light is reflected from the surface, if you view at it from a grazing angle.
1
3
The F function was originally derived from Maxwell's equations. See my old tweet
Quote Tweet
The Fresnel equations, that for instance are applied in computer graphics, were ultimately derived from the Maxwell's equations. And I just found a document that derives the Fresnel equation's from Maxwell equations. interesting read
pdfs.semanticscholar.org/670a/784f74217
1
5
For possible values and approximations of F, see
graphicrants.blogspot.com/2013/08/specul
pbr-book.org/3ed-2018/Refle
1
2
to make your own BRDF with this model, you play around with different variations of choices of D, G, and F(from e.g. table 1), until you find one you like, and thats how most people seem to make their BRDFs nowadays.
1
4
Another thing people do, is that they take complicated BRDF models from research papers, and then curve-fit them and simplify them enough, until they can be used for real-time purposes. For an example of this, see e.g.
blog.selfshadow.com/publications/s
1
7
And then there are of course people who are researchers and are developing new BRDFs. I will list some miscellaneous links below on the topic of improving and making and choosing BRDFs:
1
2
Good info and derivations of Microfacet models in PBR:
pbr-book.org/3ed-2018/Refle
1
3
Physically-Based Shading at Disney
disney-animation.s3.amazonaws.com/library/s2012_
1
5
Moving Frostbite to Physically Based Rendering 3.0
seblagarde.files.wordpress.com/2015/07/course
1
1
5
The Road Toward Unified Rendering with Unity's High Definition Render Pipeline
advances.realtimerendering.com/s2018/Siggraph
1
3
And also Eric Heitz
eheitzresearch.wordpress.com/research/
will probably add more links below, when I remember them.
3
8
