The NDF is how many microfacets are pointing the right way. GGX is the distribution that matched real surfaces better than anything before it, and its shape explains why specular highlights look the way they do.
What the D Term Controls
The Cook-Torrance specular BRDF has three terms:
D is the Normal Distribution Function and the most influential of the three. It determines the shape and size of the specular highlight.
The model treats a surface as covered in microscopic facets, each acting like a tiny mirror. A facet contributes to the reflection only when its normal m aligns with the half-vector h - the bisector between light direction l and view direction v. The NDF describes how many facets are oriented that way at a given roughness.
Sharper NDF → fewer aligned facets → smaller, brighter highlight.
Broader NDF → more facets spread across a wider cone → larger, dimmer highlight.
Why GGX Replaced Beckmann
Beckmann and Blinn-Phong both cut off too fast. A real specular highlight has a bright peak, then a long gradual falloff. That abrupt cutoff is what makes a highlight look like a texture stuck on the surface instead of actual reflected light.
GGX (also called Trowbridge-Reitz) has heavier tails:
The squared denominator decays slowly away from the peak, bright core, soft halo, which matched real-world measurements better than anything before it.
Practical Takeaway
Your roughness slider doesn't map linearly to α. Most engines remap it as α = roughness² internally, which makes the low end of the slider feel more gradual. Roughness 0 collapses the NDF to a point (perfect mirror); 1.0 spreads it across the hemisphere.
GGX is what your engine is running. The bright-core-long-tail shape is what PBR materials are calibrated against. If a highlight cuts off too abruptly, the masking-shadowing G₂ term is usually the culprit, not the NDF. More on that in Day 50-ish.
© 2026 Stefan Groenewoud. All views are my own, not those of my employer.

