问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

球谐函数(Spherical Harmonics)的原理及应用

创作时间:
作者:
@小白创作中心

球谐函数(Spherical Harmonics)的原理及应用

引用
CSDN
1.
https://blog.csdn.net/qq_45934285/article/details/144345111

球谐函数(Spherical Harmonics, SH)是数学中的一类特殊函数,它们在三维空间中用于描述依赖于方向的物理现象。这些函数在物理学、地球物理学、天文学、计算机图形学、量子力学等领域有着广泛的应用。

球谐函数是一组正交函数,定义在单位球面上。它们可以被看作是二维傅里叶级数在球面坐标系中的等价物,用来表示球面上的任何平方可积函数。球谐函数通常用$Y_l^m(θ, φ)$表示,其中$l$是度(degree),$m$是阶(order),而$θ$和$φ$分别是极角(从z轴测量的角度)和方位角(从x轴测量的角度)。

球谐函数的形式如下:
$$
Y_l^m(θ, φ) = K_l^m P_l^m(\cosθ) e^{imφ}
$$
这里:

  • $K_l^m$是一个归一化因子。
  • $P_l^m$是关联勒让德多项式(Associated Legendre Polynomials)。
  • $e^{imφ}$表示复指数函数,它提供了方位角$φ$的周期性。

球谐函数有以下特性:

  1. 正交性:不同$l$或$m$值的球谐函数之间是正交的。
  2. 完备性:所有可能的球谐函数构成一个完备集,意味着任何一个定义在球面上的平方可积函数都可以通过球谐函数的线性组合来表示。
  3. 对称性:球谐函数具有不同的对称性质,这取决于它们的$m$和$l$值。

在实际应用中,球谐函数常用于:

  • 在计算机图形学中模拟光照效果,因为光照强度通常是方向性的。
  • 地球科学中,用于描述地球的引力场和磁场。
  • 量子力学中,原子轨道可以用球谐函数来描述。
  • 天文学中,用于分析宇宙微波背景辐射的各向异性。

球谐函数的使用能够极大地简化涉及到球面对称系统的计算,并且由于其良好的数学性质,使得许多问题的解析解成为可能。

球谐函数不同阶的表达式以及有什么不同?

球谐函数(Spherical Harmonics, SH)的不同阶和度($l$和$m$)对应于不同的表达式,这些表达式的形状和对称性随着$l$和$m$的变化而变化。具体来说:

  • $l$是度(degree),也称为球谐函数的总角动量量子数,在物理上它决定了波函数的能量水平以及角动量的大小。在数学上,它控制着函数的多项式部分的复杂程度。
  • $m$是阶(order),或磁量子数,在物理上它与角动量的z分量相关联。在数学上,它决定了函数沿方位角方向的周期性和相位。

对于每个$l$值,$m$的取值范围是从$-l$到$+l$的整数值。这意味着对于给定的$l$,共有$2l + 1$个不同的$m$值。球谐函数的显式表达式通常涉及到关联勒让德多项式$P_l^m(x)$和复指数$e^{imφ}$,其中$x = \cos(θ)$。

一些低阶球谐函数的显式形式如下:

当$l = 0$时,只有$m = 0$,这是常数项:
$$
Y_0^0(θ, φ) = \frac{1}{2} \sqrt{\frac{1}{π}}
$$

当$l = 1$时,有三个$m$值 ($-1, 0, +1$),分别对应于:
$$
Y_1^{-1}(θ, φ) = \frac{1}{2} \sqrt{\frac{3}{2π}} \sin(θ) e^{-iφ}
$$
$$
Y_1^0(θ, φ) = \frac{1}{2} \sqrt{\frac{3}{π}} \cos(θ)
$$
$$
Y_1^{+1}(θ, φ) = -\frac{1}{2} \sqrt{\frac{3}{2π}} \sin(θ) e^{iφ}
$$

随着$l$的增加,球谐函数变得越来越复杂,包含了更高阶的多项式项,并且在球面上呈现出更复杂的图案。例如,当$l = 2$时,会有五个不同的球谐函数,它们表现出类似于“四极子”的模式;而当$l = 3$时,则会有七个球谐函数,表现出更复杂的“八极子”模式等。

不同阶的球谐函数的主要区别在于它们的空间分布特征、频率成分以及对称性。较高的$l$值意味着更复杂的空间结构,更多的节点(即函数值为零的地方),以及更高的频率成分。此外,$m$的值影响了函数在方位角方向上的对称性:当$m = 0$时,函数是关于z轴对称的;当$m ≠ 0$时,函数具有螺旋状的不对称性。

在实际应用中,选择合适的$l$和$m$取决于所研究现象的具体性质和所需的精度。例如,在计算机图形学中,较低的$l$值用于捕捉场景光照的大尺度特征,而较高的$l$值则用于表示细微的变化。

球谐函数在计算机图形学中的应用

球谐函数(SH)在计算机图形学中主要用于表示光照和反射模型。通过将光照或反射的强度分布表示为球谐函数的线性组合,可以有效地压缩和处理这些数据。

球谐函数是一组基函数,类似于空间中的基向量,可以通过组合表示张成的空间中的所有向量。在计算机图形学中,球谐函数被广泛应用于光照和反射模型中,用来表示光照或反射的强度分布。

基函数的概念

基函数其实是一个相对的概念,类似于空间中的基向量,基向量可以通过组合表示张成的空间中的所有向量。同理,基函数也可以通过线性或非线性组合来表示其张成的函数空间的函数。傅里叶变换、球面谐波都是常见的基函数线性组合为原函数。

例如多项式基函数:
$$
\begin{align}
\begin{aligned}
&y_{0} = 1 \
&y_{1} = x \
&y_{2} = x^2 \
&y_{3} = x^3 \
&….
\end{aligned}
\end{align}
$$

球谐函数的表示

SH,球谐函数,归根到底只是一组基函数。有了基函数,就可以把任意一个函数,描述成几个基函数的加权和。

例如:
$$
y \approx 0.1 y_0 + 0.3 y_1 + 0.8 y_2 + 0.001 y_3+…
$$

这时候,就相当于是把一个原始函数变成了一组系数:
$$
0.1, 0.3, 0.8, 0.001, …
$$

一般的,能用的基函数个数越多,表达能力就越强。本质上是一个有损压缩。有点像个密码本,你一本我一本,上面写了基函数的定义,这样传密码的时候只要传几个系数就可以了,系数传到我这儿,我能复原出$y = f(x)$,只是没那么准确了。

以下面这个方波函数为例,黑色的这个方波函数不能准确的用几个正弦基函数的加权描述,但是当基函数用的个数越多,跟方波函数本身也就越接近。

球面坐标系的基长这样:
$$
\begin{align}
\begin{aligned}
&r_0 = f_0(θ,φ) \
&r_1 = f_1(θ,φ) \
&r_2 = f_2(θ,φ) \
&….
\end{aligned}
\end{align}
$$

最有名的球面基函数就是球谐函数了。球谐函数有很多很好的性质,比如正交性,旋转不变性。正交性说明每个基函数都是独立的,每个基函数都不能用别的基函数加权得到。

SH的基函数长这样(其中蓝色表示正数,黄色表示负数),一般尝试了解过SH的同学都见过这个图:

表达式长这样:

退化到二维来看,还是很简单的,二维的SH差不多长这样,蓝色表示正数,黄色表示负数:

(具体系数不太准确仅用于示意…)

像这样是不是就特别简单了,em,看这个波瓣长得似乎有点三维SH的意思了嘛。

(可以思考一个小问题:为啥二维情况下第三排的基函数只有cos平方,没有sin平方呢?)

假如有一个极坐标的函数长这样:

他可以表示为:
$$
r = 0.5 + 0.1 cos θ + 0.07 sin θ + 0.05 cos θ sin θ + 0.3(2cos^2θ - 1)
$$

只记系数,这个函数就压缩为了:
$$
0.5, 0.1, 0.07, 0.05, 0.3
$$

回到三维的情况这几个数字其实就是SH系数啦。

当SH的系数用的越多,那么表达能力就越强,跟原始的函数就越接近

当用来描述不同方向光照的SH基函数我们一般用到二阶或者三阶,二阶是4个系数:

拓展到rgb,就是4 * 3 = 12个系数

三阶是9个系数:

拓展到rgb,就是9 * 3 = 27个系数

空间中的每个Probe带一组SH系数,就可以描述这个位置的大致光照情况了。

为啥不用更高阶的SH?一方面是因为更多的系数会带来更大的存储压力、计算压力,而一般描述变化比较平滑的环境漫反射部分,用3阶SH就足够了;另一方面则是因为SH的物理含义不是特别好理解,高阶SH容易出现各种花式Artifact,美术同学一般都会认为这种表现属于bug。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号