返回

计算机图形学基础学习笔记-相机与透镜

小孔成像

和初中介绍的一致。以此原理做成的相机叫做针孔相机。

透镜成像

通过透镜进行成像,和初中介绍的一致。现在大多数相机都是透镜成像的。

快门

控制曝光时间。

运动模糊

在快门打开的时间内,物体已经发生了明显移动(或者相机动了),就会导致模糊。

果冻效应

如果某个物体的运动速度非常快,在快门时间内曝光就会产生扭曲效果。仅存在于卷帘快门相机中。

传感器

捕捉光,并记录的部件。记录的实际上是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由物体自己和光圈控制。

总结,物体亮度,或者说曝光由以下东西控制:

  1. 光圈大小
  2. 快门速度
  3. 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} \]

模拟薄凸透镜的光线追踪

初始化:

  1. 定义传感器大小,定义凸透镜的焦距、光圈大小。
  2. 设置物距,并计算像距。

渲染:

  1. 对传感器上的每个像素x'
  2. 随机在透镜上选择点x''
  3. 通过凸透镜定理得到物距平面上的点x’''
  4. 计算x’’->x’‘‘上的Radiance