19 Games101 - 笔记 - 相机与透镜

**19 ** 相机与透镜

目录

  • 摘要
  • 一 照相机主要部分
  • 二 小孔成像与视场(FOV)
  • 三 曝光(Exposure)
  • 四 景深(Depth of Field)
  • 总结

摘要

虽说照相机与透镜属于相对独立的话题,但它们的确是计算机图形学当中的一部分知识。在过往的十多篇笔记中,我们学习的都是如何渲染出一张虚拟 的图片,因此在本节当中会去介绍照相机与透镜的相关知识,了解现实图像生成的一些内容。

一 照相机主要部分

对于一个照相机来说,最重要的组成部分之一便是透镜,它是成像的关键,无论是小孔成像还是透镜成像,如下图所示:

其次我们知道照相机的快门一般一直处于关闭状态,直到按下拍照的瞬间才会打开,允许光线信息进入到透镜:

最后,当快门打开光线成功通过透镜之后,所有光线信息都会照射到传感器上(相当于胶片)来进行存储,通过传感器上的信息得到最终图像:

那么回想一下在讲辐射度量学的时候,我们介绍了种种关于光线物理性质的一些描述概念,对应于这里传感器,其存储的应该是什么呢?观察下图:

右边相当于传感器平面,传感器的每一点记录了来自物体所有方向的光 ,因此每一点存储的也就是irradiance(如果读者不清楚辐射度量学可以略过,并不影响本文阅读)。

以上就是对照相机成像的最重要几部分的简略介绍,接下来会一一详述解释。

二 小孔成像与视场(FOV)

相信读者一定都了解或听说过小孔成像,该项技术的起源十分悠久,通过小孔只允许一定方向的光线通过,从而得到一个倒立的成像:

对于小孔成像不多做解释,主要是希望通过它从而引出视场的概念,如下图:

举一个具体的例子:

从图中可以看出,当焦距越大的时候,成像的角度就越小集中在一小部分,类似于我们拿手机不停的放大拍摄倍数一样。

当然除了焦距,传感器的长度也有着很明显的影响,底片长度越大,自然FOV也就越大:

tips:

对于不同的设备,传感器长度不一,想要保持同样的FOV的话,就需要同比缩小焦距。

三 曝光(Exposure)

在第一章中我们提到传感器上接受到的是irradiance,也就是每单位面积所接受到的光线功率,而曝光就是用时间乘上了这个irradiance

Exposure = time x irradiance

从物理意以上来说就是真正的所接受到的能量(Energy)。那么这个时间由什么控制呢?

没错正是快门速度!除此之外,曝光还会被其他2个参数所影响,即一共3项参数:

1. 快门速度(Shutter speed),快门打开时间越长,进光时间越长,进光量自然越多。

2. 光圈大小(Aperture size),描述此项的数值称为f-stop,直观理解如果光圈越大,被遮挡的光越少,进光量越多,那么曝光的程度就会越高。

3. 感光度(ISO gain),对于感光度可以简单理解为对最终的图像值乘上了一个倍数。

以下给出一张图,构建对这三项的直观理解:

首先观察最下方的ISO变化对照片的影响,之前提到ISO就是一个简单的线性变化,对图像的结果乘上了一个倍数,随着ISO的值显著增大之后,虽然画面整体亮度会提升,但同时也会观察到画面有很多的噪点。这其实很容易解释,照片本质所记录的无非就是信号,那么对于光线的信息自然也会有些很小的noise进入,如果对图像进行整体进行亮度放大的话,noise自然也会变的更加明显形成了噪点。

接着是中间一行的快门速度,图片下方的值越大代表速度越慢,快门打开时间越长,透镜的进光量越大,图片也就会越亮,但同时运动的物体也会变的模糊起来。

原因如下: 快门打开后照相机会记录一段时间内的所有物体的光线信息,如果快门打开时间足够长,就能通过最终的照片捕捉到物体的移动,而这也就是动态模糊

但这种模糊也不一定不是坏事,正如上图例子所示,左边快门速度慢看到了锤子有落下的趋势,获得到了更多的图片信息,而右边的快门速度快,看上去更像是静止的画面,没有动态的效果。

这也是为什么一般的电影拍摄只用24FPS却不会觉得卡顿,因为动态模糊的存在使得人眼接受到的信息更多。但对于游戏来说往往需要60FPS以上,因为游戏内每一帧都是静止画面并不存在动态模糊(有的游戏可以打开动态模糊),所以需要更多的图片数量才会使人觉得不卡顿。

但对于快门速度有一点需要额外关注,无论快门打开的速度有多快,它一定有一个打开关闭的过程,所以整幅照片上不同的部分往往记录的时间间隔有着微小差距,当拍摄高速物体时,这种效果更加明显:

最后,对于一开始那幅图的最上面一行,也就是光圈大小 F-stop 或者F-Number值(该行中的逗号代表小数点),该值大小与光圈直径的倒数成正比,因此FN值越小,代表光圈越大,进光量越大,画面亮度越高,但同时也会带来景深模糊的影响(对于该点留在下一节去解释):

以上就是关于曝光一些基础内容,对于曝光有两点主要的应用:高速摄影和低速摄影

对于高速摄影来说,物体运动速度极快,因此需要非常小的快门速度来捕捉到它,但同时为了补偿进光时间不够,还需要使用大光圈或提高ISO来保证曝光正常:

对于低速摄影来说则相反,一般采用较长的快门时间来捕捉物体运动的轨迹,如下图飞机降落轨迹:

四 景深(Depth of Field)

在讨论到景深之前,我们先给出本章中所采用的理想透镜的性质:

(1) 所有平行射入透镜的光都会集中于一点,称该点为焦点

(2) 所有从焦点射入透镜的光都会平行射出(光路可逆性)

(3) 焦距可以被随意改变(这里单个透镜当然不行,但在现实中大部分的照相机都是一个透镜组,可以做到焦距随意改变)

利用这些性质可以得到理想透镜的成像规律,对于一个通过透镜的成像物体来说,其物距Z0,像距Zi和焦距f之间存在如下图的关系:

其推导过程可以简单的从两对相似三角形入手:

过程如下:

了解了上述的透镜成像规律之后,让我们一起观察一下景深模糊所产生的的原因:

同时这里也给出了不同光圈大小拍照的例子,小光圈锐利,景深模糊不明显,大光圈则有明显的景深模糊

那么回归到本章的主题,Depth of Field,它与景深模糊并不是同一个东西,景深模糊是一种情形,而景深则是一个具体的数值,其具体指 当我们固定一个可以接受的Circle of Confusion C值之后,可以逆向推导出小于该C值的对应的一段距离是多少,这个距离就是景深,如下图所示:

图中蓝色阴影区域的C值小于提前确定的值,该区域的长度即为景深,对应推导过程也已经在闫老师课上的这个Slides中给出。

Note:

关于如何在光线追踪当中实现景深模糊的效果,只需要简单的模拟透镜的光线传播即可,如下图当中的步骤所示:

实际渲染效果图:

相关推荐
新子y2 小时前
【小白笔记】区分类方法/实例方法和静态函数/命名空间函数
笔记·分类
梁辰兴3 小时前
企业培训笔记:外卖平台后端--套餐管理模块--新建套餐信息
笔记·vue·mybatis·springboot·外卖管理系统
degen_3 小时前
第一次进入 PEICORE 流程
c语言·笔记
YJlio3 小时前
Process Monitor 学习笔记(5.24):工具栏参考与高效快捷键指南
笔记·学习·php
摇滚侠4 小时前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 核心语法 笔记39
spring boot·笔记·后端·thymeleaf
张人玉4 小时前
WPF 常用样式属性及示例笔记
笔记·wpf
报错小能手5 小时前
linux学习笔记(49)Redis详解(1)
linux·笔记·学习
QT 小鲜肉5 小时前
【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
linux·windows·笔记·学习·adb
猫林老师6 小时前
HarmonyOS多媒体开发:自定义相机与音频播放器实战
数码相机·音视频·harmonyos
John.Lewis7 小时前
C++初阶(14)list
开发语言·c++·笔记