计算机图形:相机,透镜,光场
相机Cameras
成像
图形学有2种成像(Imaging)方式:光栅化成像,光线追踪成像
而真实世界中,有2种成像方式:合成(Synthesis) + 捕捉(Capture)
- 合成(Synthesis):通过算法或人工生成图像(如3D渲染、AI生成图像);
- 捕捉(Capture):通过物理设备记录真实世界的光信号(如相机拍照、扫描).
针孔相机
针孔相机(Pinhole)模型:

光线通过针孔打到相机内部的sensor(上图胶片Film对应矩形区域)上,从而成像. sensor能知道的是irradiance(所有入射方向),而非入射radiance(特定方向).
视场
视场是什么

我们模拟针孔相机时,将film放到近平面,并且将孔洞重命名为眼睛(eye). 于是,就能得到一个透视投影的视锥体.
透视投影可参见:计算机图形:三维观察之投影变换.
视场(Filed of Field,FOV)描述了相机能观察到多大的角度范围.
视场通常有水平、垂直两个方向. 以垂直方向为例,FOV计算如下:
其中,焦距f(Focal length)是sensor与针孔的距离,h是sensor的高度
下图显示固定h,改变f对FOV的影响:

下图显示固定f,改变sensor尺寸对FOV的影响:

如何决定视场
我们已经知道,视场和sensor大小、焦距f有关,如何决定其值?
为了方便,通常以35mm(36x24mm)格式(format)的film为基准,通过只改变焦距,来定义FOV值.
例如,基于35mm format的焦距:
- 17mm 为广角镜头,视角 104°
- 50mm 为“标准”镜头,视角 47°
- 200mm 为长焦镜头,视角 12°
tips: 通常我们说手机摄像头有等效28mm焦距,实际手机sensor尺寸会更小.
曝光
曝光(Exposure)是光线通过相机镜头作用于感光介质(胶片/传感器)的过程,本质是光能量(时间 × irradiance)的累积结果,直接影响图像的明暗与细节表现.
曝光定义:
其中,
- 曝光时间(Exposure time,T),由快门控制
- Irradiance(E),入射sensor单位面积的power
- 镜头光圈口径(针孔孔径大小)
- 焦距
对相机来说,有哪些可以控制曝光的方法?
1)光圈大小(Aperture size)
通过开合光圈调整f-stop值(如果相机支持光圈控制),决定固定时间内进入相机内部的光能量.
2)快门速度(Shutter speed)
改变sensor像素积累光线的时间.
副作用:运动模糊(motion blur),拍摄高速运动物体会模糊
3)ISO gain(增益/感光度)
改变sensor信号值和数字图像信号值之间的放大率(模拟和/或数字增益).
最简单的方式,将结果线性乘以放大率即可.
副作用:同时会放大噪声.
透镜Lens
真实的相机通常用一组透镜作为镜头,而不是只用一个.
i.g. Apple相机:

理想薄透镜
理想薄透镜(Ideal Thin Lens):聚焦光线到一点. 该点称为焦点(Focal Point). 焦距(Focal Length)就是焦点到透镜中心线距离.

特点:
1)一组平行光线进入透镜后,汇聚到焦点;
2)(可逆性):经过焦点的光线,进入透镜后,会变成平行光.
薄透镜方程
如下图,左边物体(向上箭头)距离透镜中心线\(z_o\),右边成像物体距离透镜\(z_i\),透镜前后焦距f.

那么,它们满足:
该方程称为薄透镜方程(The Thin Lens Equation),也称Gaussian Thin Lens Equation.
推导:

根据三角形相似性,透镜前方
透镜后方
联立2个方程,可以得到:
散焦模糊Defocus Blur
计算弥散圆Coc
tips: 用薄透镜方程解释弥散圆.
当相机聚焦到Focal Plane后,右边对应成像平面Image. 如果物体不在Focal Plane,会发生什么?
答:会模糊.

分析:当Object有一个点,发射两条光线穿过薄透镜,会聚焦到透镜后方的焦点.
但是,根据薄透镜方程,Object的成像平面肯定不在\(z_i\)对应的平面,而是在更后方的\(z_s\)对应Sensor Plane. 光线沿着焦点到Sensor Plane形成一条线段(2D),对于3D情形,是一个圆. 这个成像的圆,称为弥散圆(Circle of Confusion, CoC).
设成像的圆(Coc)直径C,透镜(Aperture)直径A. 根据三角形相似性:
i.e. CoC尺寸取决于Aperture尺寸.
F-Number
光圈数F-Number,又称F-Stop,是镜头焦距与有效光圈直径的比值.
常见f-stops值:1.4, 2, 2.8, 4.0, 5.6, 8, 11, 16, 22, 32.
e.g. 对于不同相机,可根据D(有效光圈直径)、焦距f计算F-Number N:

于是,Coc尺寸C可写成:
这里A是透镜直径,即\(A=D\)
理想薄透镜的光线追踪
现在知道光线如何穿过理想薄透镜,那么如何用光线追踪渲染理想薄透镜?
例如,下图模拟薄透镜,用光线追踪渲染:

一种可行方案,步骤:
1)选择sensor尺寸,薄透镜焦距f,薄透镜尺寸A.
2)定义薄透镜距离目标物体有多远,即物距\(z_o\).
3)根据薄透镜方程,可计算出像距\(z_i\).

利用光线追踪渲染:
1)对于sensor(实际是胶片)上每一个像素点\(x'\).
2)在薄透镜随机取样\(x''\).
3)光线将穿过透镜到达Subject Plane上的\(x'''\)点. 因为\(x'''\)处于对焦状态,可考虑由虚拟光线(\(x'\)和透镜中心)到达Subject Plane的交点(图中红色).
4)计算光线 \(x''\to x'''\)的radiance即可.

景深Depth of Field
前面已经知道,光圈大小会影响场景中模糊的范围.

如上图,左图使用大光圈,远处景物模糊,近处清晰;右图使用小光圈,远处、进出都清晰. 这个范围有什么特点?

光线经过透镜打到成像平面上,在成像平面附近一段区域内,认为CoC都是足够小(通常与像素尺寸相当),不会出现模糊. 这段区域称为Depth of focus. 要求Depth of Field(景深),实际上是要求Depth of focus.
分别从景深的最远距处、最近处,各发射2条射线到透镜,然后得到对应成像平面上的点,根据其范围(Depth of focus),就能得到Coc的尺寸.

参考
[1] GAMES101 Lecture18
[2] Hanrahan P. Physically Based Rendering[J]. 2004.

浙公网安备 33010602011771号