donut
donut copied to clipboard
GGX VNDF PDF is incorrect
The PDF for the GGX VNDF is wrong here:
https://github.com/NVIDIAGameWorks/donut/blob/b52bc313d1d1f908652253b4fdf43ad2ced0e28f/include/donut/shaders/brdf.hlsli#L232-L241
The correct version has to include the G1 term and the VoH of the determinant cancels:
// ...
float D = square(alpha) / (M_PI * square(square(NoH) * square(alpha) + (1 - square(NoH))));
float G1 = //...
return (D * G1) / (4 * VoN);