Я не понимаю код решения «Яркие точки в свертке перед фильтром» в https://learnopengl.com/PBR/IBL/Specular-IBL,, особенно в части PDF (функция плотности возможностей).
вот код
float D = DistributionGGX(NdotH, roughness);
float pdf = (D * NdotH / (4.0 * HdotV)) + 0.0001;
float resolution = 512.0; // resolution of source cubemap (per face)
float saTexel = 4.0 * PI / (6.0 * resolution * resolution);
float saSample = 1.0 / (float(SAMPLE_COUNT) * pdf + 0.0001);
float mipLevel = roughness == 0.0 ? 0.0 : 0.5 * log2(saSample / saTexel);
Я не знаю, почему взято (D * NdotH / (4.0 * HdotV)) + 0.0001
. И почему saTexel
и saSample
рассчитываются таким образом.