fuckingtech/public/assets/glsl/lygia/lighting/common/ggx.wgsl
Elias Rhouzlane bf76c6b086 fix: code
2025-04-06 17:23:52 +02:00

11 lines
No EOL
362 B
WebGPU Shading Language

fn GGX(N: vec3f, H: vec3f, NoH: f32, roughness: f32) -> f32 {
let NxH = cross(N, H);
let oneMinusNoHSquared = dot(NxH, NxH);
// let oneMinusNoHSquared = 1.0 - NoH * NoH;
let a = NoH * roughness;
let k = roughness / (oneMinusNoHSquared + a * a);
let d = (k * k) * 0.31830988618379067153776752674503; // 1/PI
return min(d, 65504.0);
}