GAMES101:现代计算机图形学-笔记-10

今天来聊一些基本的概念:相机,棱镜与光场。

众所周知,成像的方法有两种:合成与捕获。

像我们之前所学的内容如光栅化,如光线追踪,本质上都是合成图像的方法,他们只是在计算机中模拟来成像。

那我们当然也可以通过捕获现实生活中的图像来成像,比如拍照。

相机的基本原理:小孔成像,大多数相机由一块棱镜配上传感器组成。

(有专门的小孔成像的相机名为针孔相机)

可不可以只使用一个感光元件来收集光线呢形成图像呢?

目前来说不太行,因为感光元件会收集到来自现实物体的所有光。

视场的概念。

平时的拍照所谓的广角就是指视场足够大,可以拍到足够大的物体场景。有关视场的计算,我们把胶片的长度认作h,胶片到棱镜的距离认作f(平时所谓的焦距),可以得到视场的计算公式。

由于历史原因,我们平时聊焦距都是默认胶片是35mm长度的前提,这也就是为什么手机这么薄的东西依然可以有1000mm焦距级别的视场,因为他的1000mm对应的是胶片的35mm大小,实际在手机中的传感器大小要远小于这个范畴。

对于摄影设备,可谓大就是好,长就是强,口径即正义。

曝光。

决定曝光的有两个因素:一个是时间,一个是光照的强度,曝光时间由我们的快门来决定,而能收集到的Irradiance取决于我们的棱镜的效益。

在摄影中,可以人为控制曝光的因素有三个部分:光圈大小,快门速度以及感光度。

光圈的设计是一种仿生学的思想,用光圈来模仿人类的瞳孔,他既可以吸收光,也可以在光照过强时及时闭合减少光照的进入。

快门速度很好理解,我们只需要在一定的时间内禁止光的进入即可。

感光度则是可以简单理解为在感光元件接收到光之后进行一个后处理(乘)的一个数,也可以理解为感光元件对光的敏感程度。

从这幅图可以清晰地看出光圈、快门速度与感光度的区别:光圈越大能够接收的光线越多,但景深越小(大光圈小景深),快门速度越快成像越清晰,感光度越大照片噪点越多(对光线更敏感的同时对噪声更敏感)。

F数:用来描述光圈的数,一般写作FN或者F/N,N就是F数。可以粗略地理解为F数就是光圈直径的大小。

运动模糊:有关快门的一个问题。当拍摄的物体处于高速运动状态下(或者自己手抖),快门速度不够快时,就会出现运动模糊的情况。

运动模糊一定是坏事吗?也不一定。因为人类长时间对世界的感知方式,我们会粗略地认为有运动模糊就是快的,我们可以利用这个特性来模拟高速的状态。

很多时候我们需要去改动光圈和快门时间来平衡曝光度,但是大光圈容易引起小景深问题,而过长的快门时间又会引起运动模糊。

一些实际的摄影技巧运用:

高速摄影:很短的快门时间与大光圈或者高ISO。

延时摄影:俗称拉丝,刻意拉长快门时间。

接下来讲讲有关棱镜的性质。

在真正的应用中,基本摄影产品都不会用一个单独的棱镜来成像,一般都是一个棱镜组。

不过我们在学习的过程中,普遍认为棱镜就是标准的理想化模型:所有通过棱镜的光会聚集在一个点上称为焦点,焦点到棱镜的距离称之为焦距。在这里我们再多添加一个假设:棱镜的焦距可以被任意地改变。

听说这是初中学习的内容,可惜我早就忘光光了。

薄棱镜成像涉及到三个参数:焦距,物距以及像距,而这个等式就表示了这三者的关系:焦距不变的前提下,物距大则像距小,反之亦然。

了解了薄棱镜成像的原理,很多有关模糊的现象就可以得到解释了。

所谓的COC,说白了就是指一定距离的物体在不改变焦距的前提下,可能焦点会在成像平面(感光元件)之前,这样在感光元件处得到的就是一个模糊的圆,我们把这个圆称之为COC,通过一系列数学的推导证明我们可以得知:COC的大小与光圈的大小成正比。

虽然知道了COC这个概念,但是实际上总会有那么一个恰好的距离,这个距离的物体在感光元件上的COC足够小,可以清晰地成像,我们称这个距离为景深。

相关推荐
swan4161 小时前
SCAU期末笔记 - 数据库系统概念往年试卷解析
数据库·笔记·mysql·数据库系统·数据库系统概念
冷雨夜中漫步5 小时前
领域驱动设计(4)—绑定模型与实现
java·开发语言·笔记·后端·设计模式
世事如云有卷舒5 小时前
《Rust权威指南》学习笔记(三)
笔记·学习·rust
世事如云有卷舒6 小时前
《Rust权威指南》学习笔记(四)
笔记·学习·rust
2401_8582861111 小时前
L27.【LeetCode笔记】2 的幂(五种解法)
c语言·开发语言·笔记·算法·leetcode
KhalilRuan11 小时前
代码随想录-笔记-其十
笔记
1101 110115 小时前
STM32-笔记28-蓝牙模块
笔记
π大星星️16 小时前
haproxy+nginx负载均衡实验
linux·运维·服务器·笔记·nginx·负载均衡
半夏知半秋16 小时前
Python中的OS库
服务器·开发语言·笔记·后端·python·学习
yvestine16 小时前
数据挖掘——概论
人工智能·笔记·机器学习·数据挖掘