Rendering Lecture 2:Light

Course: 渲染基础 Rendering Basics Date: November 29, 2025 10:38 AM (GMT+8)

🎨 Rendering Lecture 2:光(Light)

光照、辐射度量学、BRDF、软阴影的数学基础


🏛 1. 光的直觉性质(Intuitive Properties of Light)

  • 光线走直线 → 才能做 Ray Tracing(光线追踪)
  • 这也是为什么激光笔能逗猫(可控的直线传播)

当光以角度 θ 照射表面时:

  • 直射(θ=0°) → 单位面积接收到满强度
  • 倾斜照射(θ>0) → 光照分布在更大面积 → 看起来更暗

数学表达(单位长度 C=1 时):

Received Light=cosθ \text{Received Light} = \cos\theta

实际计算用 dot(normal, -light_dir)


光源越亮,表面越亮。 光强与亮度 线性关系


光源越大,单位角度覆盖的面积越大 → 更亮,但不线性:

  • 10cm → 1m:显著更亮
  • 1km → 100km:几乎不变(角度几乎不变)
  • 点越远 → 面积变化越不敏感

点光在空间膨胀,就像鼓起的球壳:

  • 表面的面积 ∝ r²
  • 光子数量不变 → 密度降低 → 亮度 ∝ 1 / r²

🔥 2. 光的简化(Rendering Simplifications)

渲染中不处理真正的物理光学,只做几何光学(Ray Optics)。

  • 衍射(diffraction)
  • 干涉(interference)
  • 偏振(polarization)
  • 荧光(fluorescence)
  • 完整光谱(只算 RGB)

真实光学太复杂,渲染只采纳 近似且足够真实的模型


🧮 3. 光照数学(Light Integration 基础)

目标:计算某点接收到的光。

我们必须 “从半球的所有方向” 汇总光照:

Incoming Light=hemisphereL(ω)cosθdω \text{Incoming Light} = \int_{\text{hemisphere}} L(\omega)\cos\theta\,d\omega

要素:

  • dω:单位立体角
  • cosθ:入射角衰减
  • L(ω):方向 ω 上来的辐射亮度

为了处理 面光源(软阴影),我们换变量:

hemispherelight surface \int_{\text{hemisphere}} \longrightarrow \int_{\text{light surface}}

依赖关系:

dω=cosθemitr2dA d\omega = \frac{\cos\theta_{\text{emit}}}{r^2}\,dA

含义:

  • r:点到光源面片的距离
  • dA:光源上微小面积
  • cosθ_emit:光源面片的法线角度

🌐 4. 立体角(Solid Angle)

单位是弧度(Radian)

单位是 Steradian(球面度) 单位球完全覆盖:4π sr

光源越接近 → 立体角越大 → 看起来越亮


📡 5. 辐射度量学(Radiometry)

讲义用“下雨”比喻非常形象:

辐射量意义雨的类比
Radiant Energy光能总量雨水总量
Radiant Flux (Power)每秒能量每秒雨水
Intensity朝某方向雨量某方向的雨强
Irradiance到达表面雨量落在地面的雨
Radiance单位面积 + 单位方向某点某角度的雨密度
  • 不随距离衰减
  • 方向相关
  • 用来决定像素颜色
  • 摄像机、眼睛对 radiance 敏感

Radiance 是一个 5D 函数: L(x, y, z, θ, φ) 称作 plenoptic function


🧪 6. 材质(Materials)与 BRDF

描述:

BRDF: 从方向 ωi 入射的光有多少从 ωo 方向反射? \text{BRDF: 从方向 }\omega_i\text{ 入射的光有多少从 }\omega_o\text{ 方向反射?}
  • 不同材料有不同 BRDF
  • 黑色材料:全部吸收
  • 白色材料:全部反射
  • 有色材料:部分吸收固定波长

⚖️ 7. White Furnace Test(能量守恒单元测试)

把一个白色漫反射物体放在“无线白光环境”里,它不能发光:

Outgoing LightIncoming Light \text{Outgoing Light} \le \text{Incoming Light}

计算结果应该 ≤1 但直接积分得到 π → 违反物理规律

  • 白色材料反射率 ρ=1
  • BRDF = 1/π → 恢复能量守恒(积分结果恰好=1)

这是 PBR 中至关重要的原则。


🌞 8. 直接光照(Direct Lighting)与软阴影

包含:

  • BRDF
  • 光源面片 dA
  • 入射 cosθ
  • 发射 cosθ_emit
  • 1/r² 衰减
  • 光源亮度
  • 可见性(遮挡)

还有关键的:

  • 若点 x 与光源面片 y 之间被遮挡 → 0
  • 可见 → 1 这就是软阴影的来源。

🎲 9. 用 Monte Carlo 做光照估计(Soft Shadows)

我们不能解析求解积分 → 必须用随机采样。

流程:

  1. 找到可见点 P
  2. 在光源上随机采样 N 个点 Y_i
  3. 对每个点做一次阴影检测(Shadow Ray)
  4. 若可见:累加
  5. 加上所有 cosθ / r² / 光源亮度 / BRDF
  6. 除以采样概率 & 样本数量
  7. 得到 P 点的直接光

这种方法:

  • 自然产生软阴影
  • 光源越大 → 阴影越软
  • 采样越多 → 噪点越少

🚀 10. 下一讲预告:Monte Carlo 深入

下一部分讲内容:

  • 如何用 Monte Carlo 计算 π
  • Uniform Sampling
  • Importance Sampling
  • 用更高效的采样减小噪点
  • Ambient Occlusion(环境光遮蔽)计算

🔑 要点总结(超简版)

  • 光线直线传播 & cosθ 决定亮度
  • 点光源随距离平方衰减
  • 立体角控制光源“看起来的大小”
  • Radiance(辐射亮度)是渲染最核心的物理量
  • BRDF 决定材质外观
  • White Furnace Test 保证不违反能量守恒
  • 面光源 + Monte Carlo → 软阴影的关键