「现代计算机图形学入门」相机, 透镜与光场
图像 = 合成(光栅化、光线追踪) + 捕捉(相机)
Q:为什么传感器不能没有透镜?
A:每个传感器点会收集到从物体上每个点发出的所有光,这样会使得所有像素都非常相似。即传感器记录 Irradiance。
1. 针孔图像形成
针孔相机拍出来的东西是没有深度的,任何地方都是清楚的,没有虚化。光线追踪用的就是针孔摄像机。
2. 视场(Field of View)
对于一个固定大小的传感器,减少焦距,视场增大。如果传感器变大,则视场增大。
其中, \(h\) 一般指的是传感器的高度,\(f\) 指焦距。 \[ FOV = 2 \ arctan \left( \dfrac{h}{2f} \right) \]
由于历史原因,通常在35mm格式胶卷(36 × 24mm)上使用透镜的焦距来衡量视场。
在 35mm 格式上的焦距例子:
- 17mm 广角 104°
- 50mm 普通 47°
- 200mm 手机 12°
传感器(Sensor)和胶片(film)不一定一样。传感器负责记录每个像素的 Irradiance 到底多大,胶片决定存成什么样的图片格式。
Q:如何在更小的传感器上维持 FOV ?
A:为了维持 FOV,应该根据传感器的宽度/高度相应减少镜头的焦距。
3. 曝光(Exposure)
Exposure (H) = time (T) × irradiance (E)
曝光的时间通过快门控制,一直按着快门,曝光的时间就更长。
Irradiance 是传感器单位面积上接收的光能,由光圈和焦距控制。
相机里控制拍出来的照片亮不亮的因素:
光圈大小
- 光圈大小由 f-stop 控制
快门速度
- 控制传感器收集光能的时间
感光度 (ISO gain)
- 给接收到的能量乘一个数
- 放大信号的同时,也会放大噪声!
4. ISO(Gain)
5. F 数(F-Stop)
写法:FN 或者 F/N (F-Number),F 数的简单理解:1 / 光圈直径。
F 数定义为:焦距除以光圈的直径。
6. 快门(Shutter)
快门的副作用:
- 运动模糊:相机会在快门打开的时候内把运动的物体信息都记录下来;不过运动模糊不一定总是坏的,可以起到抗锯齿的作用!
- 快门打开需要一定时间(Rolling shutter):图像上的不同的位置有可能记录的是不同时间进来的光。
为了达到相同的曝光度,快门速度越快,光圈就得越大;快门速度越慢,光圈就得越小。
同时景深和运动模糊不能兼得。
7. 快慢摄影
快:高速快门,缩小光圈,例如高速摄影;
慢:低速快门,放大光圈,例如延时摄影;
8. 薄透镜近似(Thin Lens Approximation)
现实透镜并不一定能把光线聚焦在一点,理想薄透镜 —— 能够聚焦光线至一点。
(1)所有穿过透镜的平行光会穿过焦点;
(2)所有穿过焦点的光线穿过透镜后都是平行的;
(3)焦距能够任意改变!(现实中通过透镜组改变)
薄透镜方程:
\(f\):焦距,\(z_i\):相距,\(z_o\):物距。
9. Defocus Blur
弥散圆:Circle of Confusion(CoC)
看某个距离的东西的模糊程度和光圈的大小有关,成正比。
由于 A(光圈大小)= F / N(F 数),所以 CoC 的大小与 F 数成反比。
10. 光线追踪理想薄透镜
设置:
- 选择传感器的大小,焦距和光圈大小
- 选择感兴趣的物距 \(z_o\)
- 根据薄透镜方程计算相应的相距 \(z_i\)
渲染:
- 对于传感器上的每个像素 \(x'\)
- 在透镜平面上随机采样点 \(x''\)
- 穿过透镜的光线一定会打在 \(x'''\)(因为 \(x'''\) 在焦平面上)
- 估计光线 \(x'' \rightarrow x'''\) 的 Radiance
11. 景深(Depth of Field)
景深就是指在实际的场景中有一段深度,这段深度经过透镜后会在成像平面的附近形成一段区域,这段区域内认为 CoC 是足够小的。(简单概括:成像清晰的一段范围)
如何计算景深?
12. 光场(Light Field / Lumigraph)
全光函数(The Plenoptic Function): 我们看到的所有东西的集合。
\(P(\theta, \phi, \lambda, t)\) 指从某个视角、某个时间看到的某种波长(颜色)的强度。(电影)
\(P(\theta, \phi, \lambda, t, V_X, V_Y, V_Z)\) 可以从任何一个地方看。(全息电影)
定义光线:
光场:物体任何一个位置(二维)向任何一个方向(二维)发射的光的强度。只是全光函数的一小部分。
如何理解二维:三维物体的表面是在一个二维空间中的。(比如纹理映射uv)
由光场我们可以得到:对于此物体的任意位置的观测。
对光场的参数化描述:u、v、s、t:
12.1 光场相机
最重要的作用:支持后期的重新聚焦(先拍照再调聚焦)
原理:每个像素(Irradiance)现在存储为像素块(Radiance)
如何从光场照片还原到”常规“照片?
- 一个简单例子 —— 从每个 block 中总是选择底部 / 中间 / 顶部的像素。仿佛照相机往顶部、中间、底部看。(仿佛在移动相机)
问题:光场相机分辨率不足、高成本。