Кто-нибудь знает, откуда этот код для нормализации коэффициентов сферических гармоник?

Я нашел этот код в Интернете и хотел бы знать теорию, стоящую за ним, кто-нибудь может указать мне правильное направление?

Вот код:

 float4 SHCNormalize(in float4 res)
 {
    // extract direction
    float l = dot(res.gba, res.gba);
    res.gba /= max(0.05f, sqrt(l));
    res.r = 1.0;
    return res;
 }

Чтобы дать вам небольшой контекст, этот код передается в 4-х коэффициентах зональных гармоник, представляющих фиксированный косинусный лепесток в пространстве SH.

Спасибо!

1 ответ

Максимум в функции - избежать отклонения на 0,0. res.r = 1.0f - это деталь реализации, которая применяется только к тому коду, который рассматривался, и не имеет теоретической основы.

Другие вопросы по тегам