方程立在台上,本节讨论求解它的战略问题:积分要从哪头开始采。三种范式——从眼睛逆行、从光源顺行、双向会师——不是三种物理,而是同一条记账规则的三个入口;它们各自的命中率差异,直接决定你日后在离线渲染器里选路径追踪还是光子映射、在实时管线里为什么阴影射线最先普及。本节是第 6 章的路线预告图,也是理解一切"光传输算法族谱"的坐标系。
场景是一条笔直的长廊,尽头墙上开一个针孔大的小窗,窗外挂一盏灯。灯发出的光只有极窄的一束能穿过针孔,恰好照到走廊入口处的一块瓷砖。现在要渲染那块瓷砖的颜色。
从光源顺行(forward tracing):从灯向四面八方撒光子,绝大多数撞墙吸收,只有极幸运的一束穿过针孔、沿直线飞到瓷砖。要命中那块瓷砖的每个采样点,正向光子的命中率低到荒谬——你撒一百万个光子,可能只有个位数路过目标区域,得到的估计噪声大到不可用。物理完全正确,统计效率是灾难。
从眼睛逆行(backward tracing):从瓷砖出发反向追问"谁照亮了我"。沿反方向检查半球来路,那条穿过针孔的路径立刻被锁定,两步求交就找到灯。对所有"最终要进相机"的能量,逆行天然只做相关查询——它把计算预算全部花在"对答案有贡献"的路径上。渲染史选择逆行作为主流,不是审美,是命中率的算术。
双线会师(bidirectional):从瓷砖逆行几步、从灯顺行几步,把两条半截路径在中途互相连接,凡是连得上的组合都计入贡献。针孔这种"两头都窄"的路径,单侧采样都困难,会师却能把中间的开阔地带当作握手区。这就是双向路径追踪与光子映射共同的直觉内核。

思想实验可以推广成一般规律:路径的"瓶颈"在哪头,就从哪头突破。相机路径通常很"宽"——从像素出发的半球采样几乎不会浪费;光源侧则有大量窄路——小光源、间接镜面反射链、焦散,顺行采样才容易撞见。把规律落成分工:
逆向路径追踪:默认主力。眼睛侧路径高效,直接光与大多数间接漫反射 都归它;弱点是光源侧窄路(小光源焦散、点光源直接光)。 正向光子映射:从光源撒光子建辐射缓存,专补光源侧窄路——焦散、 间接镜面链;弱点是视点相关效果(光泽反射)模糊。 双向路径追踪:两侧各走半程再连接,配合多重重要性采样按贡献加权, 兼顾两头;代价是实现复杂、单样本成本最高。
实时管线同样遵循这张表:第 1 章见过的阴影射线就是逆行思想的最小实现——从着色点反向追问光源可见性;而第 6 章的实时光照缓存探针,本质是把正向光子思想装进实时预算的产物。离线与实时看似两个世界,范式分工完全一致。
双向会师引出本章最后一个技术名词:多重重要性采样(MIS)。两条路线各自采样,同一光路可能被双向重复计入,也可能两头都够不着——需要按各条路径的生成概率反比加权,让无偏性在混合策略下依然成立。本节只需建立直觉:"哪个策略擅长这条路径,就给哪个策略更大的权重";公式与实现留在第 6 章,那里它将作为路径追踪器的标准配件正式上岗。
还有一个务实提醒:逆行为主的格局里有著名的例外。焦散(光穿过玻璃杯在桌面聚成亮线)是光源侧窄路的典型,纯逆行路径追踪采到它的概率极低,噪点经年不散——工业解法要么请正向光子映射、双向方法救场,要么接受下一章之后发展出的重采样技术。知道例外在哪,才能在第 6 章收敛实验里正确诊断"为什么这块区域噪声死活不退"。
范式选择的本质是给方差做预算,口算一遍最直观。设场景:暗房间,一扇小窗,窗外日光。从眼睛出发的路径追踪,相机射线在房间里乱撞,能恰好从窗口逃出去的路径比例可能只有千分之一——绝大多数采样作废,画面黑得均匀而绝望。从光源出发的光子追踪恰好相反:从窗口撒进来的光子个个有效,但它们很难恰好弹进相机镜头那枚硬币大小的立体角——统计镜头命中成了大海捞针。两个极端输在同一个地方:命中率由路径两端共同决定,而单独从任何一端出发都要赌整条路径。双向方法的存在理由就此浮现:两端各走半程,在中间对接,最难的那一段被砍成两半。
| 场景特征 | 路径追踪(从眼睛) | 光子映射(从光源) | 双向类方法 |
|---|---|---|---|
| 小光源照亮大房间 | 方差爆表,须直接光采样救场 | 天然擅长 | 擅长 |
| 大面积天光室内 | 低方差,首选 | 大材小用 | 不必动用 |
| 焦散与水面聚光 | 几乎采不到 | 招牌能力 | 部分可行 |
| 镜面与漫反射交替链 | 靠下一跳采样挣扎 | 依赖接力式存储 | 仍是共同盲区 |
注意表里最后一行。镜面、漫反射、镜面这样的序列是所有经典方法的共同禁区:从眼睛侧按镜面规律弹、从光源侧也按镜面规律弹,两半路径在漫反射段会师前各自都要赌一次窄路。光子映射里最稳定的处理是让光子穿过镜面时按折射继续弹跳、直到落在漫反射面上再存储,工程上称为镜面接力。这个坑在第 6 章的焦散实验里会再次现身,届时你会亲手摸到它。
还有一条实操纪律:范式不是站队而是排班。现代离线渲染器几乎都同时养着两三套估计器,按光源大小与材质分布自动切换或人工指派——第 6 章的迷你渲染器会演示排班的最简版本。学三种范式的目的不是背三种算法,是拿到一张"什么症状开什么药"的处方笺:噪声集中在小光源周围,从光源侧补;画面整体干净但某块区域颗粒死不退,先查光源侧窄路;预算极紧、场景动态,退回纯逆行加直接光采样。处方开得准,后面的章节就都是抓药。
把处方再往前推一步,给"会师"一个数字锚点。设光源对着色点张开的立体角是窄圆锥,材质采样的方向分布是另一片宽度——一条路径被眼睛侧采到的概率正比于它落进材质分布宽度的比例,被光源侧采到的概率正比于它落进光源立体角的比例;两个比例一个随光源变窄趋零、一个随材质变锐趋零,谁趋零就给另一侧加权,这正是 MIS 权重的几何含义。不必背公式,记住两个立体角的此消彼长即可:窄光源、锐镜面、宽漫反射,三个旋钮的组合决定排班。下次在渲染器里看到"光源采样"与"BSDF 采样"两个开关,你会知道它们不是二选一,而是两份立体角预算的分配器。
还有一个跨越本章的收束值得写下:2.1 的四本账、2.2 的一道方程、2.3 的三张处方,合起来回答同一个问题——"这里的颜色从哪来"。度量学给量词,方程给结构,范式给解法;往后五章的所有算法都只是在"解法"这一层反复迭代。若你在后面章节的某个算法里迷了路,回到本章问一句"它在近似方程的哪一项、用哪个范式采那条路径",路标立刻清晰。带着这张地图进下一章:几何是路径的骨骼,骨骼越准,处方越灵。
范式地图铺开,剩下的是把地图上的每条路修成真路:路径要能走,射线必须撞得上几何。下一章进入求交手推——实验室的钳工台。