小孔成像
和初中介绍的一致。以此原理做成的相机叫做针孔相机。
透镜成像
通过透镜进行成像,和初中介绍的一致。现在大多数相机都是透镜成像的。
快门
控制曝光时间。
运动模糊
在快门打开的时间内,物体已经发生了明显移动(或者相机动了),就会导致模糊。
果冻效应
如果某个物体的运动速度非常快,在快门时间内曝光就会产生扭曲效果。仅存在于卷帘快门相机中。
传感器
捕捉光,并记录的部件。记录的实际上是Irradiance。
为什么不能用传感器直接收集光,而非要加一个透镜?
因为传感器上的每一个点都会采集物体上每一个点发出的光,然后所有的像素就会因此变得相似。换言之因为传感器记录的是Irradiance
针孔相机
没有深度可言,换言之,每个区域都是清晰地。而不像透镜相机,会出现景深效果等等。而光线追踪是以针孔相机的模型来做的,也不会得到景深效果。
视场(FOV,Field of View)
设传感器的垂直长度为\(h\),透镜到传感器的距离为\(f\),则
\[FOV=2arctan\left(\frac{h}{2f}\right) \]
由此定义了垂直FOV。同理可以定义水平FOV。
通常,以35mm格式的胶片为传感器标准大小,通过焦距的不同得到不同的FOV。
例如17mm的胶片FOV是104°,50mm的是47°,200mm的是12°。
但是对于手机摄像机,传感器并不是35mm格式的,要经过等效来换算焦距。
当视场越窄,看到的东西越远。
当然传感器尺寸也会影响FOV。想要保持FOV而减小传感器尺寸,则焦距也要变小。
曝光
\[H=T\times E\\ Exposure = time\times irradiance \]
其中time由快门控制,irradiance由物体自己和光圈控制。
总结,物体亮度,或者说曝光由以下东西控制:
- 光圈大小
- 快门速度
- ISO增益,这是后期的处理,而不是原始的数据。有软件和硬件的实现。
光圈
F-Number
描述光圈的大小。通常写作FN或F/N。
一个不太正式的理解,N是直径的倒数。N越大,光圈越小。
景深
成像最锐利的点在像距平面上,但是传感器的平面并不总会在像距上,因此会导致模糊。
理论上,物距上一个点发出的光会在像距上形成一个点,但是如果传感器不在像距上,像就会在传感器上形成一个圈(CoC)。
设光圈直径为\(A\),CoC直径为\(C\),像距为\(z_i\),透镜到传感器的距离为\(z_s\),则有
\[\frac{C}{A}=\frac{|z_s-z_i|}{z_i} \]
而通常我们改变的是光圈大小,也即,大光圈导致模糊,小光圈成像清晰。
F-Number的明确定义:焦距除以光圈直径。
所以有
\[C=A\frac{|z_s-z_i|}{z_i}=\frac{f}{N}\frac{|z_s-z_i|}{z_i} \]
如果CoC足够小,从相机中还是不容易看得出模糊。也就是说在CoC的一小个范围内,成像都是清晰的。这也对应了一个距离,称为Depth of focus。也可以知道物体能够清晰成像的距离范围,称为Depth of field。
高速摄影
非常快的快门时间。也会因此降低亮度。为了抵消这种影响,就需要用更大的光圈,或者用ISO。
低速摄影
非常慢的快门时间。可以出现“拉丝效果”。
透镜
理想薄凸透镜
物距\(z_o\),像距\(z_i\),焦距\(f\)有如下关系
\[\frac{1}{f}=\frac{1}{z_i}+\frac{1}{z_o} \]
模拟薄凸透镜的光线追踪
初始化:
- 定义传感器大小,定义凸透镜的焦距、光圈大小。
- 设置物距,并计算像距。
渲染:
- 对传感器上的每个像素x'
- 随机在透镜上选择点x''
- 通过凸透镜定理得到物距平面上的点x’''
- 计算x’’->x’‘‘上的Radiance