Games101-相机与透镜

在这里插入图片描述
成像:光栅化成像(上图)和光线追踪成像(下图)
都是用合成的方法来成像。还可以用捕捉的方法来成像
在这里插入图片描述
利用小孔成像原理制作的相机就是针孔相机
在这里插入图片描述
如果一个相机没有针孔/透镜,是无法拍照的。
因为任何一个点都有可能收集到来自不同方向上的光。这个点本身作为传感器是不区分来自各个方向上的radiance。则各个方向上能量都被收集到一起,该点收集到的是irradiance,而不是radiance。最终所有东西都是糊的。
传感器现在记录不了radiance,只能记录irradiance

Pinhole Image Formation

在这里插入图片描述
针孔相机拍出的东西是没有深度可言的。也就是任何地方都是锐利清楚的,都不会是虚化的。
做光线追踪时用的就是针孔摄像机的模型。所以也得不到景深的模糊效果。如果可以模拟光线和透镜的作用,那么也可以作出景深的渲染效果

Field of View (FOV)/视场

在这里插入图片描述
视场:能看到多大的范围
定义:我们认为传感器会感受到所有的光线
传感器高度定义为h
传感器和小孔间的距离(焦距)为f
在这里插入图片描述
通常认为是以35mm的胶片为基准,即传感器高度固定。通过控制焦距的大小,来控制视场大小

手机上所谓的28mm焦距只是等效35mm的传感器。实际上手机的传感器更小,因此焦距也更小
在这里插入图片描述
不同fov效果
在这里插入图片描述
减少传感器大小,fov减小。
平常认为传感器和胶片是一回事。但对于渲染来说,传感器负责记录每个像素收到的irradiance多大,
最后的film决定存成什么样的格式。两个概念可以不一样,只是目前混淆着使用
在这里插入图片描述
对于手机来说,焦距较小,使用较小的传感器达到相同的fov

Exposure/曝光

在这里插入图片描述
Exposure是irradiance乘time
记录的不是单位时间的而是总共的能量。
时间体现在相机里就是快门可以控制多长时间光可以进来
irradiance决定的其中一点是光圈的大小,光圈会影响到镜头接收到多少光
在这里插入图片描述
相机影响最后照片的因素:光圈大小(f-stop),快门开放时间,感光度(ISO是一个后期处理,当感光元件已经感知到某一层级的光,例如0.1,如果觉得暗,则把0.1乘以一定值。可以发生在硬件上,如传感都本身调节灵敏度,也可以在照片的数字信号上去调节)
在这里插入图片描述
不同因素的参数对应的效果
任何一个信号会有一个噪声,放大信号的同时,同样会放大噪声
在这里插入图片描述
iso是线性的
在这里插入图片描述
iso能够提示曝光度,但会造成噪声放大
在这里插入图片描述
f数非正式理解为光圈直径的逆,即1/直径
在这里插入图片描述
快门曝光时间可以起到调节曝光度的作用。
高速运动的物体容易出现运动模糊,即快门打开的这段时间内,物体发生了移动。传感器起到的是平均的作用,因此模糊
在这里插入图片描述
更短的快门时间,运动模糊会减低,但曝光度也减低
而且运动模糊不一定是坏事,如果没有运动模糊会觉得速度很慢。运动模糊在时间上采样是一种反走样的效果
在这里插入图片描述
机械快门打开存在一定时间,如果物体运动速度快于快门打开时间,会出现Rolling shutter的问题,对高斯运动的物体,如螺旋架造成扭曲。
因为图像上不同的位置有可能记录的是不同的时间进来的光
在这里插入图片描述
f-stop是1/直径,考虑多少曝光是面积

Fast and Slow Photography

快门的应用
在这里插入图片描述
在这里插入图片描述
高速摄影:每秒拍更多的帧数,然后按正常的帧数来放。意味着每张照片的快门时间非常少,及更大的光圈
在这里插入图片描述
在这里插入图片描述
延时摄影:超低速。非常长的曝光时间,及非常小的光圈。这些拉丝的效果其实就是运动模糊

Thin Lens Approximation

在这里插入图片描述
真正的镜头非常的复杂,不会用单个透镜做成像,而是用透镜组
在这里插入图片描述
aberrations:一面凸一面直的透镜不可能把光聚集到一点。(平行光进入到透镜本来是会被聚集到一点)
在这里插入图片描述
我们研究的是理想化的透镜,不考虑厚度。对于平行于透镜的光会被聚集到一个点,即焦点。焦点到透镜中间的距离为焦距
光路有可逆性,所以如果光路穿过焦点,射到透镜会被折射成一束平行光
认为薄的透镜可以任意改变焦距
在这里插入图片描述
任何一个光只要过透镜中心就不会改变方向
物距: z o z_o zo
相距: z i z_i zi
对于固定焦距的透镜来说,如果要改变物距,则相距也要改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图中的是两组相似三角形
在这里插入图片描述
薄透镜公式:反映了焦距,物距,相距的关系

Defocus Blur

在这里插入图片描述
远处一个平面focal plane,平面上的光经过透镜后会被聚焦到成像平面上,如果物体不在focal plane,会模糊。如上图,object聚焦在成像平面前方image,在继续传播。一个点被感光平面接收到之后,不再是一个点,而是一个圆。这个圆就是Circle of Confusion
看某个距离物体的模糊程度,和光圈的大小成正比
在这里插入图片描述
大光圈更模糊
在这里插入图片描述
直径分之1的定义其实是不对的,应该是焦距N除以光圈的直径D
在这里插入图片描述
把f数光圈实际大小和焦距联系在一块
在这里插入图片描述
A就是光圈的直径,C和N有反比关系
为了更清楚的照片,需要小光圈

Ray Tracing Ideal Thin Lenses

在这里插入图片描述
模拟薄透镜做光线追踪
在这里插入图片描述
确定成像平面sensor有一定大小,定义透镜属性焦距和光圈大小,定义透镜离场景中某个平面有多远 z o z_o zo,认为这个平面是要进行着重拍摄的。以此可以推出相距是 Z i Z_i Zi
在这里插入图片描述
第一步,在成像平面上选一点 x ‘ x^` x
第二步,在透镜上随机选一点 x ‘ ‘ x^{``} x‘‘
第三步,连线两点,可以求得打到的位置 x ‘ ‘ ‘ x^{```} x‘‘‘
第四步,计算 x ‘ ‘ x^{``} x‘‘ x ‘ ‘ ‘ x^{```} x‘‘‘的radiance
即简单利用透镜公式算一下折射的光线方向

Depth of Field

在这里插入图片描述
大光圈与小光圈会影响模糊的范围
在这里插入图片描述
景深就是指在实际场景中有一段深度,这段深度经过透镜后会在成像平面的附近形成一段区域,这段区域内,认为COC足够小。
算景深就是算在COC很小的范围内,对应看到的清晰场景距离
只要当COC的大小比像素小或差不多,都认为得到的结果是锐利的
在这里插入图片描述
景深的范围 D F D_F DF D N D_N DN
光圈越小,景深范围越大,更接近小孔,更锐利

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/573014.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

telnet 退出失败ctrl+c

1. 使用ctrl] ,退出到telnet >界面 2. quit 或者 3. 直接强制退出: ] Enter键

第十五届蓝桥杯省赛第二场C/C++B组F题【狡兔k窟】题解(AC)

题意分析 有一个 n n n 个点, n − 1 n-1 n−1 条边的无向图,边权均为 1 1 1。 每个点隶属于一个集合,同一个集合的点可以互相传送。 给定 m m m 个询问,求 x , y x, y x,y 的最短距离。 最短路解法 步骤: 建…

探索数学语言模型的前沿进展——人工智能在数学教育和研究中的应用

数学一直被认为是科学的基石,对于推动技术进步和解决现实世界问题具有重要意义。然而,传统的数学问题解决方式正面临着数字化转型的挑战。MLMs的出现,预示着数学学习和研究方式的一次革命。 MLMs,包括预训练语言模型(…

黑马-设计模式-笔记(未完)

一、基础 UML类图 可见性: public- private#protected 表示方式:属性:可见性 名称:类型[默认值]方法:可见性 名称(参数)[:返回类型] 关系:关联关系:实线,引用关系,类属性里有另一个…

CUDA的应用场景

CUDA的应用场景随着技术的发展不断扩展,其核心优势在于能够显著提高并行计算任务的处理速度,这对于任何需要处理大量数据和执行复杂计算的领域都是极其有价值的。CUDA开发的应用场景非常广泛,主要得益于其强大的并行计算能力,以下…

【软考】UML中的关系

目录 1. 说明2. 依赖3. 关联4. 泛化5. 实现 1. 说明 1.UML中有4种关系:依赖、关联、泛化和实现2.这 4种关系是 UML,模型中可以包含的基本关系事物。它们也有变体,例如,依赖的变体有精化、跟踪、包含和延伸 2. 依赖 1.依赖(Dependency)。2.…

代码随想录刷题随记27-贪心1

代码随想录刷题随记27-贪心 455.分发饼干 leetcode链接 class Solution {public int findContentChildren(int[] g, int[] s) {//boolean used[]new boolean [s.length];Arrays.sort(s);Arrays.sort(g);int index0;int ret0;for(int i0;i<g.length;i){while(index<s.…

MySQL--表的操作

目录 创建表 查看表结构 修改表 新增列 修改列类型 修改列名 修改表名&#xff1a; 删除列 删除表 创建表 语法&#xff1a; CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引…

【Entity Framework】聊一聊EF如何使用数据库函数

【Entity Framework】聊一聊EF如何使用数据库函数 文章目录 【Entity Framework】聊一聊EF如何使用数据库函数一、数据库函数的类型二、内置函数与用户定义的函数四、聚合函数、标量函数和表值函数五、Niladic函数六、EF Core 中的数据库函数映射6.1 内置函数映射6.2 EF.Functi…

请编写一个函数void fun(char*ss),其功能是:将字符串ss中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 请编…

mPEG-Dansyl,Methoxy PEG Dansyl由甲氧基-聚乙二醇(mPEG)和丹磺酰氯(Dansyl)两部分组成

【试剂详情】 英文名称 mPEG-Dansyl&#xff0c;Methoxy PEG Dansyl 中文名称 聚乙二醇单甲醚丹磺酸酯&#xff0c;甲氧基-聚乙二醇-丹磺酰胺 外观性状 由分子量决定&#xff0c;液体或者固体 分子量 0.4k&#xff0c;0.6k&#xff0c;1k&#xff0c;2k&#xff0c;3.4k…

Fisher 准则分类

目录 一、什么是Fisher 准则 二、具体实例 三、代码实现 四、结果 一、什么是Fisher 准则 Fisher准则&#xff0c;即Fisher判别准则&#xff08;Fisher Discriminant Criterion&#xff09;&#xff0c;是统计学和机器学习中常用的一种分类方法&#xff0c;由统计学家罗纳…

JuliaImages教程(二):图像分割

1、介绍 图像分割是将图像划分为具有相似属性的区域的过程。图像分割具有多种应用&#xff0c;例如医学图像分割、图像压缩&#xff0c;并用作对象检测和光流等更高级别视觉任务中的预处理步骤。该包是用 Julia 编写的图像分割算法的集合。 2、安装 Pkg.add("ImageSegm…

软件测试面试题(二)

Web 测试.web 测试描述用浏览器访问 www.baidu.com 的过程以京东首页为例&#xff0c;设计用例框架。&#xff08;注意框架设计逻辑&#xff0c;区域划分&#xff0c;专项测试等&#xff0c;不需 要详细用例&#xff0c;需要查看 PC 可直接和辨识管提要求&#xff09;如何测试购…

Java Web 网页设计(1)

不要让追求之舟停泊在幻想的港湾 而应扬起奋斗的风帆 驶向现实生活的大海 网页设计 1.首先 添加框架支持 找到目录右键添加 找到Web Application选中 点击OK 然后 编辑设置 找到Tomcat--local 选中 点击OK 名称可以自己设置 找到对应文件夹路径 把Tomcat添加到项目里面 因为…

C++之通俗易懂学模版

目录 一、了解什么是泛性编程 二、模版 1.函数模版 1.1 函数模板概念 1.2 函数模板格式 1.3 函数模板的原理 1.4 函数模板的实例化 1.5 模板参数的匹配原则 2.类模板 2.1 类模板的定义格式 2.2 类模板的实例化 3. 非类型模板参数 4. 模板的特化 4.1 概念 4.2 …

Visual Studio调试C/C++指南

1. 前言 Visual Studio&#xff08;VS&#xff09;是微软开发的一款集成开发环境(IDE)软件&#xff0c;支持C/C、C#、VB、Python等开发语言&#xff0c;开发桌面、Web等应用程序。VS功能极其强大&#xff0c;使用极其便利&#xff0c;用户数量最多&#xff0c;被誉为"宇宙…

Python 基础 (Pandas):Pandas 入门

1. 官方文档 API reference — pandas 2.2.2 documentation 2. 准备知识&#xff1a;Pandas 数据结构 Series & DataFrame 2.1 Series 2.1.1 创建 Series 类型数据 一个 Series 对象包含两部分&#xff1a;值序列、标识符序列。可通过 .values (返回 NumPy ndarry 类型…

C语言扫雷游戏完整实现(下)

文章目录 前言一、排雷函数菜单二、排雷函数菜单的实现三、拓展棋盘功能四、源码1. test.c源文件2. game.h头文件3. game.c源文件 总结 前言 C语言实现扫雷游戏的排雷菜单&#xff0c;以及功能的实现&#xff0c;拓展棋盘功能&#xff0c;以及源码等。 上半部分的链接地址: C语…

第十五届蓝桥杯省赛第二场PythonB组B题【逆序对期望】题解(AC)

解题思路 枚举所有的可能的交换情况&#xff0c;时间复杂度 O ( n 4 ) O(n^4) O(n4)。 用归并排序计算数组的逆序对&#xff0c;时间复杂度 O ( n ) O(n) O(n)。 综上时间复杂度 O ( n 5 ) O(n^5) O(n5)。 由于 Python 运行效率较低&#xff0c;约 500 500 500 秒可得到…