01 - 相机,景深与光场

这篇文章会说说有关图形学中默认我们都懂的一些东西:相机,透镜和光场.

成像

成像 (imaging) = 合成(synthesis) + 捕获(capture).

  • 光栅化和光线追踪都属于合成.
  • 捕获就是捕捉真实的世界,并将其变为照片.

成像原理大致分两种,小孔成像透镜成像

从上图可以看出,针孔相机成像是没有景深的,我们做光追时也用的是针孔相机,无法产生景深。如果可以模拟光线与透镜成像,那么就能够得到有景深的画面。

相机

相机的横截面如图,可见其结构十分复杂:

接下来简单说说相机的一些组件。

快门

快门(Shutter),允许光线信息通过并进入透镜,一般保持关闭,拍照的时候才打开:

传感器

传感器(Sensor),是相机成像的地方,它接收光线并存储,通过传感器的信息得到最终图像:

传感器存储的是物体所有方向的光,即每一点存储的都是 irradiance

目前的传感器无法区分来自各个方向的光线,这也是为什么传感器前面有针孔/透镜。

视场(FOV)

视场(FOV,Field Of View),指能看到多大的范围。

以针孔相机为例,看看哪些因素可以影响视场:

如图,影响FOV大小的主要因素为 传感器长度h焦距 (Focal Length)f。可以很容易得到计算FOV的公式: 人们为了让FOV只与相机焦距f有关,便规定传感器大小为35mm格式胶片的(36 x 24 mm)。这样,便得出了广角,普通和长焦镜头的参数:

曝光

曝光(Exposure),物理意义上在一段时间内所接收到的能量。公式如下: H代表曝光,T代表曝光时间,E代表接收的irradiance

影响曝光时间的因素:

  • 快门速度(Shutter Speed):快门打开时间越长,进光时间越长,进光量越多。

影响接收irradiance多少的因素:

  • 光圈大小(Aperture size):由 f数(f-stop)控制其大小,光圈其实是仿照人瞳孔制作的,光圈越大,接收到的光就越多。

    f数:焦距 / 光圈直径,写法为fN或f/N。

  • 感光度(ISO gain) :从软/硬件上对最终图像进行后处理,可简单认为给最终图像值乘上一个数。

如图,光圈越大(f-stop越小,因为该值大小与光圈直径的倒数成正比),画面亮度越高,但同时会有景深模糊;快门时间越长,照片越糊(出现了运动模糊);ISO越大,噪点更多(因为是线性变换,同时也增大了noisy)。

曝光主要用于高速摄影和延时摄影:

  • 高速摄影:物体运动速度极快,因此需要非常小的快门速度来捕捉到它,但同时为了补偿进光时间不够,还需要使用大光圈或提高ISO来保证曝光正常。
  • 延时摄影:一般采用较长的快门时间来捕捉物体运动的轨迹,例如星轨,飞机飞行轨迹什么的。

理想透镜及其性质

我们讨论的理想透镜的条件如下:

  • 所有平行射入透镜的光都会集中于焦点
  • 所有从焦点射入透镜的光都会平行射出(光路可逆)
  • 焦距可以动态改变

对于一个理想透镜,定义物距 ,相距 ,焦距 ,其满足:

景深

散焦模糊

散焦模糊(Defocus Blur),散焦模糊会带来成像模糊的现象,下面研究模糊现象出现的原因。

首先介绍 弥散圆(CoC,Circle of Confusion)的概念。如下图,物体经薄透镜成像后,成像于一点上,但传感器平面却不在这个点上(在前面或后面),这时,在传感器平面的像就不是一个清晰的点,而是一个模糊的圆。

利用相似三角形,可以求得弥散圆的直径为: 弥散圆直径C与光圈直径A成正比,因此光圈越大,景深模糊也越明显。

由f数的定义和上式可得,弥散圆直径C与焦距f和f数N的关系如下: 如何在光线追踪当中实现景深模糊的效果,只需要简单的模拟透镜的光线传播即可:

渲染效果如图:

景深

景深(DoF,Depth of Field),和上边的散焦模糊不同,它是一种效果,而景深则是一个具体的数值。

当我们固定一个可以接受的弥散圆直径C之后,可以逆向推导出小于该C值的对应的一段距离是多少,这个距离就是景深,如下图所示:

光场

光场(Light Field /Lumigraph),是任何位置的光在传播过程中,所包含的位置,方向,光强等信息。

人眼成像

人眼看到的3D世界,在眼睛里就是一张2D的图。如果直接给人眼看这种2D的图,也能得到同样的效果(VR)。

全光函数

全光函数(The Plenoptic Function),描述了人眼看到的所有东西。接下来将从极坐标开始,逐渐引入各种全光函数的各种组件,认识全光函数。

理解

首先,假设人在一个位置固定的场景中,可以四面八方去观察,那么用极坐标来定义观察方向,最终结果是一个值。

接下来,引入波长,就能看到一个彩色的世界。

然后引入时间的概念,让看到的彩色世界动起来,也就是看“电影”。

前面提到我们所在的位置固定,如果我们可以走动呢?引入三维坐标,得到“全息电影”的概念。

综上所述,我们再换一种理解方式:在任何位置,往任何方向看,在任何时间看到的不同颜色,这就是我们能看到的所有东西。这就是全光函数

采样

要想对全光函数进行采样,首先得定义光线,有两种方法:

  • 2D位置+2D方向:在物体一侧定义一个平面,给出平面上某点的位置信息,然后给出方向即可。

  • 2D位置u(u, v)+2D位置s(s, t):在物体一侧定义两个平面,分别给出两个点的信息,确定一条光线。

定义完光线后,要设法捕获全光函数所记录的信息,这里利用一个类似包围盒的东西,将物体四周的光线信息收集起来:

与光场的联系

光场只是全光函数中的一小部分,即二维的位置和二维的方向。有了光场后,我们就能从任意位置观测同一个物体。它就像一个黑盒,只关心黑盒外光线的信息就行,而不必关心里边的物体。

总的来说,光场是光线在空间传播中四维的概念,是空间中同时包含位置和方向信息的四维光辐射场的参数化表示,是空间中所有光线光辐射函数的总体。在空间内任意的角度、任意的位置都以获得整个空间环境的真实信息,用光场获得的图像信息更全面,品质更好。

[补充]u,v,s,t的映射关系

光的第二种描述方法中,用两个平面的两个点描述光线,这是参数化表示方法,那如何利用这个方法去得到我们要看的图片?

  • 固定(s,t),让当前(s,t)点看到的所有(u,v)形成一张图片。

  • 固定 (s,t),所有的(u,v)都看向该点,即不同方向看一个点,样子是不同的。

光场相机

光场相机利用了光场的原理,将像素换成微透镜,把来自不同方向的光分散到一片区域上去然后再记录下来。它最重要的功能就是 支持先拍照,后期动态调参

如何将光场相机拍的照片换为普通照片,只需将每块像素取一个存储好的值,然后重新聚焦即可:

光场相机的优缺点:

  • 优点:“虚拟”的移动相机(通过取不同方向的光线,好像在移动摄像机的位置)
  • 缺点:分辨率不足,对胶片要求高,成本高

参考资料

  • GAMES101-现代计算机图形学入门

  • 19 相机与透镜 (yuque.com)

  • 光场 (Light Field) 原理及成像简介 - revere - 博客园 (cnblogs.com)