IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 3D Viewing: the Pinhole Camera Model(翻译) -> 正文阅读

[人工智能]3D Viewing: the Pinhole Camera Model(翻译)

目录

What Will You Learn in this Lesson?

Camera Obscura: How is an Image Formed?

How Does Real Camera Work?

?Pinhole Cameras


Keywords: camera, pinhole camera, perspective projection, circle of confusion, film back, resolution gate, film gate, focal length, depth of field, field of view, image plane, zoom, focal distance, angle of view, aspect ratio, anamorphic, format, aperture, image size, resolution.

What Will You Learn in this Lesson?

在上一课中,我们了解了生成图像过程中涉及的一些关键概念,但是我们并没有专门讨论相机。 3D 渲染不仅仅是通过透视投影产生逼真的图像。它还涉及能够提供类似于现实世界相机的图像。为什么?因为当 CG 图像与实景镜头相结合时,渲染器提供的图像需要与制作该镜头的摄像机提供的图像相匹配。在本课中,我们将开发一个相机模型,允许我们模拟真实相机产生的结果(我们将使用真实世界的参数来设置相机)。为此,我们将首先开始回顾胶片相机和摄影机的工作原理。

进一步来说。我们将在本课中展示如何实现与 Maya 和大多数(如果不是全部)3D 应用程序(例如 Houdini、3DS Max、Blender 等)中使用的相机模型类似的相机模型。我们将展示您可以在相机上找到的每个控件对最终图像的影响,以及如何在 CG 中模拟这些控件。本课将回答您对 CG 相机可能有的所有问题,例如胶片光圈参数的作用以及焦距参数与视角参数的关系。

虽然用真实世界的相机生成图像的过程中涉及的光学定律很简单,但它们很难在 CG 中重现,不是因为它们模拟起来很复杂,而是因为它们本质上并且可能非常昂贵的模拟。希望虽然您不需要非常复杂的相机来生成图像。事实上,情况恰恰相反。您可以使用一种非常简单的成像设备(称为针孔相机)拍照,它只是一个盒子,一侧有一个小孔,另一侧有胶卷。由针孔相机生成的图像比使用更复杂的相机生成的图像更容易再现(且成本更低),因此,针孔相机实际上是大多数(如果不是全部)3D 应用程序和视频游戏使用的模型。让我们开始回顾这些相机在现实世界中是如何工作的,并从那里建立一个数学模型。

在进入透视投影矩阵的主题之前,最好先了解针孔相机模型,它是 CG 中最常用的相机模型,该主题重用了我们将在本课中学习的camera angle of view, the clipping planes等

Camera Obscura: How is an Image Formed?

我们在计算机图形学中使用的大多数算法都会模拟现实世界中事物的运作方式。 对于创建计算机图形图像的过程至关重要的虚拟相机尤其如此。 在真实相机中创建图像实际上很容易用计算机重现。 它主要依赖于模拟光在空间中传播的方式并与包括相机镜头在内的物体相互作用。 光与物质的相互作用过程非常复杂,但光学定律相对简单,可以很容易地在计算机程序中进行模拟。 摄影原理有两个主要部分:

  • 将图像存储在胶片上或文件中的过程。
  • 在相机中实际创建此图像的过程。

?

在计算机图形学中,我们不需要物理支持来存储图像,因此不需要模拟传统胶片摄影中使用的光化学过程(除非像 Maxwell 渲染器一样,您想提供逼真的相机模型,但这不是使基本模型工作所必需的)。
现在让我们谈谈摄影过程的第二部分:如何在相机中形成图像。图像创建过程的基本原理实际上非常简单,并在 20 世纪初出版的这张插图的复制品中有所体现(图 1)。在图 1 的设置中,第一个表面(红色)阻止光线到达第二个表面(绿色)。然而,如果你打一个小孔(针孔),光线可以在一个点穿过第一个表面,这样做,在另一侧形成蜡烛的(倒置)图像(如果你沿着路径走的话)从蜡烛到投影蜡烛图像的表面的光线,您可以看到图像的几何构造)。实际上,蜡烛的图像将很难看到,因为蜡烛实际通过 B 点发出的光量与蜡烛本身发出的总光量相比确实非常小(仅是蜡烛的一小部分)。由火焰发出或从蜡烛反射的光线将穿过孔)。

camera obscura?(拉丁语中的意思是暗室)的工作原理完全相同。它是一个不透光的盒子或房间,内部为黑色(以防止光线反射),一端中央有一个小孔(图 2)。穿过孔的光线在盒子的另一侧形成了外景的倒影。这个简单的设备导致了照相机的发展。您可以将自己的房间完美地转换为暗箱。

?要感知墙壁上的投影图像,您的眼睛首先需要适应房间的黑暗,并且要在相机上捕捉效果,需要较长的曝光时间(从几秒到半分钟)。 要将暗箱变成针孔相机,您只需在针孔对面的面上放一张胶卷。 如果您等待足够长的时间(并保持相机完全静止),光线会改变胶片上的化学物质,并且随着时间的推移会形成潜像。 数码相机的原理是相同的,但胶片被一个将光转化为电荷的传感器所取代。

How Does Real Camera Work?

在真实相机中,当光线落在对光线敏感的表面上时会创建图像(请注意,这实际上也适用于眼睛)。对于胶片相机,这是胶片的表面,对于数码相机,这是传感器(或 CCD)的表面。其中一些概念已在光线追踪简介课程中进行了解释,但我们将在此处简要地再次解释它们。

在现实世界中,光来自各种光源(最重要的是太阳)。当光线照射到物体上时,它可以被吸收或反射回场景中。这种现象在专门介绍光-物质相互作用的课程中详细解释,您可以在计算机图形的数学和物理部分找到。当您拍照时,一些反射光(以光子包的形式)沿相机方向传播并穿过针孔,在胶片或数码相机传感器上形成清晰的图像。我们在图 3 中说明了这个过程。

可以在 Internet 上找到许多有关摄影胶片工作原理的文件。 让我们提一下,暴露在光线下的胶片通常不会直接产生可见图像。 它会产生我们所说的潜影(肉眼不可见),我们需要在暗室中用一些化学物质处理胶片以使其可见。

如果您将一次性相机的后门拆下并用半透明塑料片代替,您应该能够看到通常投射到胶片上的倒置图像(如下图所示)

?Pinhole Cameras

我们在现实世界中可以找到的最简单的相机类型是针孔相机。它是一个简单的防光盒,正面有一个很小的孔,也称为光圈,在盒内面向这个针孔的一侧放置了一些感光胶片纸。当你想拍照时,你只需打开光圈让胶卷曝光(为了防止光线进入盒子,你在针孔上放了一块不透明的胶带,你取下拍照,然后再放回去) .
针孔相机的原理很简单。场景中的物体会向各个方向反射光线。光圈的大小非常小,以至于在场景中物体表面上的一个点 P 处反射的许多光线中,只有其中一条光线进入相机(实际上它永远不会恰好是一条光线,但是更像是一束光线或光子组成一束非常窄的光束)。在图 3 中,我们可以看到在 P 处反射的许多光线中的单一光线如何穿过孔径。在图 4 中,我们对其中的 6 条光线进行了着色,以便更轻松地跟踪它们到胶片平面的路径;通过跟随这些光线再次注意它们如何形成旋转了 180 度的物体的图像。在几何学中,针孔也称为投影中心;进入相机的所有光线会聚到这一点并从另一侧发散。

总而言之:撞击物体的光线在场景中以随机方向反射回来,但只有这些光线中的一个(或者更确切地说是沿着同一方向传播的一束光线)进入相机并在一个点上撞击胶片。场景中的每个点都对应于电影上的一个点。

?在上面的解释中,我们使用点的概念来描述物体表面局部发生的事情(以及薄膜表面局部发生的事情),但是请记住,物体表面是连续的(至少在 宏观层面),因此这些物体在胶片表面上的图像也表现为连续的。
我们简单说的点,其实就是物体表面的一小块区域,或者薄膜表面的一小块区域。 最好将所涉及的过程描述为表面(物体的发射表面和我们的示例中的接收表面或薄膜)之间的光能交换,但为了简化起见,我们将这些小表面视为点 现在。

光圈的大小很重要。为了获得相当清晰的图像,物体表面上的每个点(或小区域)都需要表示为胶片上的一个点(另一个小区域)。如前所述,穿过孔洞的并不是一条射线,而是一系列方向锥内包含的一小部分射线。该锥体的角度(或更准确地说是它的角直径)取决于孔的大小,如图 6 所示。

?

图 7:针孔越小,图像越清晰。当光圈太大时,图像会变得模糊。

图 8:当您拍摄明亮的小物体(例如暗背景上的光线充足)时,模糊圈会更加明显。


针孔越小,锥体越小,图像越清晰。然而,较小的针孔需要较长的曝光时间,因为随着孔变小,穿过孔并照射到薄膜表面的光量减少。在相纸表面形成图像需要一定量的光,因此它接收的光越少,曝光时间越长。对于 CG 相机来说这不是问题,但对于真正的针孔相机来说,如果相机不是完全静止或场景中的物体移动,较长的曝光时间会增加产生模糊图像的风险。一般来说,曝光时间越短越好。但是针孔的大小是有限制的。当它变得非常小时(当孔的大小与光的波长大致相同时),光线会发生衍射,这也不好。对于鞋盒大小的针孔相机,直径约 2 毫米的针孔应能产生最佳效果(图像对焦和曝光时间之间的良好折衷)。请注意,当光圈太大时(图 5 底部),如果继续使用点或离散线的概念来表示光线(例如图 5 中的点 A 或 B),图像上的单个点会在图像上多次出现图片。可视化特定情况下发生的情况的更准确方法是想象锥体的足迹在胶片上重叠(图 6 底部)。随着针孔尺寸的增加,锥体变得更大并且重叠量增加。一个点在图像中多次出现的事实(以锥体的足迹或斑点在胶片上变大的形式,您可以看到光线原点处物体的颜色散布在胶片的表面上)在更大的区域上拍摄,而不是像理论上应该的那样显示为奇异点)是导致图像模糊(或失焦)的原因。在摄影中,当您在黑暗背景下拍摄非常小而明亮的物体(例如夜晚的仙女灯)时,这种效果会更加明显(图 8)。因为它们很小并且通常彼此间隔开,所以它们在图片上产生的圆盘(当相机的孔太大时)清晰可见。在摄影中,这些圆盘(它们的形状并不总是完美的圆形,但解释了为什么不在本课程的范围内)被称为混淆圆或混淆圆盘、模糊圆、模糊点等(图 8)。

?为了更好地理解图像形成过程,我们创建了两个简短的动画,显示来自两个磁盘的光线穿过相机的针孔。在第一个动画(图 9)中,针孔很小,圆盘的图像很清晰,因为物体上的每个点都对应于胶片上的一个点。

?

第二个动画(图 10)显示了当针孔太大时会发生什么。在这种特殊情况下,对象上的每个点都对应于胶片上的多个点。结果是磁盘的模糊图像。

图 10:当孔径或针孔太大时,几何图形中的一个点会出现在胶片平面上的多个位置,从而导致图像模糊。
总之,为了产生清晰的图像,我们需要使针孔相机的光圈尽可能小,以确保只有来自一个方向的窄光束光子进入相机并在一个点上撞击胶片或传感器(或尽可能小的表面)。理想的针孔相机的孔径非常小,以至于场景中的每个点只有一条光线进入相机。尽管出于我们已经解释过的原因(当孔变得太小,光线会被衍射),这样的相机不能在现实世界中建造,但它可以在计算机的虚拟世界中(其中光线不受衍射影响) )。请注意,渲染器使用理想的针孔相机生成 3D 场景图像,输出完美清晰的图像
在摄影中,术语景深定义了离场景最近和最远物体之间的距离,在图像中显得“相当”清晰。针孔相机具有无限的景深。换句话说,物体的清晰度不取决于它与相机的距离(假设针孔本身具有适合相机尺寸的直径)。这通常不是用镜头相机拍摄的照片的情况。计算机图形图像大部分时间是使用针孔相机模型生成的,与现实世界的针孔相机类似,它们具有无限的景深;尽管相机渲染得非常清晰,但场景中的所有物体都可见。计算机生成的图像有时被批评为非常干净和清晰。这种相机型号的使用肯定与它有很大关系。然而,景深可以很容易地模拟,本节的一课专门针对这个主题 [链接]。

针孔非常小时,可以通过光圈的光线非常少,需要很长的曝光时间。如果您希望生成运动物体的清晰图像或在低光照条件下,这是一个限制。当然,光圈越大,进入相机的光线就越多,但如前所述,这也会产生模糊的图像解决方案是在光圈前放置一个透镜,将光线聚焦回胶片平面上的一个点,如相邻图所示。

本课只是对针孔相机的介绍,并没有对相机的工作原理和镜头在摄影中的作用进行彻底的解释。有关此主题的更多信息,请参见本节专门介绍景深 [链接] 主题的课程。但是,请注意,如果您尝试将针孔相机和现代相机的工作原理联系起来,重要的是要知道镜头用于使光圈尽可能大,从而让更多的光线进入相机从而减少曝光时间。镜头的作用是通过将物体表面反射的光线重新聚焦到胶片上的单个点来消除如果我们使用具有大光圈的针孔相机所获得的图像的模糊外观。通过将大光圈和镜头两者结合起来,我们可以充分利用两个系统、更短的曝光时间和清晰的图像(然而镜头的使用会引入景深,但正如我们之前提到的,这不会被研究或解释)在本课中)。不过,针孔相机的伟大之处在于它们不需要镜头,因此构建起来非常简单,并且在计算机图形中也非常容易模拟。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-11-23 12:20:39  更:2021-11-23 12:23:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 4:34:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码