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.球谐光照模型

相关推荐
郝学胜-神的一滴2 小时前
基于OpenGL封装摄像机类:视图矩阵与透视矩阵的实现
c++·qt·线性代数·矩阵·游戏引擎·图形渲染
玖釉-4 天前
OpenGL视图变换矩阵详解:从理论推导到实战应用
c++·图形渲染
逐云者1235 天前
论文介绍:“DUSt3R”,让 3D 视觉从“繁琐”走向“直观”
人工智能·transformer·vr·三维重建·ar、
元让_vincent6 天前
论文Review 3DGS HAC | ECCV2024 上海交大 莫纳什大学| 数10倍的3DGS模型压缩
3d·图形渲染·模型压缩·3dgs
AndrewHZ9 天前
【3D算法技术入门】如何基于建筑图片重建三维数字资产?
图像处理·算法·3d·三维重建·colmap·点云处理·立体匹配
AndrewHZ10 天前
【python开发123】三维地球应用开发方案
开发语言·python·计算机视觉·三维重建·遥感图像分析
郝学胜-神的一滴15 天前
Horse3D游戏引擎研发笔记(七):在QtOpenGL环境下,使用改进的Uniform变量管理方式绘制多彩四边形
c++·3d·unity·游戏引擎·图形渲染·虚幻·unreal engine
Duo1J15 天前
【OpenGL】LearnOpenGL学习笔记15 - 面剔除
笔记·学习·图形渲染
头发掉光的程序员16 天前
第七章 利用Direct3D绘制几何体
c++·windows·图形渲染·direct12
Jiezcode17 天前
Unreal Engine ClassName Rule
c++·游戏·图形渲染·虚幻引擎