跳转到主要内容

10|相机与透镜

成像的合成与捕获、相机内部结构(镜头/光圈/快门/传感器)、小孔成像的历史、视场 FOV 与焦距和传感器尺寸的关系、曝光三要素(光圈、快门、ISO)、F 数与光圈直径、运动模糊与卷帘快门、薄透镜近似与高斯薄透镜方程、光线图与相似三角形推导、弥散圆 CoC、用光线追踪渲染散焦模糊、景深 DOF 与焦深

  • 课程主讲:闫令琪 (Lingqi Yan) | UCSB
  • B站课程链接:https://www.bilibili.com/video/BV1X7411F744
  • 本章对应课件:第 19 讲(Cameras, Lenses and Light Fields)

说明:前九篇一直在回答"怎么把模型画成图",那是合成 (Synthesis);这一篇换个方向,讲图像是怎么被**捕获 (Capture)**下来的。相机的每个部件——镜头、光圈、快门、传感器——几乎都能在渲染器里找到一个对应参数,而景深、散焦模糊、曝光这些效果,也由此第一次有了物理模型。


1 成像:合成与捕获 (Imaging = Synthesis + Capture)

相机与透镜是图形学中"成像"的另一半:光栅化与光线追踪解决的是合成 (Synthesis)——从模型生成图像;而相机解决的是捕获 (Capture)——从真实世界采集图像。两者最终都落在同一件事上:传感器平面上记录到的辐照度 (irradiance)。

理解相机的意义在于:它不仅解释了我们日常拍出的照片为什么会虚、会糊、会过曝,也直接给出了渲染器里景深、散焦模糊、曝光这些效果的物理模型。

相机里面有什么

一台相机可以拆成几个职责清晰的部分:

部件作用
镜头组 (Lens)把来自场景不同方向的光重新汇聚,在传感器上成像
光圈 (Aperture)控制进光量的多少(同时决定景深)
快门 (Shutter)控制传感器暴露在光下的时间长短
传感器 (Sensor)在曝光期间累积辐照度,最终转成像素值

相机剖面(Nikon D3, 14-24mm F2.8)

小孔与透镜在传感器上成像

小孔与透镜成像对比

无论是小孔还是透镜,目的都是限制每个传感器点能接收到的光线方向:只让来自场景中某一小片区域的光落在一个点上,从而在传感器上形成与场景对应的像。

快门与传感器的累积

快门在精确的时间内打开,暴露传感器。

快门工作过程

传感器在曝光期间累积辐照度 (irradiance)——它记录的是"这段时间内总共落下来的光",而不是某一瞬间的光。

为什么不能没有透镜

如果去掉透镜,只留一个传感器:每个传感器点都会把物体上所有点发出的光积分到一起,于是所有像素值都差不多——你得到的是一片均匀的灰,而不是图像。

原因在于传感器记录的是辐照度:辐照度是"来自所有方向的光在单位面积上的总功率",它天然丢掉了方向信息。要成像,就必须先把方向信息筛出来——这正是小孔和透镜做的事。

补充:计算成像 (computational imaging) 领域确实在研究无透镜相机 (lensless camera),靠计算而非光学来恢复图像,但这属于另一条技术路线。

小孔成像的历史

小孔成像 (pinhole image formation) 是人类最早理解的成像模型,被多个文明独立发现:

人物年代
墨子 (Mo Tzu)约公元前 470–390
亚里士多德 (Aristotle)公元前 384–322
Ibn al-Haytham965–1040
沈括1031–1095
Roger Bacon约 1214–1294
开普勒 (Johannes Kepler)1571–1630

小孔相机与历史人物

世界上最大的小孔摄影作品(legacyphotoproject.com):把一个房间甚至一栋建筑做成暗箱。

最大的小孔摄影


2 视场 (Field of View)

焦距对视场的影响

视场 (FOV, Field of View) 描述相机能"看到"多宽的角度范围。它由传感器尺寸 $h$ 和焦距 $f$ 共同决定:

焦距与视场的关系

$$ \text{FOV} = 2 \arctan\left(\frac{h}{2f}\right) $$
符号含义
$h$传感器的高度(或宽度,取决于要算垂直还是水平视场)
$f$透镜焦距 (focal length)

结论:传感器尺寸固定时,焦距越小,视场越大。

焦距与视场的换算惯例

出于历史原因,人们习惯用"在 35mm 胶片格式(36 × 24mm)上使用的透镜焦距"来指代视场角:

焦距(35mm 格式)类型视场角
17mm广角 (wide angle)104°
50mm标准 (normal)47°
200mm长焦 (telephoto)12°

不同焦距的视场对比

注意:当我们说现在的手机大约是 28mm “等效"焦距时,用的就是这个惯例——手机传感器远小于 35mm,实际焦距只有几毫米,只是视场角与之相当。

传感器尺寸对视场的影响

传感器越小,视场越小(在焦距不变的前提下)。

APS-C 与 35mm 全画幅的视场差异

常见传感器尺寸对比

在更小的传感器上保持视场

要保持视场不变,就按传感器宽/高的比例等比例减小焦距。

小传感器配短焦距以保持视场

这也是为什么同一个镜头装在 APS-C 机身上时视场会变窄(等效焦距要乘以约 1.5 的裁切系数)。


3 曝光 (Exposure)

曝光的定义

$$ H = T \times E $$

曝光量 = 曝光时间 × 辐照度。

量含义由什么控制
曝光时间 $T$传感器暴露在光下的时长快门 (shutter)
辐照度 $E$单位面积传感器上落到的光功率光圈 (aperture) 与焦距

曝光的三个控制量

控制量手段
光圈大小 (Aperture size)通过开合光圈改变 f-stop(若相机有光圈环控制)
快门速度 (Shutter speed)改变传感器像素累积光的时长
ISO 增益 (ISO gain)改变传感器值与数字图像值之间的放大倍数(模拟和/或数字)

光圈、快门、ISO 三者对曝光的影响

ISO(增益)

ISO 的核心作用是控制相机对光信号的放大倍数,从而在光圈和快门已定的情况下,把照片亮度调整到合适水平。

  1. 调节画面亮度。
    • ISO 越低,放大倍数越小,画面越暗,但通常噪点更少、动态范围更宽。
    • ISO 越高,放大倍数越大,画面越亮,但噪声和画质损失通常更明显。
  2. 配合光圈和快门实现曝光自由。当光圈和快门无法再调整时,它提供额外的曝光余地。
  3. 影响画质:噪声、动态范围、色彩。
影响项低 ISO高 ISO
噪声少多
动态范围宽窄
高光宽容度好容易溢出
色彩深度好可能下降
细节保留好可能被降噪抹掉

ISO 是曝光的第三个变量:

  • 胶片时代:用灵敏度换颗粒度 (grain)
  • 数码时代:用灵敏度换噪声 (noise)
  • 在模数转换 (analog-to-digital conversion) 之前把信号放大
  • 效果是线性的:ISO 200 只需要 ISO 100 一半的光

ISO 增益与噪声(Canon T2i)

ISO 放大之所以会引入噪声,核心原因在于:放大信号的同时,也放大了传感器本身的固有噪声,而且后期数字放大还会额外引入量化噪声。

F 数 (F-Number / F-Stop)

写作 $F_N$ 或 $F/N$,其中 $N$ 就是 f-number。

  • 非正式理解:圆形光圈直径的倒数(光圈直径越大,进入光的能量越多)
  • 正式定义:透镜的 f-number 定义为焦距除以光圈直径
$$ N = \frac{f}{D} $$
符号含义
$f$焦距
$D$光圈的绝对直径
$N$f-number

快门速度的副作用:运动模糊

运动模糊 (motion blur) 来自手抖 (handshake) 和主体运动 (subject movement)。

快门时间翻倍,运动模糊也翻倍。

运动模糊与快门时间的关系

注意:运动模糊并不总是坏事。 提示:想想抗锯齿 (anti-aliasing)——运动模糊本质上是在时间维度上做平均,与像素内采样平均是同一类操作。

运动模糊作为时间维度的抗锯齿

卷帘快门 (Rolling Shutter)

照片的不同部分是在不同时间拍摄的——因为传感器逐行读出,而不是一次性曝光。

卷帘快门导致的扭曲

恒定曝光:光圈与快门速度的权衡

下面这些光圈 / 快门组合给出等价的曝光量:

F-Stop1.42.02.84.05.68.011.016.022.032.0
快门1/5001/2501/1251/601/301/151/81/41/21

如果曝光过亮或过暗,就需要往上或往下调整 f-stop 和/或快门。

摄影师必须在景深 (depth of field) 与运动模糊之间做权衡——这是摄影里最核心的一组取舍。

高速摄影与长曝光摄影

类型做法
高速摄影 (High-Speed Photography)正常曝光 = 极快的快门速度 ×(大光圈和/或高 ISO)。经典作品来自 Harold Edgerton
长曝光摄影 (Long-Exposure Photography)用很长的曝光时间,把运动累积成光轨、丝滑的水面等

高速摄影示例

长曝光摄影示例


4 薄透镜近似 (Thin Lens Approximation)

真实透镜并不理想:像差

真实镜头设计极其复杂,高端镜头内部由十几片镜片组成。

Apple 镜头的复杂结构

真实透镜元件并不理想——存在像差 (aberration)。 最典型的是球差 (spherical aberration):

真实的平凸透镜(表面是球面形状),无法把光线汇聚到任何一个点上。

球差:真实平凸透镜无法聚焦到一点

理想薄透镜

为了能做数学分析,我们假设一个理想化的薄透镜:

理想薄透镜与焦点、焦距

理想薄透镜的三条性质:

  1. 所有平行进入透镜的光线都穿过它的焦点 (focal point)
  2. 所有穿过焦点的光线在通过透镜后都变得平行
  3. 焦距可以任意改变(现实中确实可以——变焦镜头)

薄透镜方程

对物距 $z_o$(object 到透镜的距离)和像距 $z_i$(透镜到成像平面的距离):

薄透镜方程

$$ \frac{1}{f} = \frac{1}{z_i} + \frac{1}{z_o} $$

这就是高斯薄透镜方程 (Gaussian Thin Lens Equation)。

高斯光线图 (Gauss’ Ray Diagrams)

用三条特殊光线就能画出成像:

高斯光线图:平行光线、主光线、焦光线

光线走法
平行光线 (Parallel Ray)平行于光轴入射 → 出射后穿过像方焦点
主光线 (Chief Ray)穿过透镜中心 → 方向不变
焦光线 (Focal Ray)穿过物方焦点入射 → 出射后平行于光轴

从相似三角形推导薄透镜方程

设物高 $h_o$、像高 $h_i$,物距 $z_o$、像距 $z_i$、焦距 $f$。

高斯光线追迹构造与推导

从平行光线看(物方焦点到物顶点的三角形,与像方焦点到像顶点的三角形相似):

$$ \frac{h_o}{z_o - f} = \frac{h_i}{f} $$

从焦光线看(物顶点到透镜的三角形,与像顶点到像方焦点的三角形相似):

$$ \frac{h_o}{f} = \frac{h_i}{z_i - f} $$

两式都给出物像高之比 $h_o / h_i$,令其相等:

$$ \frac{z_o - f}{f} = \frac{f}{z_i - f} $$$$ (z_o - f)(z_i - f) = f^2 $$

这就是牛顿薄透镜方程 (Newtonian Thin Lens Equation)。展开左边:

$$ z_o z_i - z_o f - z_i f + f^2 = f^2 $$$$ z_o z_i = (z_o + z_i) f $$

两边同除以 $z_o z_i f$,即得高斯形式:

$$ \frac{1}{f} = \frac{1}{z_i} + \frac{1}{z_o} $$

5 散焦模糊与景深 (Defocus Blur & Depth of Field)

弥散圆 (Circle of Confusion) 的大小

当镜头对焦在某个平面时,只有这个平面上的点能在传感器上完美汇聚成一个点。偏离这个平面的景物,其光线会在传感器上汇聚成一个模糊的圆斑,这个圆斑就是弥散圆 (Circle of Confusion, CoC)。

  • 弥散圆越小,看起来越清晰;
  • 弥散圆越大,看起来越模糊;
  • 当弥散圆大到人眼能察觉时,就认为"不清晰"了。

景深的计算逻辑是:

  1. 先规定一个可接受的弥散圆直径(通常记为 $C$);
  2. 找出所有在传感器上形成的弥散圆不超过 $C$ 的物距范围;
  3. 这个范围就是景深。

所以:$C$ 定得越小(要求越严格),景深越浅;$C$ 定得越大(允许更模糊),景深越深。

弥散圆的几何推导

由相似三角形可得:

$$ \frac{C}{A} = \frac{|z_s - z_i|}{z_i} $$

即:

$$ C = A \frac{|z_s - z_i|}{z_i} $$
符号含义
$C$弥散圆直径
$A$光圈直径
$z_s$被观察物体到透镜的距离
$z_i$传感器到透镜的距离(像距)

关键结论:弥散圆的大小与光圈的大小成正比。

说明:这里的光圈直径记作 $A$,与上一节 F 数公式里的 $D$ 是同一个量(光圈直径),只是不同教材的记号习惯不同。

CoC 与光圈大小的关系

弥散圆随光圈大小变化

重新审视 F 数

  • 正式定义:透镜的 f-number 定义为焦距除以光圈直径
  • 真实镜头上常见的 f-stop:1.4, 2, 2.8, 4.0, 5.6, 8, 11, 16, 22, 32
  • f-stop 为 2 有时写作 $f/2$,反映了一个事实:绝对光圈直径 $A$ 可以用焦距 $f$ 除以相对孔径 $N$ 算出

示例计算:

光圈直径 $D$焦距 $f$f-number $N = f/D$
50 mm100 mm2
100 mm200 mm2
100 mm400 mm4

弥散圆大小与 F 数成反比

把 $A = f / N$ 代入弥散圆公式:

$$ C = A \frac{|z_s - z_i|}{z_i} = \frac{f}{N} \cdot \frac{|z_s - z_i|}{z_i} $$

所以 F 数越大(光圈越小),弥散圆越小,画面越清晰。 这就是"光圈开到 f/16 会更锐"的原因。

用光线追踪渲染散焦模糊

在渲染器里模拟真实相机的效果:

带镜头对焦的渲染结果

设置 (Setup):

  1. 选择传感器尺寸、透镜焦距和光圈大小
  2. 选择感兴趣的主体深度 $z_o$
  3. 由薄透镜方程算出对应的传感器深度 $z_i$

渲染 (Rendering):

  • 对传感器上的每个像素 $x'$(实际上是胶片 film)
  • 在透镜平面上随机采样点 $x''$
  • 光线穿过透镜后必定打到 $x'''$(因为 $x'''$ 在焦平面上——考虑虚拟光线 $(x', \text{透镜中心})$)
  • 估计光线 $x'' \to x'''$ 上的辐射率 (radiance)

薄透镜光线追踪的采样过程

注意:这正是路径追踪 + 镜头采样。把"从相机出发的主光线"换成"从透镜上随机一点出发的光线”,就自然得到了散焦模糊——不需要任何特殊的模糊后处理。

景深 (Depth of Field)

景深是指图像中被渲染得具有可接受清晰度的物体深度范围。

景深示意

做法是:把弥散圆设为一个"在最终观看条件下看起来仍然清晰"的最大允许模糊斑。凡是 CoC 不超过这个阈值的深度范围,都算作"清晰",这个范围就是景深。

景深的定量公式(FYI)

景深与焦深公式推导

量含义
$D_S$对焦距离 (subject distance)
$D_F$远景界限 (far limit)
$D_N$近景界限 (near limit)
$C$允许的弥散圆直径
$N$f-number
$f$焦距
$$ D_F = \frac{D_S f^2}{f^2 - N C (D_S - f)} $$$$ D_N = \frac{D_S f^2}{f^2 + N C (D_S - f)} $$$$ \text{DOF} = D_F - D_N $$

注意区分两个概念:

概念所在空间含义
景深 (Depth of Field)物方场景中看起来清晰的深度范围
焦深 (Depth of Focus)像方成像平面上可接受的清晰范围

总结

第 19 讲把视角从"生成图像"转到了"捕获图像",相机由此成为渲染器里一个可参数化的模型:

主题核心内容
成像 = 合成 + 捕获光栅化 / 光线追踪是合成,相机是捕获,两者最终都落在传感器上的辐照度
为什么需要透镜传感器记录的是辐照度、天然丢失方向信息;必须靠小孔或透镜筛选方向才能成像
视场 FOV$\text{FOV} = 2\arctan(h / 2f)$;焦距越小视场越大,传感器越小视场越小
曝光$H = T \times E$,由光圈、快门、ISO 三者共同控制
ISO模数转换前放大信号,线性增益;代价是同时放大噪声、压缩动态范围
F 数$N = f / D$;相邻 f-stop 相差 $\sqrt{2}$ 倍,与快门组合可给出等价曝光
薄透镜三条性质 + 高斯方程 $1/f = 1/z_i + 1/z_o$(牛顿形式 $(z_o - f)(z_i - f) = f^2$)
弥散圆$C = A,
散焦模糊渲染路径追踪 + 透镜平面随机采样,无需任何特殊模糊后处理
景深 / 焦深景深在物方(场景中看起来清晰的深度范围),焦深在像方(成像平面上的清晰范围)

本文是 GAMES101 - 现代计算机图形学学习系列的第 10 篇笔记。