Fixe bug in pbr

This commit is contained in:
2026-02-19 19:08:41 +09:00
parent b41ea60c02
commit 5183e73ca0
12 changed files with 155 additions and 94 deletions

View File

@@ -127,7 +127,12 @@ void ggx_ms_init_lut_once(void)
// For F=1, importance sampling with VNDF yields a simple estimator:
// rho_ss(v) = E[ G1(NoL) ].
sum += ggx_g1(NoL, roughness);
float alpha_lut = roughness * roughness;
float alpha2_lut = alpha_lut * alpha_lut;
float lambda_v = sqrtf(alpha2_lut + (1.0f - alpha2_lut) * NoV * NoV);
float lambda_l = sqrtf(alpha2_lut + (1.0f - alpha2_lut) * NoL * NoL);
sum += NoL * (NoV + lambda_v) / fmaxf(NoL * lambda_v + NoV * lambda_l, 1e-7f);
valid++;
}