概念页
球面函数基
Spherical Basis Functions
要让环境光照超越常数项,需要表示"每个入射方向的辐亮度"这样的球面函数。把函数转成某种表示叫投影,从表示求值叫重建。本页对比表格形式、环境立方体、球面高斯、球谐函数,以及专门为半球设计的 AHD、Half-Life 2 基和 H-basis。
为什么需要、要什么
- 常数环境光 :Lambert 表面贡献 ;任意 BRDF 为 (方向反照率)。老程序用常数"环境色" 。不考虑遮挡时环境光非常平。
- 假设光照环境无限远,辐亮度只随方向变化。Lambert 表面可存预计算的辐照度(辐亮度与余弦瓣卷积);更复杂的做法存辐亮度、运行时与 BRDF 积分。
- 理想性质:编码/解码高效;少量系数、低误差;旋转不变(先旋转再投影 = 先投影再旋转);和与积易算;球面积分与卷积易算。
表格形式
- 选若干方向存值,插值重建,加乘直接对表项做,加样本可任意降低误差。通常把球面展开成矩形用纹理存,借用硬件双线性过滤(即环境贴图)。
- 缺点:低分辨率时硬件过滤质量差;卷积代价正比于样本数;投影不旋转不变,物体旋转时编码能量变化,表现为脉动瑕疵。通常用足够密的采样掩盖。适合高频函数。
- 环境立方体 (Ambient Cube, AC):沿主轴的 6 个平方余弦瓣,,任意方向只需取 3 个值。相当于每面 1 纹素的立方体贴图,软件重建可能比硬件更快。质量低;存 8 个顶点值稍好。Ambient Dice(Iwanicki & Sloan)用二十面体顶点上的平方与四次方余弦瓣,取 12 个中的 6 个,质量高得多。
球面基
- 最简单是常数(DC 分量,球面平均);两系数的 可在两极取精确值,但不旋转不变。
- 球面径向基函数 (SRBF):只依赖与轴夹角的径向对称瓣。若方向也参与优化,投影需非线性全局优化,所以通常固定方向均匀分布,只拟合幅度或宽度。
球面高斯 (SG)
, 为轴, 为锐度(即 von Mises-Fisher 分布去掉归一化常数)。线性组合 。
- 若方向和锐度都可变,需 Levenberg-Marquardt 之类非线性最小二乘,且不再是"基";固定瓣、只拟合权重则成为普通最小二乘,也便于在多组数据间插值。
- 两个 SG 的积仍是 SG:,,轴为 ;球面积分 。因此把光照和 BRDF 都表示成 SG 即可解析积分。
- 各向异性球面高斯 (ASG)(Xu 等):,。
- 缺点:全局支撑,N 个瓣重建时都要算。
球谐函数 (SH)
- 正交且标准正交的基,投影系数就是与基函数的内积 ,通常用蒙特卡洛数值计算。有限个基函数永远无法完全表示无限维函数空间。
- 优点:旋转不变;基函数是单位向量 x/y/z 的简单多项式,求值便宜。全局支撑。
- 按频带排列:第 0 带 1 个常数,第 1 带 3 个线性,第 2 带 5 个二次。辐照度这类低频函数少量系数即可。
- 频域性质:两函数乘积的积分 = 系数的点积。乘积、旋转、卷积都是对系数向量的矩阵变换,代价与系数数平方成正比;旋转加速有 Kautz(分解为绕 x、z 轴)、Hable、Green(利用块结构),目前最好的是 Nowrouzezahrai 的带谐分解。
- 振铃 (Gibbs 现象):信号有快速变化时带限近似会振荡,甚至出现负值,需预滤波(加窗)。
其他
LTC 可高效逼近 BRDF;球面小波兼顾空间与频率局部性,可压缩高频函数;还有分段常数基、双聚类近似。
半球基
BRDF、入射辐亮度、辐照度天然只定义在法线半球上,用全球基浪费一半。
| 基 | 内容 | 特点 |
|---|---|---|
| AHD(环境/高光/方向) | 常数环境光 + 一个方向光,常存 8 个参数(2 个角度 + 2 个 RGB) | 首见于 Quake III 动态物体的体积光照,Call of Duty 系列也用。投影非线性,实践用启发式:先投影到 SH 取最优线性方向,再最小二乘求两色;Iwanicki & Sloan 给出保证非负的方法 |
| Half-Life 2 基(辐射度法线贴图) | 切线空间三个互相垂直单位向量,仰角约 26°,投影在切平面上相隔 120° | 原为存预计算漫反射同时支持法线贴图;Sloan 发现效果优于低阶半球谐 |
| 半球谐 (HSH) | Gautron 等把球的负极移到半球边缘 | 非多项式,需除法和开方;边缘处恒为常数,误差大 |
| H-basis | Habel:经度方向用 SH、纬度方向用 HSH 的部分 | 仍正交且求值高效 |
Half-Life 2 基三个向量为 、、,重建:
Green 指出可把归一化权重 预计算在切线空间方向图中,重建简化为 。(GDC 2004 演讲中的公式是错的,上式来自 SIGGRAPH 2007。)
出处
- realtime_rendering_4ed.pdf 第 10 章 Local Illumination
相关页面
图形学基于图像的光照Image-Based Lighting用纹理数据(通常是相机拍摄的 360° HDR 全景)照明场景称为基于图像的光照。实时引擎常用预滤波的高光立方体贴图(配合 split-sum 近似)处理高光,用辐照度环境贴图或球谐系数处理漫反射。它们只依赖少量光照图元而不需要知道场景其他表面,因此仍属局部光照。图形学环境贴图Environment Mapping把球面函数记录在一张或多张图像里、用纹理查找来解码,就是环境贴图。它比其他球面表示占内存多,但解码简单快速,能表达任意高频和任意动态范围。最基本的用法是反射贴图:假设镜面 BRDF,用反射视线向量查表。本页比较经纬度、球面、立方体、双抛物面和八面体等投影。图形学面光源Area Lights真实光源从来不是点。面光源要求对光源所张立体角 \omegal 积分 BRDF,实时渲染倾向于用闭式解或近似而不是多条光线取平均。主要做法有:Lambert 表面的矢量辐照度与包裹光照、光泽表面的粗糙度修正和"最具代表性的点",以及最准确的线性变换余弦 (LTC)。图形学法线贴图与凹凸贴图Normal & Bump Mapping凹凸贴图是一类在像素着色中修改着色法线来表现中尺度细节的技术:几何法线不变,只改变光照计算使用的法线,从而在不增加几何的情况下显得更立体。最常用的形式是切线空间法线贴图,需要每顶点的切线框架;法线贴图的过滤是难点。图形学预计算光照与光照贴图Precomputed Lighting & Light Maps烘焙 (baking) 是把辐射度或路径追踪等离线 GI 结果预先算好存起来,运行时直接查询。静态几何参与预计算并完整交互,动态物体只作接收者。数据可以是辐照度,也可以带方向(SH、H 基、AHD、球面高斯、环境立方体等),存储在光照贴图、顶点或体积/探针中,各有接缝、漏光、内存等取舍(RTR4 11.5.1、11.5.2、11.5.4 节)。图形学方向遮蔽Directional Occlusion方向遮蔽用比单个 AO 标量更有表现力的方式记录"哪些方向被挡住",例如地平线角、可见性锥(环境孔径)、球面有向距离或球谐。它主要用于面光源和环境光照的软遮蔽,以及凹凸细节自阴影、超大地形等阴影贴图分辨率不够的场合;对点光源,专门的阴影技术质量更好(RTR4 11.4 节)。图形学预计算辐射传输Precomputed Radiance Transfer预计算传输 (PRT) 假设几何不变、只有光照变化,预先计算"输入光照 → 场景辐射亮度分布"的传输函数,运行时注入直接光再应用传输。它依赖光传输的线性性:各"基础光源"的单位响应按当前强度加权求和即得完整反弹光照。变体包括 Sloan 的 SH 环境光 PRT、点光源簇 PRT,以及 Enlighten 一类的表面间传输(RTR4 11.5.3 节)。图形学环境光遮蔽Ambient Occlusion环境光遮蔽 (AO) 是余弦加权后半球上未被遮挡的比例,用来在光照缺乏方向变化时仍给出形状线索(缝隙变暗)。它由 Landis 在 ILM 为《珍珠港》开发,可离线烘焙,也可在物体空间或屏幕空间动态计算(SSAO、HBAO、GTAO 等)。AO 适合漫反射和平滑环境光,不适合点光源或小面光源的可见性(RTR4 11.3 节)。图形学粒子系统Particle Systems粒子系统是一组按某种算法运动的小物体,用于火、烟、爆炸、水流、星系等,同时负责动画(生成、移动、变化、删除)和渲染。粒子通常渲染成公告板;难点在半透明排序、光照(逐顶点、逐像素低分辨率光照图块)以及接收/投射/自阴影(透射率溅射、傅里叶不透明度贴图、消光体积)(RTR4 13.8 节)。