3D Gaussian splatting中的球谐函数与球谐光照

0.概述

球谐函数是指一种定义在球面上的特殊函数,它在处理三维空间中的球形对称性问题时非常有用,特别是在图形学和计算机视觉领域。具体来说,球谐函数是球面上的傅立叶级数展开,可以用来逼近和插值球面上的数据,如光照强度或颜色分布。在3D GS原文中提到的球谐光照技术,就是利用球谐函数来高效地模拟和渲染复杂的环境光照效果。

1.引入

1.1 球坐标系中的拉普拉斯方程

三维空间的拉普拉斯方程为

​​​​​​​ ​​​​​​​

使用球坐标系中的拉普拉斯算子得:

​​​​​​​ ​​​​​​​ ​​​​​​​

其通解为:

​​​​​​​ `

上述通解中,一般把在单位球面上归一化后的关于 的函数称为球谐函数,记为

原则上 m 可以取任意实数,但由于球坐标中的循环边界条件要求约束,m 只能取任意整数。那么解的形式可以表示为:

​​​​​​​

这里 称为勒让德函数,如果考虑的问题具有 方向的对称性,那么的展开式中将只涉及到 的球谐函数,这时关联勒让德函数就退化为勒让德多项式,详见下文。

1.2 关联勒让德函数

关联勒让德方程来源于在球坐标系中使用分离变量法解拉普拉斯方程:

​​​​​​​

其中参数 l,m 分别叫做次数(degree)阶数(order)

时,该方程变为勒让德方程:

​​​​​​​ ​​​​​​​ ​​​​​​​

方程的解 是关于 阶多项式

​​​​​​​

​​​​​​​ ​​​​​​​

图 1:勒让德多项式

最广义的情况下, 都可以是任意复数。实际应用中通常只考虑整数 ,且的情况,同时只讨论区间 。这些限制在实际应用中是最常见的。此时方程的解是关联勒让德函数(associated Legendre function) 可用勒让德多项式

生成:

​​​​​​​ ​​​​​​​ ​​​​​​​

注意当 时有

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​

当 m 为奇数时, 并不是一个多项式,但习惯上称之为关联勒让德多项式 。式中 称为Shortley-Condon 相位.

1.3 球谐函数

上述关于极角 的函数为关联勒让德函数,方向角函数为。那么定义**球谐函数(spherical harmonics)**为

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​

其中 表示一个单位矢量

,指向球坐标中的点 。l,m 为整数, 是归一化系数,使得 在单位球面上的面积分等于 1。

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​

球谐函数可以看作是将单位球面上的每一点(或三维空间中的每个方向)映射到一个复数函数值。

图 1: 平面的极坐标曲线。红色代表正值,蓝色代表负值。

2.球谐函数

3.球谐系数

4.球谐光照模型

相关推荐
破竹152 天前
OpenGL ES调试汇总
图形渲染·着色器
郝学胜-神的一滴5 天前
Horse3D 游戏引擎研发笔记(七):Clydesdale——从流式日志到多输出订阅
c++·qt·unity·游戏引擎·图形渲染·unreal engine·opengl
杨丰玮4186 天前
从零手写Java飞机躲障碍游戏|Swing绘图、鼠标跟随、计时器碰撞检测实战(五)
java·python·游戏·游戏引擎·图形渲染·动画·贴图
杀生丸学AI8 天前
【三维重建】QuerySplat:在 3DGS 预测中解耦几何与外观表征
人工智能·3d·三维重建·扩散模型·高斯泼溅·空间智能·室内重建
郝学胜-神的一滴8 天前
[简化版 GAMES 104] 现代游戏引擎 06:从Tick时序到邮局模型,拆解确定性世界的底层密码
开发语言·c++·游戏引擎·图形渲染·软件开发·opengl
烧酒同学9 天前
【C++】记录size of std::vector的巧妙坑
开发语言·c++·图形渲染
玖釉-9 天前
nvpro_core2 源码与架构解析:NVIDIA Vulkan 图形开发基础框架
c++·windows·图形渲染
a-6269 天前
三维重建的步骤-1(采集的是环绕物体均匀旋转一圈的视频)
python·pycharm·三维重建·metashape
杀生丸学AI12 天前
【稀疏重建】StructSplat:基于非校准稀疏视图的可泛化3DGS
深度学习·3d·音视频·transformer·三维重建·空间智能
SNAKEpc1213814 天前
OpenGL(十六)- 着色器统一值
c语言·c++·线性代数·算法·矩阵·图形渲染·着色器