V_GGX_SmithCorrelated
Implements the height-correlated Smith-GGX geometry function (G-term) to model micro-geometric shadowing and masking in PBR materials, ensuring energy conservation.
Core Advantages
By encapsulating an industry-leading mathematical model, it physically and accurately attenuates specular highlights at grazing angles on rough surfaces, preventing unrealistic bright edges and imparting realistic texture.
Common Uses
Calculating the specular component for direct PBR lighting
Rendering rough materials like metal, plastic, and wood
As a building block for clear coat effects
Used in pre-computation shaders for Image-Based Lighting (IBL)
How to adjust
The node's behavior is primarily adjusted by changing the `alpha` input (controlled by `roughness`). A low `roughness` value (near 0) results in a V-term close to 1, suitable for smooth surfaces. A high `roughness` value causes significant attenuation at grazing angles, suitable for matte or rough materials.
Code Examples
1// alpha is derived from roughness (roughness * roughness)
2// dotNL is the dot product of the normal and light direction
3// dotNV is the dot product of the normal and view direction
4const V = V_GGX_SmithCorrelated.call( { alpha, dotNL, dotNV } );