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

相关推荐
玖釉-1 小时前
Vulkan 示例解析:pipelines.cpp 如何在一个 Render Pass 中切换多条 Graphics Pipeline
c++·windows·算法·图形渲染
做cv的小昊2 小时前
计算机图形学:【Games101】学习笔记06——几何(曲线和曲面、网格处理)、阴影图
c++·笔记·学习·游戏·图形渲染·几何学·光照贴图
郝学胜-神的一滴3 天前
[简化版 GAMES 101] 计算机图形学 11:频域·卷积·抗锯齿
c++·unity·图形渲染·opengl·three·unreal
杀生丸学AI5 天前
【三维重建】RT-Splatting:基于3DGS的联合反射-透射建模(CVPR 2026)
人工智能·深度学习·3d·三维重建·高斯泼溅·动态重建·镜面反射
RReality7 天前
【Unity Shader URP】水面效果 实战教程
unity·游戏引擎·图形渲染
郝学胜-神的一滴10 天前
[简化版 GAMES 101] 计算机图形学 10:反走样与深度缓冲核心解析
c++·unity·godot·图形渲染·three.js·unreal engine·opengl
玖釉-12 天前
旋转图像:从矩阵转置、镜像到坐标变换的系统理解
c++·windows·算法·图形渲染
玖釉-12 天前
Slang 和 HLSL 的区别与用法详解:现代图形渲染中的两种 Shader 编程语言
c++·算法·图形渲染
DBBH13 天前
AI帮我忙之webgpu实时路径追踪
图形渲染·webgpu
郝学胜-神的一滴14 天前
中级OpenGL教程 006:高光反射原理与 Shader 实现
c++·unity·godot·图形渲染·three.js·opengl·unreal