着色器中的Gamma功能

时间:2017-02-08 07:28:03

标签: opengl directx glsl hlsl lighting

使用球面谐波进行照明我遇到了足够大的带宽问题。从n^2开始,首先n=7项的近似值的正确性变得越来越差。我研究了相关的勒让德多项式定义,发现在归一化常数中存在因子(l - m)! / (l + m)!的比率。对于n = 7 (l + m)!,最高可达12!。由于GPU的性质,我必须使用float(IEEE-754 32位浮点类型)。

现在我想,来自C / C++的{​​{3}}可能更合适,然后根据定义幼稚计算阶乘。甚至更多:也许有一个好的(近似)公式的tgamma(两个大论点)的比率。

在着色器中是否有一个很好的稳定方法来计算伽玛函数(对于大的正整数)?

当然,我可以为分子和分母中所有可能的值组合保存查找表(矩阵),但我希望有替代(节省空间)的方法。

0 个答案:

没有答案