Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

目录

相机

相机的内部:
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

快门与传感器

快门控制光进入相机。
传感器捕捉光并记录下来。
如果没有透镜,感光元件上任何一个点都可能收集来自不同方向的光,且传感器不会区分,因此得不到真实的照片。

针孔相机

小孔成像:
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

利用小孔成像原理制作的相机即针孔相机。针孔相机无法拍出东西的深度,任何地方都是清楚的,不会有虚化。
之前做光线追踪基于针孔相机模型,所以得不到因为深度不同产生的模糊效果。
因此在渲染过程中如果模拟光线与透镜的作用,可以得到模糊虚化的效果。

视场 Field of View(FOV)

视场指可以看到的范围。视场与以下两个量有关:
h: 传感器的宽度
f:透镜的焦距,即传感器与透镜的距离
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

现实中,以35mm的胶片(传感器)为基准,通过焦距来定义视场。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

  • 同样大小的传感器,焦距越大,视场越窄
  • 同样的焦距,传感器越大,视场越宽
    传感器Sensor与胶片Film通常是等价的,但在渲染器里,sensor收集Irradiance,film决定存储为什么格式。

相机与传感器:
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

曝光 Exposure

Exposure = time × irradiance, H = T × E H = T × E H=T×E

  • 曝光时间( T T T)由快门决定
  • Irradiance( E E E)
  • 是落在单位面积的传感器上的光能
  • 由镜头的光圈与焦距决定

控制照片亮度的三要素:

  • 光圈大小(Aperture),由F数控制,光圈是一种仿生学的设计,仿照人的瞳孔放大缩小。
  • 快门速度(Shutter speed)是快门开放的时间。
  • 感光度(ISO gain)是后期处理,给接收到多少光加倍,在硬件上调整是调节传感器灵敏度,或者软件上调整数字信号。

三者的关系如下:
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

F数越小,光圈越大;快门时间的单位为秒;ISO理解为倍数,给收到的能量加倍,一般加倍时会让噪声也加倍。

ISO

ISO是线性变化,相当于最终结果的增益。
放大的同时会放大噪声。

光圈

使用F数表示光圈,可理解为光圈直径的倒数。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

快门

Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

快门打开的时间较长,或者物体运动速度较快,会导致最终照片的模糊/扭曲。可以说模糊在某种程度上能表现出速度。

进光量与F数的平方成反比,与快门速度成反比

  • F数是光圈直径的倒数,进光量与光圈面积成正比,因此与F数的平方成反比
  • 快门速度越快,快门打开时间越短,进光量越少
    以下F数和快门在某程度上可以达到相同的效果:
    Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

但大光圈会有浅景深的效果,快门时间会导致运动模糊,因此两者需要权衡。

应用:

  • 高速摄影:帧率高,快门时间受限需要用更大光圈或者高ISO
  • 延时摄影:快门打开时间很长,光圈变小

薄透镜近似 Thin Lens Approximation

目前的相机都是用透镜组来构成相机镜头。真实的透镜并不是理想的,有些透镜无法将光线汇聚到一点。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

我们研究理想化的透镜:

  • 所有进入透镜的平行光最终与透镜焦点相交
  • 穿过焦点的所有光线不改变方向
  • 焦距可以任意改变
    Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

薄透镜方程

Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

由以下相似三角形推导出
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

Defocus Blur 散焦模糊

为了解释景深,引入Circle of Confusion (CoC)
左边有一个Focal Plane,其上的东西会成像到Sensor Plane上;Object不在Focal Plane上,可能会聚焦在Image上,然后光线继续传播到Sensor Plane上,这时候在Sensor Plane上形成的圆就是CoC。
CoC的大小与光圈大小成正比。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
由CoC得知,看到的东西是否模糊,取决于光圈的大小,大光圈容易有模糊的效果。

F数

F数的定义是焦距除以光圈直径。
常见的真实镜头F数: 1.4, 2, 2.8, 4.0, 5.6, 8, 11, 16, 22, 32
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

CoC的大小与F数成反比
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

光线追踪中使用理想透镜 Ray Tracing Ideal Thin Lenses

以前的光线追踪中,相机是一个小点,默认小孔成像。
模拟薄透镜可以做出景深的效果。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

定义属性:

  • 定义sensor的大小,透镜的属性(焦距,光圈大小),
  • 定义透镜的位置,即物距 z 0 z_0 z0​
    Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

渲染:

  • 对于sensor上的点 x ′ x' x′
  • 在透镜上随机取样点 x ′ ′ x'' x′′
  • 将上面两点连线后,根据透镜性质得知光线可以传播到 x ′ ′ ′ x''' x′′′
  • 估计 x ′ ′ ′ x''' x′′′到 x ′ x' x′的radiance
    Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
    主要是利用透镜公式来计算折射光线。

景深 Depth of Field

用不同大小的光圈可以控制模糊的范围。
景深对应的就是CoC小的那一段,这段是清晰的。
真实场景中有一段深度(景深)经过透镜会在成像平面附近形成一段区域,这段区域内认为CoC是足够小的。这段就是清晰的。
可以简单理解成只要CoC比像素小或者差不多,画面就是清晰的。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
利用景深的最远处和最近处,推导公式,把这些深度和焦距联系起来,即根据某个位置穿过透镜会到某个地方来推导。

光场 Light Field / Lumigraph

看到的世界在其实就是一张图,可以用一张图来模拟真实世界。

全光函数 The Plenoptic Function

可以描述人看到的东西

站在一个场景中,往四面八方看,用极坐标看的位置,全光函数定义了往某个方向看会看到什么值。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
添加一个光的波长参数,这样可以定义一个彩色的世界。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
再添加一个参数时间t,这就是电影。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
添加人的位置坐标,使得人可以移动,这就是全息电影。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
这也可以理解为整个世界,整个世界就是一个7维的函数。

光场

光场其实就是全光函数的一小部分。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

先定义光线。
两点可以定义一条光线。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

定义一条光线需要二维的位置和二维的方向。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

将一个物体放在一个包围盒中,从任何位置和任何方向看这个物体。想描述物体所能被看到的多种情况,描述这个物体在包围盒上,在任何位置往任何方向获取的光线,写成一个函数。这个函数就记录了物体表面不同位置往各个方向的发光情况。
光场就是在任何位置往任何方向的光的强度。光场只是全光函数的一小部分,只包含二维位置(相当于uv坐标)和二维方向(θ,φ)。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
把物体变成光场,记录下光场后也就相当于记录下了物体的观测。不需要知道物体的几何或者物体到底是什么,把物体当作黑盒也行,只需要知道光场就知道了观测。
可以用一个平面,平面上的二维坐标和二维方向定义光线,作为光场的参数。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
可以用两个平面,各自任取两个二维点定义光线,从而定义光场。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
两个平面的两个理解:

  • 固定平面uv的点,看向所有的st可能点,相当于同一视觉看向世界的不同点,最终看到完整的物体。
  • 固定平面st的点,即从不同uv点看向st的某一固定点,相当于在不同视觉看同一个物体,得到同一物体的不同角度。

苍蝇的眼睛叫复眼,就是在记录光场,在照片中任意的像素记录的是irradiance,不区分不同方向的光,但是复眼记录的是不同方向的光的分量,即radiance。
看一个像素,其实是在看穿过这个像素的不同方向的光。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

光场相机

微透镜原理,使用微透镜将不同方向的光分开。
功能:先拍照,后期再重新聚焦。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

光场照相机原理:光场。
普通相机中黄色的就是像素。光场照相机将像素变为微透镜,微透镜将不同方向的光分散开。
普通照相机记录一个像素,光场照相机计算一片像素。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields

怎样还原成普通的照片?
将每个透镜选择一条光线,将其结果记录为像素值。就相当于用相机拍摄特定方向的照片。通过取不同方向的光线可以虚拟的移动摄像机的位置。
Games101 计算机图形学课程笔记:Lecture 19 Cameras, Lenses and Light Fields
重新聚焦的思想就是,聚焦后知道光线该怎么变化,然后去查询对应的光线的信息。

光场照相机的缺点:

  • 分辨率不足
  • 高成本,难设计
  • 像素总个数和一个像素分成多少个方向需要权衡
上一篇:设计模式之命令模式


下一篇:关灯游戏