GAMES101:现代计算机图形学-笔记-10
今天来聊一些基本的概念:相机,棱镜与光场。
众所周知,成像的方法有两种:合成与捕获。
像我们之前所学的内容如光栅化,如光线追踪,本质上都是合成图像的方法,他们只是在计算机中模拟来成像。
那我们当然也可以通过捕获现实生活中的图像来成像,比如拍照。
相机的基本原理:小孔成像,大多数相机由一块棱镜配上传感器组成。
(有专门的小孔成像的相机名为针孔相机)
可不可以只使用一个感光元件来收集光线呢形成图像呢?
目前来说不太行,因为感光元件会收集到来自现实物体的所有光。
视场的概念。
平时的拍照所谓的广角就是指视场足够大,可以拍到足够大的物体场景。有关视场的计算,我们把胶片的长度认作h,胶片到棱镜的距离认作f(平时所谓的焦距),可以得到视场的计算公式。
由于历史原因,我们平时聊焦距都是默认胶片是35mm长度的前提,这也就是为什么手机这么薄的东西依然可以有1000mm焦距级别的视场,因为他的1000mm对应的是胶片的35mm大小,实际在手机中的传感器大小要远小于这个范畴。
对于摄影设备,可谓大就是好,长就是强,口径即正义。
曝光。
决定曝光的有两个因素:一个是时间,一个是光照的强度,曝光时间由我们的快门来决定,而能收集到的Irradiance取决于我们的棱镜的效益。
在摄影中,可以人为控制曝光的因素有三个部分:光圈大小,快门速度以及感光度。
光圈的设计是一种仿生学的思想,用光圈来模仿人类的瞳孔,他既可以吸收光,也可以在光照过强时及时闭合减少光照的进入。
快门速度很好理解,我们只需要在一定的时间内禁止光的进入即可。
感光度则是可以简单理解为在感光元件接收到光之后进行一个后处理(乘)的一个数,也可以理解为感光元件对光的敏感程度。
从这幅图可以清晰地看出光圈、快门速度与感光度的区别:光圈越大能够接收的光线越多,但景深越小(大光圈小景深),快门速度越快成像越清晰,感光度越大照片噪点越多(对光线更敏感的同时对噪声更敏感)。
F数:用来描述光圈的数,一般写作FN或者F/N,N就是F数。可以粗略地理解为F数就是光圈直径的大小。
运动模糊:有关快门的一个问题。当拍摄的物体处于高速运动状态下(或者自己手抖),快门速度不够快时,就会出现运动模糊的情况。
运动模糊一定是坏事吗?也不一定。因为人类长时间对世界的感知方式,我们会粗略地认为有运动模糊就是快的,我们可以利用这个特性来模拟高速的状态。
很多时候我们需要去改动光圈和快门时间来平衡曝光度,但是大光圈容易引起小景深问题,而过长的快门时间又会引起运动模糊。
一些实际的摄影技巧运用:
高速摄影:很短的快门时间与大光圈或者高ISO。
延时摄影:俗称拉丝,刻意拉长快门时间。
接下来讲讲有关棱镜的性质。
在真正的应用中,基本摄影产品都不会用一个单独的棱镜来成像,一般都是一个棱镜组。
不过我们在学习的过程中,普遍认为棱镜就是标准的理想化模型:所有通过棱镜的光会聚集在一个点上称为焦点,焦点到棱镜的距离称之为焦距。在这里我们再多添加一个假设:棱镜的焦距可以被任意地改变。
听说这是初中学习的内容,可惜我早就忘光光了。
薄棱镜成像涉及到三个参数:焦距,物距以及像距,而这个等式就表示了这三者的关系:焦距不变的前提下,物距大则像距小,反之亦然。
了解了薄棱镜成像的原理,很多有关模糊的现象就可以得到解释了。
所谓的COC,说白了就是指一定距离的物体在不改变焦距的前提下,可能焦点会在成像平面(感光元件)之前,这样在感光元件处得到的就是一个模糊的圆,我们把这个圆称之为COC,通过一系列数学的推导证明我们可以得知:COC的大小与光圈的大小成正比。
虽然知道了COC这个概念,但是实际上总会有那么一个恰好的距离,这个距离的物体在感光元件上的COC足够小,可以清晰地成像,我们称这个距离为景深。
相关文章:
GAMES101:现代计算机图形学-笔记-10
今天来聊一些基本的概念:相机,棱镜与光场。 众所周知,成像的方法有两种:合成与捕获。 像我们之前所学的内容如光栅化,如光线追踪,本质上都是合成图像的方法,他们只是在计算机中模拟来成像。 那…...
【前端面试】Http篇
1. HTTPS 概念 加密(Encryption) 防止数据被截获 数据完整性(Data Integrity) 防止数据篡改 身份验证(Authentication) 验证网站的真实性 2. HTTPS 与 HTTP 的区别 HTTP 是明文传输,HTTPS 是…...
ZZCMS2023存在跨站脚本漏洞(CNVD-2024-44822、CVE-2024-44818)
ZZCMS是一款用于搭建招商网站的CMS系统,由PHP语言开发,可快速搭建:医药招商、保健品招商、化妆品招商、农资招商、孕婴童招商、酒类副食类等招商网站。 国家信息安全漏洞共享平台于2024-11-14公布其存在跨站脚本漏洞。 漏洞编号:…...
Android 15 前台服务类型的变更
在 Android 15 中对前台服务类型做出以下更改。 仍在处理中的媒体内容 要在其清单中声明的前台服务类型 android:foregroundServiceType mediaProcessing在清单中声明的权限 FOREGROUND_SERVICE_MEDIA_PROCESSING要传递给 startForeground() 的常量 FOREGROUND_SERVICE_TYPE_ME…...
微信小程序开发简易教程
微信小程序文件结构详解 1. 项目配置文件 project.config.json 项目的配置文件包含项目名称、appid、编译选项等配置示例: {"description": "项目配置文件","packOptions": {"ignore": []},"setting": {&quo…...
树莓派 发那科 Fanuc Linux跨平台CNC数控数据采集协议,TCP协议包
市面上的数控基本都支持了跨平台通讯,下面以发那科为列讲解跨平台协议如何通讯,无需任何DLL,适配任何开发语言,纯Socket通讯 先上采集图 握手包:a0 a0 a0 a0 00 01 01 01 00 02 00 02 释放包:a0 a0 a0 a…...
Ubuntu中安装配置交叉编译工具并进行测试
01-下载获取交叉编译工具的源码 按照博文 https://blog.csdn.net/wenhao_ir/article/details/144325141的方法,把imx6ull的BSP下载好后,其中就有交叉编译工具。 当然,为了将来使用方便,我已经把它压缩并传到了百度网盘ÿ…...
C++核心day3作业
作业: 1.整理思维导图 2.整理课上代码 3.把课上类的三个练习题的构造函数写出来 函数全部类内声明,类外定义 定义一个矩形类Rec,包含私有属性length、width,包含公有成员方法: void set_length(int l); //设置长度v…...
socket UDP 环路回显的服务端
基于socket通讯的方式,无论用http或者udp或者自定义的协议,程序结构都是类似的。这个以UDP协议为例简要说明。 #include <stdio.h> // 标准输入输出库 #include <sys/types.h> // 提供了一些数据类型,如ssize_t #include <sy…...
springboot/ssm车辆违章信息管理系统Java代码web项目汽车违章处罚源码
基于springboot(可改ssm)htmlvue项目 springboot/ssm车辆违章信息管理系统Java代码web项目汽车违章处罚源码 开发语言:Java 框架:springboot/可改ssm vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库&…...
5G模组AT命令脚本-关闭模组的IP过滤功能
关闭模组的IP过滤功能 关闭模组的IP过滤功能 5G 模组通常使用nat方式为 下挂设备或上位机提供上网服务,默认情况,不做NAt的包无法经由 模组转发,如果禁掉这个限制 ,可使用本文中的配置命令本脚本用于关闭模组的IP过滤功能…...
STM32:实现ping命令(lwip)
目录 0.协议介绍ICMP数据包格式ping指令发送的ICMP回声请求消息ping指令接收的ICMP回声应答消息1.实现步骤2.源码分析2.1 初始化函数2.2 发送函数2.3 回调函数2.3.1 函数定义:2.3.2 解析数据包:2.3.3.处理ICMP数据包:2.3.4 资源释放:2.3.5 返回值:3.源码展示4.源码链接5.问…...
nvm安装指定版本显示不存在及nvm ls-remote 列表只出现 iojs 而没有 node.js 解决办法
在使用 nvm install 18.20.3 安装 node 时会发现一直显示不存在此版本 Version 18.20.3 not found - try nvm ls-remote to browse available versions.使用 nvm ls-remote 查看可安装列表时发现,列表中只有 iojs 解决方法: 可以使用以下命令查看可安装…...
Spring Boot 中 WebClient 的实践详解
在现代微服务架构中,服务之间的通信至关重要。Spring Boot 提供了 WebClient,作为 RestTemplate 的替代方案,用于执行非阻塞式的 HTTP 请求。本文将详细讲解 WebClient 的实践,包括配置、使用场景以及常见的优化策略,帮…...
在GITHUB上传本地文件指南(详细图文版)
这份笔记简述了如何在GITHUB上上传文件夹的详细策略。 既是对自己未来的一个参考,又希望能给各位读者带来帮助。 详细步骤 打开目标文件夹(想要上传的文件夹) 右击点击git bash打开 GitHub创立新的仓库后,点击右上方CODE绿色按…...
【大模型系列篇】LLaMA-Factory大模型微调实践 - 从零开始
前一次我们使用了NVIDIA TensorRT-LLM 大模型推理框架对智谱chatglm3-6b模型格式进行了转换和量化压缩,并成功部署了推理服务,有兴趣的同学可以翻阅《NVIDIA TensorRT-LLM 大模型推理框架实践》,今天我们来实践如何通过LLaMA-Factory对大模型…...
30天学会Go--第7天 GO语言 Redis 学习与实践
30天学会Go–第7天 GO语言 Redis 学习与实践 文章目录 30天学会Go--第7天 GO语言 Redis 学习与实践前言一、Redis 基础知识1.1 Redis 的核心特性1.2 Redis 常见使用场景 二、安装 Redis2.1 在 Linux 上安装2.2 在 Windows 上安装2.3 使用 Docker 安装 Redis 三、Redis 常用命令…...
java 使用JSqlParser和CCJSqlParser 解析sql
maven <dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>4.9</version> </dependency>解析SQL String sql "select aa,bb from b"; Statement statementCCJSq…...
基于spring boot的高校专业实习管理系统的设计与实现
文末获取源码和万字论文,制作不易,感谢点赞支持。 设计题目:基于spring boot的高校专业实习管理系统的设计与实现 摘 要 随着国内市场经济这几十年来的蓬勃发展,突然遇到了从国外传入国内的互联网技术,互联网产业从开…...
OpenCV相机标定与3D重建(11)机器人世界手眼标定函数calibrateRobotWorldHandEye()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算机器人世界/手眼标定: w T b _{}^{w}\textrm{T}_b wTb 和 c T g _{}^{c}\textrm{T}_g cTg。 cv::calibrateRobotWorldHa…...
计算机网络ENSP课设--三层架构企业网络
本课程设计搭建一个小型互联网,并模拟Internet的典型Web服务过程。通过此次课程设计,可以进一步理解Internet的工作原理和协议过程,并提高综合知识的运用能力和分析能力。具体目标包括: (1)掌握网络拓扑的…...
【openwrt】openwrt-21.02 基于IP地址使用ipset实现策略路由操作说明
openwrt版本信息 DISTRIB_ID=OpenWrt DISTRIB_RELEASE=21.02-SNAPSHOT DISTRIB_REVISION=r0-6bf6af1d5 DISTRIB_TARGET=mediatek/mt7981 DISTRIB_ARCH=aarch64_cortex-a53 DISTRIB_DESCRIPTION=OpenWrt 21.02-SNAPSHOT r0-6bf6af1d5 DISTRIB_TAINTS=no-all busybox override …...
Git:常用命令
一、查看当前分支 git branch 二、查看所有分支 git branch -a 三、切换到远程分支 git checkout origin/分支名 示例:git checkout origin/dev 四、拉取远程分支代码 git pull origin 分支名 示例:git pull origin dev 五、常用指令 查看暂存区…...
【2025最新版】搭建个人博客教程
【2025最新版】搭建个人博客教程 –小记: 在搭建我的这个博客之前我在CSDN也发布过一些文章,目前应该也是几千粉丝了,但是看到别人都是用自己博客写的就感觉自己很LOW,所以就想自己来搭建一个属于自己的个人博客。当然搭建博客的…...
微信小程序实现联动删除输入验证码框
以下是json代码 {"component": true,"usingComponents": {} }以下是wxml代码 <van-popup show"{{ show }}" bind:close"onClose" custom-class"extract"><image src"../../images/extract/icon1.png"…...
数据库中decimal、float 和 double区别
在计算机科学中,decimal、float 和 double 是用于表示和处理数值的不同数据类型。 - decimal 是一种精确的十进制浮点数表示,通常用于需要高精度计算的场景,比如财务应用。它能够精确表示小数,并且不会出现浮点数运算误差。 - flo…...
网络编程01
1. 概念 通过网络,让两个主机之间能够进行通信,基于这样的通信完成一定的功能 只要满足进程不同即可,即使是同一个主机,只要是不同的进程,基于网络完成编程 进行网络编程时,需要操作系统提供一组API&…...
el-dialog修改其样式不生效加deep也没用
场景 el-dialog标签直接写在了template下。 解决方法 在template中先写一层div,包裹住el-dialog。...
三天精通一算法之快速排序
力扣链接912. 排序数组 - 力扣(LeetCode)注意这题快排不能用递归,否则堆会爆 快速排序(Quicksort)是一种高效的排序算法,通常使用分治法来将一个列表分成较小的子列表,然后递归地排序这些子列表…...
互联网、物联网的相关标准
互联网的相关标准 网络通信协议: HTTP(Hypertext Transfer Protocol):用于在网络中传输文本、图像、音频和视频等数据的协议。它基于请求-响应模型,客户端发送请求给服务器,服务器返回响应。HTTPS&a…...
免费婚恋网站设计/百度手机助手app安卓版官方下载
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/m0_37609579/article/details/103054993 <!--一个博主专栏付费入口结束--><link rel"…...
网站建设开题报告中的问题/网络营销总结
作者此前曾写了一本关于iOS企业开发的书——《企业级iOS应用开发实战》,此书从一个企业应用开发者的角度出发,以实现企业移动办公和3G应用为宗旨,介绍了如何充分发挥苹果新一代操作系统iOS的优势和iPhone手机的软、硬件特性,从而将…...
福州外贸网站制作/精准营销包括哪几个方面
《迷你世界》作为一款功能强大的沙盒游戏,有着高度的自由性,鼓励玩家们进行创造。同时也因为玩法奇特,有着卡通的画风,人物形象可爱精美,游戏当中的道具和方块颜色鲜艳,给玩家们带来了很好的游戏体验。所以…...
建一个全部由自己控制的网站需要多少钱/谷歌搜索引擎下载
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1、世纪末星期 题目描述 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。 还有人称今后的某个世纪末的12月31日,如果是星期一则会… 有趣的是,任…...
wordpress插件设置/系统优化助手
为什么80%的码农都做不了架构师?>>> 今天心情比较好,就把自己的思想、理解画个比喻图什么的,给大家分享分享,觉得有些收获,就帮我点一下推荐,觉得无聊,就不看内容,看看图…...