Question about LUT Parameters in PBR-IBL-Specular IBL

Author: LiuZengqiangCreated Mar 27, 2025Updated Mar 27, 2025

According to the provided code snippet:

glsl
float lod             = getMipLevelFromRoughness(roughness);
vec3 prefilteredColor = textureCubeLod(PrefilteredEnvMap, refVec, lod);
vec2 envBRDF          = texture2D(BRDFIntegrationMap, vec2(NdotV, roughness)).xy;
vec3 indirectSpecular = prefilteredColor * (F * envBRDF.x + envBRDF.y);

and Epic Games' report, the horizontal texture coordinate of the LUT should be NdotV (i.e., n·wo). However, the original article states:

"We generate the lookup texture by treating the horizontal texture coordinate (ranged between 0.0 and 1.0) of a plane as the BRDF's input n⋅ωi."

Why does the article use n·ωi instead of n·wo? Is this a discrepancy, or is there a misunderstanding?