图形学笔记(十七)相机,棱镜 ——FOV、焦距、曝光、F-Stop、ISO、薄透镜公式、Circle of Confusion Size、景深、理想薄透镜光线追踪
全光函数是我们能看到的所有物体的集合。
P ( θ , ϕ , λ , t ) P(\theta,\phi,\lambda,t) P(θ,ϕ,λ,t) movie(加入了时间t)
P ( θ , ϕ , λ , t , V x , V y , V z ) P(\theta,\phi,\lambda,t,V_x,V_y,V_z) P(θ,ϕ,λ,t,Vx,Vy,Vz) Holographic movie(可以改变自己的位置从另外的-角度看世界。)
对于 P ( θ , ϕ , λ , t , V x , V y , V z ) P(\theta,\phi,\lambda,t,V_x,V_y,V_z) P(θ,ϕ,λ,t,Vx,Vy,Vz) 不把这个函数当成全息电影,而是把它表示成一个函数,这个函数可以表示在任何地方,任何方向,任何时间看到的东西的颜色,这个函数就是全光函数(整个世界是个七个维度的函数)。
Plenoptic Function的例子(俯视图)。
光场就是全光函数的一部分。
光线具有起点和方向,定义为 P ( θ , ϕ , V x , V y , V z ) P(\theta,\phi,V_x,V_y,V_z) P(θ,ϕ,Vx,Vy,Vz)。
它是一个5D表示的,包含3D的position和2D的direction。
另一种定义方式:两个点定义一条光线。
它是4D表示的,包含2D的direction和2D的position。
想要描述一个物体的视觉信息,只要找出它的包围盒,并记录包围盒表面任意一点向任意方向的发光情况即可。光场就是在任何一个位置往任何一个方向去的光照强度。
有了光场后,从任意位置都可以看向这个物体,有了视点和看向的方向,查询4D的函数就可以查询到记录的值。
有了包围盒之后,就可以忽略光场内部的细节,只要记录包围盒表面的任何位置任何方向的光照信息即可。
可以用S和
θ
\theta
θ得到任意一条光线。
也可以定义两个相互平行的平面,只要连接两个点就可以确定唯一的一条光线。
如下图是参数化表示方法,找到所有uv和st的对应关系,便可以定义任意一条光线。
下面假设整个世界在st的右边。
固定uv平面的任意的点向st平面去看,得到的就相当于在这个点放一个摄像机得到的图像。
固定st平面的任意的点向uv平面去看,得到的就是同一个物体在不同方向上所得到结果。
Lytro Light Field Camera
原理:微透镜——把像素替换成透镜,让透镜把来自于不同方向的光分开然后记录下来。
功能:支持后期的重新聚焦。
光场照相机原理理解 把来自不同方向的光记录下来。
还原普通照片的方法:对于每个透镜都选择每一“块”的最底部的像素。
有了光场之后,可以虚拟移动相机的位置(重新聚焦也是一样的道理)。
总结 光场相机能实现虚拟移动相机位置,改变聚焦等功能。
光场相机特点 光场摄像机记录了所有的光场信息。
光场相机的问题
颜色是人的感知,他不是光的自然属性。不同波长的光不是“颜色”。
颜色是感知出来的,它是相对的。
可见光波长分布在400-700nm之间。
SPD是光线不同波长的光强分布是多少,如下图所示蓝天能量集中在波长低的部分,日光波长越高能量越大。
普功率密度是度量光的重要属性。
Spectral Power Distribution 具有线性性质,即可以叠加。
人的眼睛是摄像机,瞳孔是光圈,晶状体是透镜(通过肌肉伸缩来控制焦距),视网膜是传感器。
视网膜具有感光细胞(Retinel Photoreceptor Cells):棒状和锥形细胞(Rods and Cones )
Rods(棒状细胞):感知光的强度,可以得到灰度图。~120 million
Cones(锥形细胞):感知光的颜色。~6-7 million
由于三种类型的细胞对于波长的反应不同,Cones可以进一步划分为三类:S-Cone,M-Cone,L-Cone。
不同人的感光细胞分布不同,如下所示。
以下是人类锥形细胞的相应曲线,SML是人类最终看到的结果(只是一个数,不是光谱而是积分的结果)。
每一个光的波长信息不能被人眼测量和大脑接收。
眼睛值看到了三个response values(S,M,L),并着是大脑唯一可获取的信息。
Metamerism是不同的光谱spectra( ∞ − d i m \infty-dim ∞−dim)会映射到相同(S,M,L)的响应。
Metamerism 对颜色reproduction很重要。
如下图不同的光谱经过了积分得到了相同的结果,所以混合出来的光谱可以和原光谱完全不同。
给定一组主要的光,每个光都有自己的光谱分布(例如使用RGB显示像素)。
s
R
(
λ
)
,
s
G
(
λ
)
,
s
B
(
λ
)
s_R(\lambda),s_G(\lambda),s_B(\lambda)
sR(λ),sG(λ),sB(λ)
调整这些光的亮度并把它们加在一起。
R
s
R
(
λ
)
,
G
s
G
(
λ
)
,
B
s
B
(
λ
)
Rs_R(\lambda),Gs_G(\lambda),Bs_B(\lambda)
RsR(λ),GsG(λ),BsB(λ)
颜色最后被标量(R,G,B)描述。
eg1:给定一个颜色,然后用三种颜色混合匹配得到相同的颜色。
eg2:左边的颜色无法通过右边的颜色混合获得。
做法:把左边需要混合的颜色加一个颜色,相当于右边减颜色,就可以得到相同的颜色(线性性质)。
CIE RGB Color Matching Function
下图图显示每个CIE RGB主要(primary)光匹配x轴上给定波长的单色光需要混合的量。(注意有负的结果)。
对于任何一个光谱s,感知到的光被下面的公式匹配(缩放CIE RGB原色)。
RGB颜色空间一般称为Standardized RGB(sRGB)
Gamut 是被一个原色集生成的所有色度(chromaticities)。
不同的颜色空间表示不同范围的颜色,具有不同的色域(gamut),即它们覆盖charomaticities的不同区域。
下图是不同Gamut对应的颜色空间。
CIE是人造的颜色匹配系统。
首先设定标准颜色原色组X,Y,Z。
这个系统设计成匹配函数严格为正,覆盖所有可见光的范围。
对X,Y,Z做归一化,得到x,y,z。
因为x+y+z=1所以只需要它们中的两个就可以表示颜色。最后固定Y,可视化x、y,得到图像(Y只是亮度)。
上图也成为色域,白色是最不纯的颜色。
HSV常见于颜色拾取器中(PS中常见)。
选择不同的色调Hue和饱和度Saturation和亮度Brightness(有事也作Value)
CIELAB Space是与感知有关的色彩空间。
以上一个轴上的颜色是在人类感知上是互补色(比如直觉上红色和绿色无法混合)。
Subtractive color model:混合的越多就越暗。
青色Cyan、洋红Magenta、黄色Yellow和黑色,并(Key Widely)广泛用于打印。
有黑色是因为黑色便宜,有了黑色就不需要直接用其他三种颜色混合。