GAMES101(19节,相机)

相机

synthesis合成成像:比如光栅化,光线追踪,相机是capture捕捉成像,

但是在合成渲染时,有时也会模拟捕捉成像方式(包括一些技术 动态模糊 / 景深等),这时会有涉及很多专有名词,以及计算公式,因此我们要储备摄像机基础知识

针孔相机:

小孔成像,光线打击到物体,从物体反射后的光线从小孔穿过,投射到成像面呈现倒影

思考如果没有这个小孔会成像吗?不能,因为对应成像面的每一个点都接收四面八方来的光线,因此最后的颜色杂乱,如果有了小孔,相当于只接收一个方向的光线,去决定这个成像点的颜色

我们之前模拟的光线追踪相机,就相当于针孔相机,每个成像点(像素中心/采样点)都是特定方向的光线决定的

无法做出景深效果 ,因为不存在焦点,也就是没有特定的物距让成像清晰,而是距离越远越小,并不存在是否清晰,理论上应该是清晰的,但是由于小孔的光学衍射极限等影响,实际并不清晰

(薄片)透镜相机:

光线打击到透镜,投影到sensor

平行光会穿过焦点,通过透镜中心的光线会不改变,通过焦点的光会平行出去

如果光线正好穿过透镜中心,方向不会改变

zo物距,zi像距,f焦距

也就时如果zo越大,zi越小,zo越小,zi越大

Deth of field景深DOF:

根据上面的公式,当f固定,zo固定,那么zi也固定,因此如果蓝色位置面板不在zi的位置,那么图像就会模糊,原本一个点形成圆圈

COC计算圆形的大小:相似三角形,A为透镜高度,和A成正比

当透镜位置不变,物距不变,成像平面不变,透镜/光圈越大,物体越模糊

对于世界物体的位置不同,也会影响在成像平面的COC大小

景深:在COC比较小的范围时,场景中的一段距离,比如coc的大小和像素大小差不多,则图像锐利

这里就是利用本节的其他公式,首先推导出右边的关系,再根据代换,表示DF,DN的景深位置

可以看右边这个图片,近处的酒瓶和远处的酒瓶都很模糊,只有中间的酒瓶是清楚的 

专有名词:

shutter speed快门

控制开放时间(允许光线进入的时间),如果速度越快,开放时间越短,越少的光线进入相机,图像比较暗)可以增大光圈保证图片亮度

运动模糊:当快门打开的时间内,物体产生了运动,光线都会被记录下来,因此图像是模糊的

由于快门打开不可能瞬时发生,需要开盖,因此对于高速运动的物体,会产生一定的扭曲

高速摄影:每秒拍更多的相片,然后通过正常的帧数播放,因此每张照片的快门时间都很少

延迟摄影:用非常慢的速度拍摄照片,同样需要减小光圈保证较少的曝光度

sensor传感器

存储光能量,记录irradiance,通常以35mm为基准

focal length焦距,focal point焦点

焦点:平行光线穿过透镜/光圈后,最后汇聚的点为焦点,

可逆性:同样如果从一个点照射透镜,会形成平行光

焦距:平行光穿过小孔/透镜时形成的焦点到透镜光心距离,

下图为小孔成像相机:

Field of viewFOV视场:

看到多大范围,2 * 一半的角度(反正切(h/2f)),h为传感器的高度,f为焦距

反正切:若tanA=1.9/5,则 A=arctan1.9/5;若tanB=5/1.9,则B=arctan5/1.9。

当h不变时,如果f焦距变小,fov变大,且看到的距离越远,成反比

当f不变时,如果h越大,fov越大,成正比

Exposure曝光(图像亮度):
H = T * E

Exposure = time * irradiance(时间 * 收到的光能量,时间越长能量越多,曝光越高越亮)

光圈

irradiance受光圈大小(aperture孔径)影响(每个时刻接收到多少光,最大为镜头大小,通过f_number / stop(简称FN)控制,f_stop越小光圈越大)

f_number / stop :焦距 / 光圈直径 == 简称N = F / D(A)        

也就是说想要更清楚的照片,需要C越小,需要f/N值越小,也就是N(f_number值)越大

光圈直径越小,C越小,景深距离越大,大量的拍摄范围都是清晰,否则图片会模糊

光圈越大,景深越小

当f_stop值提高为原来两倍,光圈面积缩小为原来的1/4,因此需要增加shutter曝光时间补偿

f_stop值会影响景深 

ISOgain感光度

后期处理,光能量乘以某个值,可以在任何时刻处理

图像为什么有噪声?因为在一定快门时间,光线的光子数量进入的不够多,就会形成噪声

当iso值增大,同样的增加亮度和噪声,因此会看起来噪声更多

比如我们在夜晚拍照片,调节亮度后,图片是变量,但看到噪声很多

合成渲染方式

属性:成像平面大小,透镜焦距,光圈大小

20光场……

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WooCommerce与wordpress是什么关系

WooCommerce与WordPress之间的关系非常紧密,因为WooCommerce实际上是一个为WordPress设计的插件。WordPress是一个内容管理系统(CMS),广泛用于创建各种类型的网站,包括博客、企业网站等。而WooCommerce则是一个免费且开源的电子商务插件&…

Linux 安装 yum

第一步:下载安装包 这里以 CentOS 7 为例 wget https://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-3.4.3-132.el7.centos.0.1.noarch.rpm wget https://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm wget…

初识算法 · 双指针(4)

目录 前言: 复写零 题目解析 算法原理 算法编写 四数之和 题目解析 算法原理 算法编写 前言: 本文是双指针算法的最后一文,以复写零和四数之和作为结束,介绍方式同样是题目解析,算法原理,算法编写…

电气自动化入门10:传感器应用介绍

视频链接:4.1 电工知识:传感器应用介绍与接近开关的实际应用_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1PJ41117PW?p12&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 1.电工传感器介绍 2.常用电工传感器的种类和用途 3.接近开关

微信原生小程序

app.json 中配置project.config.json 中配置project.private.config.json 中配置sitemap.json 中配置index.json 中配置常用全局配置常用页面配置WXMLnavigator 组件 基本用法常用属性事件 scroll-view 组件 基本用法 1. 创建可垂直滚动的区域2. 创建可水平滚动的区域事件1. 事…

计算机毕业设计 基于Python的无人超市管理系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

TCP BIC 的拟合函数分析

前面说了这么多,还没有对 bic 的数学性质进行分析,本文补上。 tcp reno 完全依赖 ack 时钟以 rtt 为单位线性增窗,增窗速度与 rtt 负相关,如何在 rtt 比较大时增加增窗速度,这就是 bic,以二分替换遍历。 …

云RDS MySQL迁移至本地MySQL

本地准备工作 1.安装:percona-xtrabackup 上传percona-xtrabackup-2.3.9-Linux-x86_64.tar.gz包到/usr/local tar -zxvf percona-xtrabackup-2.3.9-Linux-x86_64.tar.gz mv percona-xtrabackup-2.3.9-Linux-x86_64 percona-xtrabackup 2.创建数据目录 cd /data/ mkdir rds-mys…

银河麒麟服务器:检查仓库源连接状态

银河麒麟服务器:检查仓库源连接状态 1. 清理YUM缓存2. 生成YUM缓存 💖The Begin💖点点关注,收藏不迷路💖 在银河麒麟高级服务器操作系统中,要检查仓库源是否连接成功,可以执行以下两个命令&…

SQL优化 - 排序

文章目录 排序和索引降序索引 FilesortORDER BY 顺序问题ORDER BY LIMIT 排序和索引 如果ORDER BY操作使用了索引,那么就可以避免排序操作,因为索引本身就是按索引 key 排好序的。那什么情况下,ORDER BY会走索引呢? 例如&#…

C#基于SkiaSharp实现印章管理(10)

向PDF文件插入印章图片比之前实现的向图片文件插入印章麻烦得多。   最初的想法是使用PDF浏览控件在线打开PDF文件,然后在控件中实现鼠标移动时动态显示印章,点击鼠标时向当前PDF页面的鼠标点击位置插入图片。由于是.net 8的Winform项目,选…

Elasticsearch学习记录

阅读前须知 本文通过安装elasticsearch-7.17.0为基础,使用 kibana-7.17.0 对 elasticsearch 进行操作,本文中 es 是对 elasticsearch 的简写。 下载地址:elasticsearch_免费高速下载|百度网盘-分享无限制 (baidu.com) 1 初识Elasticsearch …

用 LoRA 微调 Stable Diffusion:拆开炼丹炉,动手实现你的第一次 AI 绘画

总得拆开炼丹炉看看是什么样的。这篇文章将带你从代码层面一步步实现 AI 文本生成图像(Text-to-Image)中的 LoRA 微调过程,你将: 了解 Trigger Words(触发词)到底是什么,以及它们如何影响生成结…

【大数据】深入解析分布式数据库:架构、技术与未来

目录 1. 分布式数据库的定义2. 架构类型2.1 主从架构2.2 同步与异步复制2.3 分片架构 3. 技术实现3.1 一致性模型3.2 CAP理论3.3 数据存储引擎 4. 应用场景5. 选择分布式数据库的因素5.1 数据一致性需求5.2 读写负载5.3 成本5.4 技术栈兼容性 6. 未来发展趋势总结 分布式数据库…

spring boot jar 分离自动部署脚本

背景 远程部署时spring boot 包&#xff0c;比较大。可以采用依赖库和业务包分离的方式。提供一个脚本进行自动部署 maven 配置分离jar包 <build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.springfra…

springboot cache

springboot cache 简要介绍 Spring 对缓存提供支持&#xff0c;核心思路是对方法的参数和返回值的缓存&#xff0c;当开发者调用一个方法时&#xff0c;将方法的参数和返回值作为key/value缓存起来&#xff0c;当再次调用该方法时&#xff0c;如果缓存中有数据&#xff0c;就直…

redis面试-2024

1、Redis的基本数据结构类型 string、list、set、hash、zet。还有三种特殊类型&#xff1a;Geospatial、Hyperloglog、bitMap。 2、各数据类型对应的场景 3、redis快的原因 *基于内存 内存读写效率远高于磁盘读写&#xff0c;省去磁盘IO操作 *存储形式 Redis作为K-V键值对…

SpringCloud学习记录|day2

学习材料 2024最新SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; Docker 部署工具。原来为了学习RabbitMQ安装过了。 但是忘记差不多了。 发现要回到root用户才能启动docke…

MFC有三个选项:MFC ActiveX控件、MFC应用程序、MFC DLL,如何选择?

深耕AI&#xff1a;互联网行业 算法研发工程师 ​ 目录 MFC ActiveX 控件 控件的类型 标准控件 自定义控件 ActiveX控件 MFC ActiveX控件 标准/自定义控件 MFC ActiveX控件分类 3种MFC如何选择&#xff1f; MFC ActiveX控件 MFC 应用程序 MFC DLL 总结 举例说明…

微信小程序处理交易投诉管理,支持多小程序

大家好&#xff0c;我是小悟 1、问题背景 玩过微信小程序生态的&#xff0c;或许就有这种感受&#xff0c;如果收到投诉单&#xff0c;不会及时通知到手机端&#xff0c;而是每天早上10:00向小程序的管理员及运营者推送通知。通知内容为截至前一天24时该小程序账号内待处理的交…