学习笔记--关于Spherical Harmonic
xheartblue 2006-2-4
关键字:
Spherical Harmonic 球面调和函数 球面谐波函数 球形调和函数
关联勒让德方程 勒让德多项式 正交多项式 正交函数系
pdf : http://xreal.51.net/Download/SphericalHarmonic.pdf
url: http://xreal.51.net/Game/sphericalharmonic.htm
Spherical Harmonic 在图形学里,准确的说应该是高级光照技术里, 最近恐怕比较流行. 出于赶时髦的原因,我也在看,无奈数学基础太差了. 只好几乎把所有的时间全用在数学上了.从基本的数学分析看到泛函分析. 名词听的多了,渐渐也对Spherical harmonic 是什么玩意有了一点点了解. 了解而已, 不是理解..写出来, 整理整理思路而已. 望还不了解Spherical Harmonic何物而来看本文的人自己能带着鄙视的眼光去理解. 否则如果本人理解错误而带坏了小孩概不负责 特此申明.
Spherical harmonic 翻译成中文应该叫 球面调和函数, 是调和函数的一种. 所谓调和函数是一类函数(好像是废话). 满足Laplace 方程的 的函数u称为harmonic function. harmonic function据说有一些很特殊的性质(偶还不了解是什么性质) , 于是有了harmonic analysis 这样的的数学分支.
在极坐标系中把拉普拉斯方程表示成极坐标的形式,然后进行分离变量. (这个过程实在是太乱了,打个公式要半天, 具体见工程数学: 数学物理方程和特殊函数). 我们在求解这个方程的时候,会得到一个只和 有关的方程 这个方程称为连带勒让德方程或者关联勒让德方程 – Associated Legendre Equation (恩,看来是个法国进口的方程.洋货啊, 看起来都复杂一些) . 给这个方程加一些条件,可以得到一些解. 其中有一些就叫勒让德多项式. 勒让德多项式是正交的.所谓正交的. 表示这个玩意满足 .
从实变函数和泛函分析的课程可以知道, 在L2空间中, 函数可以展开成关于一组完备的正交函数集, 典型的傅立叶级数就是个例子. 并且展开形式为 其中ci为系数,在傅立叶级数中,这个就是所谓的傅立叶系数, Bi为正交函数中的一个.其中 .也就是函数在Bi这个基(向量空间中的基)上的投影, 也就是函数空间中的内积运算. 这样我们可以把任何一个函数都展开成级数.当然这个函数是要满足一定条件的.比如平方可积.
现在我们回到球面上来. 构造正交函数系 . 这玩意就是前面那个Laplace方程一个解,也就是传说中的spherical harmonic. 那个P呢,就是勒让德多项式了. 可以验证.他是一个正交的函数系. 而且是完备的. 用它.我们可以把球面上任何一个函数展开成以 为基的级数.. 当然, 在球面上的遮挡关系也是可以这样的函数 , 球面上各个方向的辐射强度也是这个这样的函数, 同样次表面散射的能力也是个这样的函数, 理论上我们可以把这些函数用spherical harmonic 精确的还原出来. 而我们只需要记录那个Ci就可以了… 不过Ci是无穷多个. 出于人道主义,在一般的real-time rendering中,似乎Ci的个数是16 . 这也就是spherical harmonic光照,不能模拟高频场景的一个原因了. 同时Ci的计算是比较复杂的. 这样很容易理解为什么DX9里的那几个demo的预处理跟乌龟一样.
其实Ci的计算除了慢以外, 还很有技巧, 具体见<Advanced.Lighting.and.Materials.With.Shaders>的相关章节, 准确说是第8章.
而关于spherical harmonic则见….. 偶还没有这样的书 .不过<数学物理方程和特殊函数>中,有关于勒让德多项式的详细章节了.同样作为工程数学, 它还教你怎么用这个东西来近似球面上的一些函数,,, 比如电荷分布之类的. 类推到图形学上 …. 呵呵, 不说了. 实在没怎么看明白.
参考书籍和资料
http://mathworld.wolfram.com/SphericalHarmonic.html 关于spherical harmonic的.
<工程数学: 数学物理方程和特殊函数> 高等教育出版社 南京工学院编著 关于Legendre Polynomial的.
<函数论和泛函分析初步> 关于L2空间和L2空间上的傅立叶变换和傅立叶级数
<Advanced Lighting and Materials With Shaders > 专门介绍高级光照的(又是废话,看书名就知道) 有人说这本书不好. 不过我觉得似乎这本书里讲SH是讲的最清楚的. 本着厚道的原则,顶一下.