高斯泼溅形状
为什么是椭球
一维高斯分布函数
一维高斯分布(Gaussian Distribution),通常被称为正态分布(Normal Distribution),其概率密度函数(PDF)的数学方程如下:
当概率取某个值时,x也对应的为一个常数值
二维高斯分布函数
二维高斯分布(Bivariate Gaussian Distribution 或 2D Normal Distribution)是一维高斯分布在二维平面上的推广。它的图像不再是一条平面曲线,而是一个三维空间中的“山包”或“钟形曲面”。
矩阵形式:若二维随机向量 $\mathbf{x} = [x, y]^T$ 服从均值向量为 $\mathbf{\mu}$,协方差矩阵为 $\mathbf{\Sigma}$ 的正态分布,其概率密度函数为:
其中:
- 是二维变量
- 是均值向量,决定了中心点的位置
- $\mathbf{\Sigma} = \begin{bmatrix} \sigma_x^2 & \rho\sigma_x\sigma_y \ \rho\sigma_x\sigma_y & \sigma_y^2 \end{bmatrix}$是协方差矩阵,决定了分布的形状、方向和散度
当概率取某个常数值时:
此时xy的分布是一个椭圆,当概率值从[0,1]发生变化时,则x和y组成很多个椭圆,整体来说构成一个实心的椭圆面
三维高斯分布函数
在二维中,高斯分布是一个平面上的“山包”(等高线是椭圆)。 到了三维中,高斯分布描述的是三维空间中的一个“云团”或“雾状球体”。它的等值面(密度相同点的集合)是三维空间中的椭球体 (Ellipsoid)
设三维随机向量 $\mathbf{x} = [x, y, z]^T$,其概率密度函数为:
其中:
$\mathbf{x}$ - 输入变量 (Input Vector): 三维空间中的一个点。 $\mathbf{x} = \begin{bmatrix} x \cr y \cr z \end{bmatrix}$
$\mathbf{\mu}$ - 均值向量 (Mean Vector): 这个三维“云团”中心点的位置坐标。 $\mathbf{\mu} = \begin{bmatrix} \mu_x \cr \mu_y \cr \mu_z \end{bmatrix}$
$\mathbf{\Sigma}$ - 3x3 协方差矩阵 (Covariance Matrix):
这是最核心的部分,它定义了椭球体的形状、大小和方向。
- 对角线元素 ($\sigma_x^2, \sigma_y^2, \sigma_z^2$):也就是方差,决定了椭球体沿 XYZ 三个轴向的拉伸程度(“胖瘦”)。
- 非对角线元素 ():也就是协方差,表示了分布的x轴、y轴、z轴之间的关系,决定了椭球体在空间中的旋转姿态。如果它们全为 0,说明分布的xyz是独立的,椭球体的轴就与坐标轴平行。
同时可以用来表示分布的特性
- 各向同性:在各个方向具有相同的扩散程度(梯度)$\mathbf{\Sigma} = \begin{bmatrix} \sigma^2 & 0 & 0 \cr 0 & \sigma^2 & 0 \cr 0 & 0 & \sigma^2 \end{bmatrix}$,三个方向的方差相同,互不相关,则表示为一个正球体
- 各向异性:在各个方向的均值不同,且方向相关(进行了旋转),因此高斯椭球具有各向异性,可以表示空间中的各种分布
当概率值取某个常数时$(\mathbf{x} - \mathbf{\mu})^T \mathbf{\Sigma}^{-1} (\mathbf{x} - \mathbf{\mu})=constant$,x的分布为椭球体,则当概率从[0,1]发生变化时,组成很多个椭球体,则所有的分布构成一个实心的椭球,这个就是高斯椭球
椭球形状的控制
上面已经推断出协方差矩阵控制了椭球的中心和各方向上的方向,根据椭球在空间上可以通过球进行仿射变换得到推出椭球的协方差矩阵可以通过球的协方差矩阵通过变换得到,即任意高斯可以看作标准高斯通过仿射变换得到。
对于高斯分布,假设其每个x均经过的仿射变换,那么其新的分布为
仿射变换可以分解为旋转和缩放,即$A=RS$,,反之,通过协方差矩阵之后可以通过特征值分求出R和S,即将高斯椭球的协方差矩阵用R、S进行表示,R作为旋转矩阵又可以通过四元数q进行表示,即最终的椭球,我们通过q、s进行表示
所以对于椭球的形状共有4元数+缩放3+中心3共10个参数
椭球的颜色
球谐函数
要理解球谐函数,你只需要理解一个概念:傅里叶变换(Fourier Transform)。
- 一维的情况(傅里叶级数): 想象一段复杂的声波(音乐)。我们知道,这段复杂的波形其实是由无数个简单的正弦波(Sine waves)叠加而成的。
- 低频正弦波决定了整体的大调。
- 高频正弦波决定了细节和音色。
- 结论: 任何一维周期函数,都可以分解为一组正弦波的加权和。
- 二维的情况(球谐函数): 现在,把目光从“一根线(声波)”移到“一个球(地球仪或灯光球)”上。 如果我想描述一个球体表面的颜色分布、凹凸起伏或者是围绕球体的光照强度,该怎么办?
- 球谐函数就是定义在球表面上的“正弦波”。
- 结论: 任何定义在球表面上的函数(比如地球的地形、环境光照),都可以分解为一组球谐函数的加权和。
一句话总结定义: 球谐函数就是球面上的基函数(Basis Functions),就像积木一样,通过组合不同形状的积木(球谐函数),你可以拼出任何复杂的球面信号。
球谐函数公式
对于一个球谐函数有4个输入分别代表:
- : 指定的角度,也就是一个球谐函数可以求出空间中任意角度的值y,y代表的是这个球谐函数在这个角度的l,即长度
- l(Degree, 阶数): 代表频率或细节程度、l越大球表面的褶皱越多,能表现的细节越明显。l=0是光滑的球;
- m(order,阶次): 代表方向和纹理分布,范围m为整数,且. 正负代表了是否旋转90度
部件的作用:
- :归一化常数,使得l和m不管怎么变,球谐函数在球面上的积分都等于1
- :伴随勒让德多项式,这是核心形状生成器,专门负责切分南北(纬度)方向的形状
下面是l取3时m的所有取值所得出的表面图像:

椭球的颜色
我们要让椭球的颜色真实,就不能让椭球的颜色在各个角度看都意义,因此引入球谐函数,因为球谐函数恰好定义了每个不同的角度的值,我们可以将这个值作为颜色,也就是上图中不同方向的值不一样,代表颜色的占比不必要。
但是不能用一个球谐函数去代表颜色,因为实际上各个方向的并不规则,与傅里叶变换一样,可以用多个正余弦函数去拟合场景中的任意波形,因此,可以考虑多个球谐函数的叠加,去拟合空间中的任意椭球,也就是颜色的公式如下:
在高斯椭球颜色的渲染中,选择3阶即l等于3,其中的每个y都可以通过公式计算出来,所有的c为参数。且可以得出对于l,他的参数为2*l+1当最高取3时,所有的参数量为,同时,这仅能代表一个颜色值,对于真实的RGB,则需要个参数
高斯椭球参数
- 形状参数:4个四元数+3个缩放+3个中心位置参数 =10
- 颜色参数:16·3=48
- 不透明度:1个$\alpha$
一共10+48+1=59个参数


































