🎯 目的
逼真模拟真实世界中光的传播路径,计算每个像素点的辐射亮度(radiance)。
🔁 基本原理
利用Random Sampling(随机路径)来近似求解渲染方程中的高维积分。因此不可微分(输入变量轻微变化(如位置或材质参数),所选的随机路径可能会完全不同。不可导)
🌟 渲染方程(简写):
-
自发光项:
→ 如果 是一个灯泡表面,这一项就是它直接发出的光。 -
反射光项:积分部分
→ 收集来自各方向 的光 ,根据材质的反射特性 、角度余弦 ,加权累加形成出射光。
符号 | 含义 |
---|---|
出射辐射亮度:点 向方向 发出的光(最终看到的光) | |
自发光:如果点 本身是光源,它自己往 发的光 | |
半球空间(法线方向上方的所有方向) | |
BRDF(双向反射分布函数):描述光从 进来、被表面反射到 的比例 | |
入射辐射亮度:来自方向 的光,照射到点 上 | |
余弦项:光照与法线夹角越小,贡献越大(光线更正面打在表面上) |
⚙️ 工作流程
-
视角光线发射
从摄像机出发,穿过像素,进入场景。 -
光线与场景交互
碰撞检测:与物体表面相交,获取位置 、法线 、材质参数。 -
采样光照贡献(Monte Carlo 积分)
在单位半球 中随机采样若干入射方向 ,计算各方向的光照贡献:其中 是该方向的采样概率(importance sampling)。
-
路径追踪
若材质是反射/折射,继续从当前交点向反射/折射方向发射新光线,直到:- 命中光源(返回亮度)
- 超过最大追踪深度
- 被 Russian Roulette 终止(控制计算量)
-
像素颜色输出
多个采样平均后得到像素最终颜色。
💡 特点
优点 | 缺点 |
---|---|
物理真实感高,可逼真模拟全局光照、软阴影、镜面反射等复杂效果 | 噪声大,收敛慢,需要大量采样才能清晰 |
简洁、通用 | 对低频区域采样浪费,需用重要性采样提升效率 |