目录
相机
相机的内部:
快门与传感器
快门控制光进入相机。
传感器捕捉光并记录下来。
如果没有透镜,感光元件上任何一个点都可能收集来自不同方向的光,且传感器不会区分,因此得不到真实的照片。
针孔相机
小孔成像:
利用小孔成像原理制作的相机即针孔相机。针孔相机无法拍出东西的深度,任何地方都是清楚的,不会有虚化。
之前做光线追踪基于针孔相机模型,所以得不到因为深度不同产生的模糊效果。
因此在渲染过程中如果模拟光线与透镜的作用,可以得到模糊虚化的效果。
视场 Field of View(FOV)
视场指可以看到的范围。视场与以下两个量有关:
h: 传感器的宽度
f:透镜的焦距,即传感器与透镜的距离
现实中,以35mm的胶片(传感器)为基准,通过焦距来定义视场。
- 同样大小的传感器,焦距越大,视场越窄
- 同样的焦距,传感器越大,视场越宽
传感器Sensor与胶片Film通常是等价的,但在渲染器里,sensor收集Irradiance,film决定存储为什么格式。
相机与传感器:
曝光 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)是后期处理,给接收到多少光加倍,在硬件上调整是调节传感器灵敏度,或者软件上调整数字信号。
三者的关系如下:
F数越小,光圈越大;快门时间的单位为秒;ISO理解为倍数,给收到的能量加倍,一般加倍时会让噪声也加倍。
ISO
ISO是线性变化,相当于最终结果的增益。
放大的同时会放大噪声。
光圈
使用F数表示光圈,可理解为光圈直径的倒数。
快门
快门打开的时间较长,或者物体运动速度较快,会导致最终照片的模糊/扭曲。可以说模糊在某种程度上能表现出速度。
进光量与F数的平方成反比,与快门速度成反比
- F数是光圈直径的倒数,进光量与光圈面积成正比,因此与F数的平方成反比
- 快门速度越快,快门打开时间越短,进光量越少
以下F数和快门在某程度上可以达到相同的效果:
但大光圈会有浅景深的效果,快门时间会导致运动模糊,因此两者需要权衡。
应用:
- 高速摄影:帧率高,快门时间受限需要用更大光圈或者高ISO
- 延时摄影:快门打开时间很长,光圈变小
薄透镜近似 Thin Lens Approximation
目前的相机都是用透镜组来构成相机镜头。真实的透镜并不是理想的,有些透镜无法将光线汇聚到一点。
我们研究理想化的透镜:
- 所有进入透镜的平行光最终与透镜焦点相交
- 穿过焦点的所有光线不改变方向
- 焦距可以任意改变
薄透镜方程
由以下相似三角形推导出
Defocus Blur 散焦模糊
为了解释景深,引入Circle of Confusion (CoC)
左边有一个Focal Plane,其上的东西会成像到Sensor Plane上;Object不在Focal Plane上,可能会聚焦在Image上,然后光线继续传播到Sensor Plane上,这时候在Sensor Plane上形成的圆就是CoC。
CoC的大小与光圈大小成正比。
由CoC得知,看到的东西是否模糊,取决于光圈的大小,大光圈容易有模糊的效果。
F数
F数的定义是焦距除以光圈直径。
常见的真实镜头F数: 1.4, 2, 2.8, 4.0, 5.6, 8, 11, 16, 22, 32
CoC的大小与F数成反比
光线追踪中使用理想透镜 Ray Tracing Ideal Thin Lenses
以前的光线追踪中,相机是一个小点,默认小孔成像。
模拟薄透镜可以做出景深的效果。
定义属性:
- 定义sensor的大小,透镜的属性(焦距,光圈大小),
- 定义透镜的位置,即物距
z
0
z_0
z0
渲染:
- 对于sensor上的点 x ′ x' x′
- 在透镜上随机取样点 x ′ ′ x'' x′′
- 将上面两点连线后,根据透镜性质得知光线可以传播到 x ′ ′ ′ x''' x′′′
- 估计
x
′
′
′
x'''
x′′′到
x
′
x'
x′的radiance
主要是利用透镜公式来计算折射光线。
景深 Depth of Field
用不同大小的光圈可以控制模糊的范围。
景深对应的就是CoC小的那一段,这段是清晰的。
真实场景中有一段深度(景深)经过透镜会在成像平面附近形成一段区域,这段区域内认为CoC是足够小的。这段就是清晰的。
可以简单理解成只要CoC比像素小或者差不多,画面就是清晰的。
利用景深的最远处和最近处,推导公式,把这些深度和焦距联系起来,即根据某个位置穿过透镜会到某个地方来推导。
光场 Light Field / Lumigraph
看到的世界在其实就是一张图,可以用一张图来模拟真实世界。
全光函数 The Plenoptic Function
可以描述人看到的东西
站在一个场景中,往四面八方看,用极坐标看的位置,全光函数定义了往某个方向看会看到什么值。
添加一个光的波长参数,这样可以定义一个彩色的世界。
再添加一个参数时间t,这就是电影。
添加人的位置坐标,使得人可以移动,这就是全息电影。
这也可以理解为整个世界,整个世界就是一个7维的函数。
光场
光场其实就是全光函数的一小部分。
先定义光线。
两点可以定义一条光线。
定义一条光线需要二维的位置和二维的方向。
将一个物体放在一个包围盒中,从任何位置和任何方向看这个物体。想描述物体所能被看到的多种情况,描述这个物体在包围盒上,在任何位置往任何方向获取的光线,写成一个函数。这个函数就记录了物体表面不同位置往各个方向的发光情况。
光场就是在任何位置往任何方向的光的强度。光场只是全光函数的一小部分,只包含二维位置(相当于uv坐标)和二维方向(θ,φ)。
把物体变成光场,记录下光场后也就相当于记录下了物体的观测。不需要知道物体的几何或者物体到底是什么,把物体当作黑盒也行,只需要知道光场就知道了观测。
可以用一个平面,平面上的二维坐标和二维方向定义光线,作为光场的参数。
可以用两个平面,各自任取两个二维点定义光线,从而定义光场。
两个平面的两个理解:
- 固定平面uv的点,看向所有的st可能点,相当于同一视觉看向世界的不同点,最终看到完整的物体。
- 固定平面st的点,即从不同uv点看向st的某一固定点,相当于在不同视觉看同一个物体,得到同一物体的不同角度。
苍蝇的眼睛叫复眼,就是在记录光场,在照片中任意的像素记录的是irradiance,不区分不同方向的光,但是复眼记录的是不同方向的光的分量,即radiance。
看一个像素,其实是在看穿过这个像素的不同方向的光。
光场相机
微透镜原理,使用微透镜将不同方向的光分开。
功能:先拍照,后期再重新聚焦。
光场照相机原理:光场。
普通相机中黄色的就是像素。光场照相机将像素变为微透镜,微透镜将不同方向的光分散开。
普通照相机记录一个像素,光场照相机计算一片像素。
怎样还原成普通的照片?
将每个透镜选择一条光线,将其结果记录为像素值。就相当于用相机拍摄特定方向的照片。通过取不同方向的光线可以虚拟的移动摄像机的位置。
重新聚焦的思想就是,聚焦后知道光线该怎么变化,然后去查询对应的光线的信息。
光场照相机的缺点:
- 分辨率不足
- 高成本,难设计
- 像素总个数和一个像素分成多少个方向需要权衡