GAMES101-19:摄像机、透镜、光场

前言

GAMES101-19:简单了解:摄像机的基本构造、光圈大小、快门、ISO、弥散圆、曝光、可视角度 GAMES101-20:光场

图像:合成法与捕捉法

成像不一定是合成成像(例如模型),也可以是捕捉成像,例如相机拍拍拍。我们之前说的都是合成成像,本节讲捕捉成像。

相机的部件

  • 小孔或透镜:小孔应用在针孔相机。用于聚光成像。
  • 快门:控制进光时间。
  • 传感器:记录辐照强度(Irradiance)。(如果没有小孔/透镜,一个点有各个地方的光,传感器成像就糊了。)

针孔摄像机利用小孔成像,没有深度(景深)可言,每个地方都是清晰的。我们此前介绍的光线追踪也是这种模型。

焦距和可视角度的关系,设传感器高度为 h,焦距为 f,那么在竖直方向上可视角度:

FOV=2arctanh2fFOV = 2\arctan\frac{h}{2f}

由于 FOV 和传感器大小、焦距均有关系,所以一般会规定把焦距换算成 35mm(*24mm) 胶片下的焦距。

通常,对于 35mm 胶片, 17mm 焦距对应 104° 可视角度,是广角镜头,50mm 47°是普通镜头。

当然传感器大有大的好,分辨率可以上升。

曝光

曝光的公式 H=T×EH = T \times E,即曝光 = 曝光时间×辐照强度。曝光时间越长,照片越亮,因为传感器上累计的能量越多。

  • 光圈大小,类似人眼瞳孔的设计,依据 F-Stop 参数控制光圈开合来控制进光多少。
    • F-Stop 也可以写成 FN、F/N,N 代表一个数。
    • FN 是焦距除以光圈直径。
    • 光圈大进光多,自然会带来曝光度的提升。
    • 光圈越大,还会导致景深越浅,远景变糊。
  • 快门速度:快门能快速开关,控制开放进光的时间
    • 快门时间过长,拍摄运动物体就会带来模糊效果,即运动模糊。
    • 速度越快/快门越长越模糊。快门时间短,可以减轻运动模糊,但是也需要修正由此带来的亮度降低。
    • 合适的运动模糊既可以增强人对速度的感知,也可以一定程度的反走样。
    • 机械运快门打开不可能真正同时,在记录高速运动的物体(如飞机螺旋桨)的时候会带来扭曲现象。
  • ISO 感光度:后期处理的一步,在每个传感器数值上乘以一个倍率。
    • ISO 过大,在放大图像亮度的同时也会放大噪声,使得图像噪声过多。

联系光圈和快门,如果我们相同的曝光度下,想获得浅景深(大光圈),就得减少快门时间来维持曝光度的不变,这需要权衡。同时也意味着同时调整光圈和快门得到的同样曝光度的照片并不一致。

快门时间极短,就是高速摄影,快门时间极长,就是延时摄影。

理想薄透镜、弥散圆与光线追踪

设想一种理想薄透镜:没有厚度,可以改变焦距(基于现在调整透镜组的设计)。

薄透镜有下列关系:

1f=1zi1zo\frac{1}{f}=\frac{1}{z_i}\frac{1}{z_o}

其中 f 是焦距,ziz_i 是物距,zoz_o 是像距。

失焦模糊:一个点经过透镜可以被聚焦在一个点上,但是我们的感光面并不在该点上,导致在感光面上就成了一个圆(CoC,Cirlcle of Confusion)。根据物距、焦距、感光面到透镜的距离(zsz_s)、透镜的大小(A),我们可以计算 CoC 的大小 C。(像距(ziz_i)是中间步骤):

CA=zszizi\frac{C}{A}=\frac{|z_s-z_i|}{z_i}

又光圈大小是焦距除以光圈直径,所以我们就知道了为什么大光圈意味浅景深。

光线追踪中加入景深:场景假如我们知道和传感器距离的透镜,一个传感器点随机命中透镜上点 a,我们知道传感器点经过透镜是会聚焦在点 b 的,那么 a 接下来就会往 b 去。

景深

景深就是在焦距附近,CoC 的大小还可以接受的那一段长度。

光场

全光函数:假设我们有一个完全真实的画,贴在墙上,那么我们就无法区分这是窗子还是画。从这个角度出发我们就可以定义函数 P(θ,ϕ,λ,t,Vx,y,z)P(\theta,\phi,\lambda,t,V_{x,y,z}),量依次表示:一个观察者周围 360°的极坐标、该坐标的光强,光波长(颜色),时间,观察者的空间位置。这样,我们就能表示一个可以随处移动的人在任意地点时间任意向方向看到的东西(即我们现实观察的一切)。

定义光线,我们无论怎么定义光线总是需要一个点一个方向,这里它们都是二维的。因为点在物体表面(类似 uv 坐标),而方向可以是 θϕ\theta,\phi 两个方位角。

于是定义光场:一个物体上任意一点向任何方向看的光的信息。

于是我们通过光场(一个四维函数)可以知道任何方向看到这个物体的效果。

光场不一定要在物体表面,正如开头所说,我们只关心看到了什么,不关心看到的东西究竟是在墙上还是墙外。我们完全可以定义一个包围盒包围物体记录光场。

一种定义光场的办法是,定义两个平面,在两个平面(uv 平面和 st平面)上各取两个点,那么就可以确定一个光线。

假定 uv 是离摄像机近的面,st 是离物体近的面。那么可以讨论两种理解:

  1. 从 uv 上固定一个点看 st 上所有点:看到一个完整的物体。正如我们在普通摄像机看到的。
  2. 从 uv 上所有点看 st 的不同方向:看到一个点在不同方向的信息。

昆虫的复眼其实就是一种光场。我们的眼睛/摄像机之所以不能缺少透镜是因为缺少透镜使得不同方向来的光被混合在了一起,如果我们可以将来自不同方向打到同一点的光经过透镜以后分别存放在不同的感光元件上,那么就可以把光分开了。这样就同时可以看向不同方向。利用这种办法,有人发明了光场相机。

要从光场中还原一个普通的照片,我们可以选定一个方向去光场中获取信息。而光场照片比起普通照片的优点是,我们可以虚拟的移动相机的位置。而不用 CV 的一些手段。

当然,因为要记录大量的信息,光场照片数据量大,分辨率往往不足。

跳转

Home:GAMES101-1:课程总览与笔记导航

Prev:GAMES101-18:渲染中的高级板块

Next:GAMES101-20:颜色与感知