章节摘要:本章是光路回溯实验室的入门导览。我们先回答一个最根本的问题:光线追踪与已经服役三十年的光栅化,到底差在哪一件事上?答案只有四个字——从拍到算:光栅化把物体"拍"到屏幕上,光线追踪沿视线"算"出每一点的颜色来历。围绕这条主线,本章依次给出光线追踪四十年历史中的四次关键转折、一套读得懂写得出的核心术语表(射线家族与命中信息),以及一张两条渲染路线的分工对照表。读完本章,你应当能在任何一张渲染图前说出"这个效果光栅化为什么给不了、光线追踪又是靠哪条射线拿到的",并带着这套语言进入后续所有实验。
完成本章后,你应当能够:
金句先行:光栅化问的是"屏幕上这个像素该填什么颜色",光线追踪问的是"到达这里的光从哪里来、路过哪里、丢了多少能量"——前者描述结果,后者重演因果。
下面的全景图把本章三节的内容与它们共同服务的那道核心问题摆在一张图上。注意箭头的方向:历史与概念最终都汇入"对比与选型"这一终点,因为范式之争只有在具体需求面前才有意义。
1.1 从拍到算:光线追踪的历史转折——把四十年历史压缩成四次交接班:Whitted 让视线学会递归,Kajiya 把成像写成方程,蒙特卡洛让方程可解但带来噪声,RT Core 把求解器铸进硅片。每一站都附一段可读伪码或一个工业标志事件,历史在这里不是年表,而是"问题—解决—新问题"的链条。
1.2 射线家族与核心术语速查——光线追踪的一切计算都由"带意图的射线"完成。本节给出实验室的术语规范:一条射线在数学上是四个数,在工程上是一个携带起点、方向、命中记录的结构体;主光线、阴影射线、反射射线、折射射线各司其职。读完即可无障碍阅读后续所有章节的伪码。
1.3 两条路线:光线追踪与光栅化的分工——不是谁取代谁,而是责任划分。本节用一个"镜子对着窗户"的对照实验,逐项检查两种范式在反射、透明、软阴影、屏幕外可见性上的表现差异,并给出选型决策表:什么时候全光追、什么时候混合、什么时候光栅化仍然是最省钱且够用的答案。
三节的推进关系可以概括为:历史给动机,术语给语言,对比给判断。1.1 告诉你每个概念"为什么被发明",1.2 把这些概念固定成可操作的符号系统,1.3 则把它们放到与光栅化的对抗性比较里,逼出各自的边界。没有历史视角,术语只是一堆缩写;没有术语,对比就退化成口号;没有对比,学完仍不知道何时该用。
1.1 历史转折 1.2 术语速查 ┌──────────────┐ ┌──────────────┐ │ Whitted递归 │ 概念固化 │ 射线家族 │ │ 渲染方程 │ ────────→ │ 命中记录 │ │ 蒙特卡洛 │ │ 求交接口 │ └──────┬───────┘ └──────┬───────┘ │ 两者共同提供弹药 │ ▼ ▼ ┌─────────────────────────────────────────┐ │ 1.3 与光栅化的分工与选型 │ │ 反射/透明/软阴影/屏幕外 —— 逐项对照 │ └───────────────────┬─────────────────────┘ ▼ 带着问题进入第 2 章: 每条射线拿回来的到底是什么物理量?
本章刻意做到"零门槛":不需要任何图形学背景,只要见过游戏或影视里的反射与阴影即可。唯一的数学要求是知道向量点乘的几何含义(第 3 章求交会重度使用)。如果你已经写过简单的光栅化或 OpenGL 程序,1.3 的对照表会帮你把已有知识挂到正确的位置上。
往后的依赖链条是:第 2 章把本章反复出现的"颜色来历"升级为辐射度量与渲染方程的严格表述;第 3 章把本章一语带过的"求交"展开成可以手推的几何计算;第 4 章解决"求交太慢";第 5、6 章把"命中之后怎么办"讲透。第 7、8 章的实时与硬件话题,则是 1.1 历史线中"RT Core 转折"的完整展开。可以说,本章埋下的每一个名词,都会在后面某一章拿到它的完整定义。