相机、视场和景深
2022/5/31 23:21:15
本文主要是介绍相机、视场和景深,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Cameras, Lenses and Light Fields(lecture 19)
内容:- Cameras
- 针孔相机的成像
- 视场 Field of View(FOV)
- 曝光(度) Exopsure
- Thin Lens Approximation
- Ray Tracing IDEAL Thin Lenses
- Depth of Field
图形学的两种成像方法:光栅化,光线追踪。当然这两种方法都是合成的方法,自然界并不存在。我们也可以通过捕捉方法进行成像,所谓的捕捉方法,即将自然界中真实的东西变成照片,最简单的捕捉成像方法就是相机。
Cameras
早期的相机研究是从小孔成像开始的,利用小孔成像原理与传感器(sensor)结合,最终就能得到一张相片。利用小孔成像原理的相机即pinhole camera
快门Shutter,能控制光在多长时间内(通常是多少多少分之一秒内)进入相机的部件。
传感器Sensor,光进入相机后捕捉光线并记录光线,且记录的是irradiance(没有方向性的),同时目前也在研究一些能记录方向性的光的传感器。
针孔相机的成像
早在公元前,就发现了小孔成像的原理,利用小孔成像原理的针孔相机拍出来的相片是没有深度可言的,各个地方都是清楚的,看不到虚化的地方。光线追踪用的就是Pinhole Camera的模型。
视场 Field of View(FOV)
所谓的视场,通俗上理解就是能看到多大的范围(类似广角等概念)
进一步,考虑相机的内部结果,利用小孔成像的原理,发现焦距与传感器大小会影响视场,当然,对于小孔成像并没有焦距的概念,仅仅是定义,利用内部设计去寻找影响FOV的因素(利用三角形的相似关系)。
通常在定义视场的时候,通常是以35mm的胶片为基准,通过定义焦距来定义FOV, 对于手机,胶片会有所改变。手机的参数是等效到35mm的胶片而言的。
控制变量,当焦距不变时,传感器的大小也会影响视场。
一般来说,都是控制传感器大小不变,用焦距去衡量视场。
通常情况下,不区分传感器与胶片。
但是在渲染中,传感器负责记录收到的irradiance,胶片负责存什么样的格式。
曝光(度) Exopsure
定义成H,H=T×E,进来多少光在时间上的累计,也就是能量的累计。
决定曝光的两个因素,T,E,T在相机中通过快门控制。E可以由光圈(aperture)、传感器控制。
曝光体现是能量的积累,直观的反映就是亮度,那么影响最后照片的亮度因素:
- 光圈的大小(仿照人的瞳孔),F数来表示
- 快门
- 感光度(ISO gain)
- 可以理解为线性的后期处理对应的能量,对应到信号中,ISO只是简单的放大信号,同时也会放大噪声。当用ISO使图片变亮时,对应的噪声也会变大。
光圈:
- 描述单位,F数,非正式理解,光圈直径的逆,F数越小,光圈越大
快门:
- 实际上,对于机械快门,它不可能在一个瞬间打开,会存在一个过程,这个过程的存在就会导致一些问题--运动模糊。
- 快门本身除了调节曝光度的效果,还有运动模糊现象。
- 在快门打开的这段时间内,物体以及发生了一些移动,移动的中间效果也被记录了下来,经过传感器取平均后,便出现了运动模糊。
- 在等长的快门打开时间内,物体运动速度越快,越容易出现运动模糊。
- 运动模糊不一定是个坏事,有运动模糊能够使人感到更加的动感。
- 运动模式也有一定的反走样效果。
- 如果是电子控制类的快门,确实可以做到瞬间打开,但是对于机械快门,一定有一段时间。
- 当物体的运动速度极快的时候,就会形成扭曲。
通常情况下,控制快门打开时间缩短,一定程度上可以减少运动模糊现象。
但是另一方面,快门打开时间的缩短也会导致整体的亮度降低,这时候一般通过调节光圈来提升总体的亮度,通常情况下不考虑IOS,因为它会同步的放大噪声。
大光圈会影响景深的问题,而快门又会影响到运动模糊。二者彼此制约。
应用:
- 高速摄影,每一秒要拍更多的照片,每一张照片对应的照片的快门时间会变小,又要考虑到曝光度,就要用更大的光圈,一般不考虑IOS,因为它会影响到噪声。
- 延时摄影:特别长的曝光时间对应小的光圈,记录的就是运动模糊。(在摄影界中俗称"拉丝")
Thin Lens Approximation
讨论相机的这么多结构的中心目的就是建立一个模型,从而渲染一些对应的图片。
对于很多相机,它们的镜头都十分复杂,包含着透镜组。
我们希望去近似建立一种理想化的薄透镜,即使实际上可能并不是这种透镜。(图形学本身就极难做到与真实完全一致,很多时候都是通过一些手段去"欺骗"眼睛)
通常考虑的透镜模型:
平行光聚集光到某个交点,过交点最后变成平行光。此外,我们认为透镜的焦距是可以变化的(实际上相机中的透镜组作用也在于此)。
默认的透镜一些物理性质,以及物距,像距,焦距之间的关系(利用光路之间的相似三角形之间关系)。
对于固定焦距的透镜,物距改变,像距也一定改变。
为了解释模糊,引Circle of Confusion(CoC)
实际上,在物体成像的点和最终的胶片(传感器)之间有一段距离,考虑光线仍会继续传播,导致最终在传感器上并不是一个“锐利的点”,从而产生了模糊。
利用相似三角形的关系,在考虑传感器和实际成像的地方距离不变的情况下,COC的大小与透镜的大小是成正比的。
- 通常情况下,透镜与光圈是不一样的,但是我们在此近似将透镜理解为光圈,实际上,二者的工作机理决定了确实能够这样近似。
光圈数值越大,意味着什么?
实际上,F数的定义是焦距除以光圈的直径,但是总之是定义光圈大小的。
进一步修改COC的公式发现,发现COC也与F数即N有关。
F数越小,光圈越大,导致的CoC越大,最终使得图片看起来更加模糊。
Ray Tracing IDEAL Thin Lenses
利用薄透镜进行渲染:
之前的渲染都是基于小孔成像的模型,在假设透镜的模型后,便可以渲染出模糊的效果(利用棱镜公式计算折射光线方向,记录对应的能量)
Depth of Field
大光圈对应大的CoC,所以会更加模糊,但是总归在一些地方如焦平面(focal plane)是不模糊的,进一步,大光圈或者小光圈会影响到模糊的范围。
CoC越小,模糊的程度就越低。
因此我们认为,实际的场景中是有一段深度的,这段深度经过透镜之后会在成像平面的附近形成一段区域,在这段区域内,我们认为CoC是足够小的,也就是清晰的,也就是焦点在某个范围内中会呈现一个比较清晰的图形的距离,我们认为是这就是景深。
reference:
[1] GAMES101-现代计算机图形学入门-闫令琪
这篇关于相机、视场和景深的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南