当前位置: 首页 > news >正文

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光场……

相关文章:

GAMES101(19节,相机)

相机 synthesis合成成像:比如光栅化,光线追踪,相机是capture捕捉成像, 但是在合成渲染时,有时也会模拟捕捉成像方式(包括一些技术 动态模糊 / 景深等),这时会有涉及很多专有名词&a…...

Django Nginx+uwsgi 安装配置

Django Nginx+uwsgi 安装配置 本文将详细介绍如何在Linux环境下安装和配置Django应用程序,使用Nginx作为Web服务器和uwsgi作为应用程序服务器。我们将覆盖以下主题: 安装Python和相关库安装和配置Django安装Nginx安装和配置uwsgi配置Nginx以使用uwsgi测试和调试1. 安装Pytho…...

oracle数据备份和导入

一、数据导出 创建目录对象: CREATE DIRECTORY dpump_dir AS /path/to/your/directory;授予权限: GRANT READ, WRITE ON DIRECTORY dpump_dir TO test_user; #导出的用户导出全库数据 expdp your_user/your_password DIRECTORYdpump_dir DUMPFILEfu…...

C++ | Leetcode C++题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution { public:int findMinArrowShots(vector<vector<int>>& points) {if (points.empty()) {return 0;}sort(points.begin(), points.end(), [](const vector<int>& u, const vector<int>&…...

react-问卷星项目(3)

项目实战 React Hooks 缓存&#xff0c;性能优化&#xff0c;提升时间效率&#xff0c;但是不要为了技术而优化&#xff0c;应该是为了业务而进行优化 内置Hooks保证基础功能&#xff0c;灵活配合实现业务功能&#xff0c;抽离公共部分&#xff0c;自定义Hooks或者第三方&am…...

69 BERT预训练_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录NLP里的迁移学习Bert的动机Bert架构对输入的修改五、预训练任务1、2、3、 六、1、2、3、 七、1、2、3、 八、1、2、3、 NLP里的迁移学习 之前是使用预训练好的模型来抽取词、句子的特征&#xff0c;例如 word2vec 或语言模型这种非深度学习…...

Java报错输出的信息究竟是什么?

Java报错输出的信息究竟是什么&#xff1f; 本篇会带大家了解一下java运行时报错输出的信息内容&#xff0c;简单学习一下虚拟机内存中Java虚拟机栈的工作方式以及栈帧中所存储的信息内容 异常信息 当你的程序运行报错时&#xff0c;你是否会好奇打印出来的那一大坨红色的究竟…...

解表之紫苏

** 声明&#xff1a;本文介绍的中药仅供学习使用&#xff0c;请勿擅自使用&#xff0c;否则后果自负&#xff01;&#xff01;&#xff01;因水平有限&#xff0c;如有不当之处&#xff0c;请批评指正&#xff01;&#xff01;&#xff01;&#xff01;图片来源网络&#xff0…...

JavaScript数据类型

目录 JavaScripit数据类型 原始类型&#xff08;Primitive Types&#xff09; 1 Undefined 特点 实例 2 Null 实例 3 Boolean 重点&#xff1a; 常用falsy情况&#xff1a; 思考 4 Number,BigInt 实例 特点 NaN 5 String 在JavaScript中表示字符串有三种表示方…...

市场中的新兴力量与未来发展

在当前瞬息万变的全球金融市场中&#xff0c;期货交易以其高杠杆与灵活性&#xff0c;吸引了越来越多的投资者参与其中。大粤期货作为中国期货行业的新兴力量&#xff0c;凭借其创新的交易平台、广泛的产品线及专业的风险管理服务&#xff0c;迅速在市场中崭露头角。本文将介绍…...

Golang | Leetcode Golang题解之第446题等差数列划分II-子序列

题目&#xff1a; 题解&#xff1a; func numberOfArithmeticSlices(nums []int) (ans int) {f : make([]map[int]int, len(nums))for i, x : range nums {f[i] map[int]int{}for j, y : range nums[:i] {d : x - ycnt : f[j][d]ans cntf[i][d] cnt 1}}return }...

Java 常用序列化对比

Java 中常用的序列化方式主要包括以下几种: 1. Java 原生序列化 使用方式: 使用 java.io.Serializable 接口。对象需要实现该接口,然后通过 ObjectOutputStream 和 ObjectInputStream 进行序列化和反序列化。 示例代码: import java.io.*;public class Person impleme…...

【redis学习篇1】redis基本常用命令

目录 redis存储数据的模式 常用基本命令 一、set 二、keys pattern keys 字符串当中携带问号 keys 字符串当中携带*号 keys 【^字母】 keys * 三、exists 四、del 五、expire 5.1 ttl命令 5.2key删除策略 5.2.1惰性删除 5.2.2定期删除 六、type key的数据类型…...

量子计算:颠覆未来计算的革命性技术

量子计算&#xff1a;颠覆未来计算的革命性技术 量子计算作为下一代颠覆性技术&#xff0c;正在引领计算领域的重大变革。与传统计算机基于比特的二进制运算不同&#xff0c;量子计算通过量子比特&#xff08;qubits&#xff09;在叠加态和纠缠态下实现并行计算&#xff0c;能…...

ctfshow-web入门(信息收集,持续更新中。。)

写在之前:近期打了个比赛,备受打击,入手了vip账号进修,加油! 文章目录 ctfshow-web1查看源代码ctfshow-web2burp抓包ctfshow-web3burp抓包ctfshow-web4访问robots.txtctfshow-web5dirscarch扫描PHPS文件泄露ctfshow-web6dirscarch扫描ctfshow-web7dirscarch扫描ctfshow-w…...

蓝桥杯【物联网】零基础到国奖之路:十五. 扩展模块之双路ADC

蓝桥杯【物联网】零基础到国奖之路:十五. 扩展模块之双路ADC 第一节 硬件解读第二节 CubeMX配置第三节 代码编写 第一节 硬件解读 STM32的ADC是12位&#xff0c;通过硬件过采样扩展到16位&#xff0c;模数转换器嵌入到STM32L071xx器件中。有16个外部通道和2个内部通道&#xf…...

李飞飞谈AI+3D发展:3D/4D AI将成为下一个重要前沿

人工智能(AI)的发展已经深刻改变了我们的世界,从简单的图像识别到复杂的自然语言处理,再到如今正在兴起的生成式模型。在这个过程中,李飞飞教授认为,3D/4D AI技术将是推动下一波变革的关键力量。以下根据她的观点整理了AI发展历程中的关键里程碑以及对3D/4D AI未来发展的…...

centos72009源码编译R语言

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -Psparkr -Phive -Phive-thriftserver -Pmesos -Pyarn -Dhadoop.version3.4.0 -Pkubernetes spark3.5.3 源码版本 ./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Pconnect -P…...

初识算法 · 双指针(4)

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

java版鸿鹄电子招投标系统功能架构设计 核心功能设计 鸿鹄电子招投标采购系统源码

java版鸿鹄电子招投标系统功能架构设计 核心功能设计 鸿鹄电子招投标采购系统源码...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

关于uniapp展示PDF的解决方案

在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项&#xff1a; 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库&#xff1a; npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

jdbc查询mysql数据库时,出现id顺序错误的情况

我在repository中的查询语句如下所示&#xff0c;即传入一个List<intager>的数据&#xff0c;返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致&#xff0c;会导致返回的id是从小到大排列的&#xff0c;但我不希望这样。 Query("SELECT NEW com…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...

6.计算机网络核心知识点精要手册

计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法&#xff1a;数据与控制信息的结构或格式&#xff0c;如同语言中的语法规则语义&#xff1a;控制信息的具体含义和响应方式&#xff0c;规定通信双方"说什么"同步&#xff1a;事件执行的顺序与时序…...