Skip to main content
Share Your Experience: Take the 2024 Developer Survey
7 votes
Accepted

Correct form of the GGX geometry term

TL;DR: Your $G1$ formula is wrong. Just to avoid confusion, I am assuming the isotropic version of the BRDF, the Smith microfacet model (as opposed to the V-cavity model), and the GGX microfacet ...
ivokabel's user avatar
  • 1,464
3 votes

Conflicting definitions for the distribution of normals $D$ in microfacet BSDFs

The units of the NDF are tricky. For whatever it's worth, Heitz's convention of defining it relative to a 1 m² reference geometric surface is unusual, and although I can see why he would want to ...
Nathan Reed's user avatar
3 votes
Accepted

Why can I see the diffuse lighting effect on a perfect mirror?

Dielectric materials (which is what you get when metalness is 0) don't exhibit a mirror-like effect. Think of a sheet of smooth, non-transparent plastic. Real-life mirrors are panes of glass or ...
IneQuation's user avatar
3 votes
Accepted

Can't understand the Importance sampling GGX

In microfacet BRDFs, the half-vector is the same as the microfacet normal. The half-vector is exactly the required normal for a microfacet to reflect light from the incident ray to the outgoing ray, ...
Nathan Reed's user avatar
3 votes
Accepted

Relationship between roughness and BRDF

Most normal distribution functions (NDFs) are parametrized by some variable (tipically $m$ or $\alpha$) that determines the "roughness" or "spikiness" of the NDF (this is often meant to be the rms ...
Sebastián Mestre's user avatar
2 votes

Relationship between roughness and BRDF

for each point $p$ in theory we have a 3D function that tells us the orientation in a given direction You have missunderstood this. $D$ is a Normal Distribution Function (or short NDF), so it doesn't ...
Tare's user avatar
  • 1,566
2 votes

Can microfacet BRDF (including ggx) represent perfect mirror?

If this was correct, $\frac{D(H)G(L,V,H)}{4|N⋅V|}$ should be a dirac delta function. But I don't think so. Actually, you're close to your answer - you just are trying to find out, what the assumption ...
Tare's user avatar
  • 1,566
2 votes

Implementing the example of Walter et al. (2007) paper

Initially and still I'm not so sure how to get the color of the object behind the glass into the formulas. Normal, this was written with path / ray tracers in mind where that part is easy. Your idea ...
Olivier's user avatar
  • 1,585
2 votes
Accepted

What does GGX stand for?

According to E. Heitz (Sampling the GGX Distribution of Visible Normals) it stands for "ground glass unknown". I am not sure what the word unknown means though. By the way, it is equivalent ...
Aleš Koblížek's user avatar
2 votes
Accepted

Importance sampling microfacet BRDF and coordinate frame

The importance sampling methods for the two reflection models you mentioned are different - they pretty much reflect their definition. Cook-Torrance model describes the surface as a collection of ...
Aleš Koblížek's user avatar
1 vote
Accepted

How is the distribution of normals constructed from the distribution of slopes in 'Understanding the masking-shadowing function' paper?

The "slope space" is a coordinate system that describes unit vectors in the upper hemisphere using their $x$ and $y$ slopes, i.e. $-x/z$ and $-y/z$. It's related to the usual polar ...
Nathan Reed's user avatar
1 vote
Accepted

How is the maximum value for alpha (roughness == 1) decided for microfacet models?

In truth, there is no mathematical maximum value for $\alpha$. As you noted, microfacet slope is unbounded, so in principle you could have arbitrarily large slope values and hence arbitrarily large $\...
Nathan Reed's user avatar
1 vote

Confusion of deriving the Jacobian of the reflection transformation in Walter et. al's 2007 paper

There is a functional relationship between $\mathbf{h}$ and $\mathbf{o}$ (and also $\mathbf{i}$) whose Jacobian is being taken. But there's no prior functional relationship between $\mathbf{m}$ and $\...
Nathan Reed's user avatar
1 vote
Accepted

Microfacet BRDF artifacts

It turns out that the ring was happening from a negative divided by a negative, so adding nom = max(nom, 0.0); fixed the problem. The new highlight, amplified:
Sam's user avatar
  • 198
1 vote

Can microfacet BRDF (including ggx) represent perfect mirror?

I actually have stumbled at this same exact problem. I think I have found the solution in the pbr book: https://www.pbr-book.org/3ed-2018/Reflection_Models/Microfacet_Models#...
Suslik's user avatar
  • 11

Only top scored, non community-wiki answers of a minimum length are eligible