Кто-нибудь знает, откуда этот код для нормализации коэффициентов сферических гармоник?
Я нашел этот код в Интернете и хотел бы знать теорию, стоящую за ним, кто-нибудь может указать мне правильное направление?
Вот код:
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 - это деталь реализации, которая применяется только к тому коду, который рассматривался, и не имеет теоретической основы.