光场 Light Field /Lumigraph
全光函数 The Plenoptic Function
用来描述人可以看到什么
把每个看到的东西参数化
经纬度的观察角、光波颜色、时间t
这些构成了电影。(在某个固定时刻往固定角度看到固定的颜色)
再加入xyz的坐标,这就是全息世界
不仅可以看到,还可以改变位置
在任何位置,任何时间看向任何位置得到颜色/东西
采样全光函数 Sampling Plenoptic Function
光场
是全光函数的一个小部分
他需要的是二维的位置(包围盒的uv)和二维的方向(两个平面上的点确定一个方向 st)
所以光场是4维的
对于一个物体,给予一个包围盒,然后记录每个点往任意方向看到的光
就是这个物体的光场
这样定义我们就不需要知道包围盒里面的物体长啥样。
查询过程就像我们人在屋子里从窗口往外看,只需要知道窗口平面的光线信息
原理就是:光路是可逆的,我们知道了包围盒任意一点往任意方向的光线,就知道从任意位置看往包围盒任意一点的光线。
如何使用呢
当摄像机放在紫色点的时候就可以查询光路所在光场中的信息
uv 平面和 st 平面
我们记录的光场相当于就是st上取一个点,uv上取一个点然后连接成为一条光线记录 物体在uv平面左边 , 整个世界在st平面的右边
如果从uv上取一个点,看向所有的st平面点
这就相当于针孔摄像机,我们物体的所有光线都穿过这个孔被记录下来,看到了完整的物体
切换uv平面的点就是切换摄像机的摆放位置,得到的就是不同角度看到的物体
如果从st平面取一个点,看向所有的uv
记录了同一个物体,不同方向是什么
打到st一个像素上,来自uv不同方向的光是什么。
或者说,从uv上取所有点看向st上一个点,每一个uv点贡献的值是什么。
这就是把相机拍摄到的irradiance展开为不同方向的radiance
光场摄像机
光场摄像机,就是记录了所有到达这个位置的光线信息
可以理解为
- 普通摄像机,st平面就是感光元器件上,一个像素就是一个值(上图uv的平均)
- 广场摄像机,st平面每个像素格子都是一个透镜,把光的各个方向信息记录在右边的感光元器件上的子像素上,一个像素格子是很多值(上图uv)。
微透镜原理
把原来放置感光元器件的一个像素的地方替换成一个透镜,然后再在后面放置感光元器件,这样就让每个像素记录的不是irradiance 而是radiance,因为透镜组让每个像素也记录了光的方向信息。
这样我们看一个像素的时候,看的是它的某一个方向的光线。
原本要记录一个像素,现在要记录一块像素,所以分辨率也就降低了
任何一个光场像素圆的内部
- 平均起来就是一般相机的结果
- 每个子像素记录的就是不同方向的光线的信息
问题
- 低分辨率
- 高造价
作用
支持后期重新聚焦,调整光圈大小,调整焦距等
虚拟移动相机的位置
取不同方向的光线,就像是移动了相机的位置
同理,动态聚焦
Color
What is color
牛顿通过棱镜法线,白光可以被分成不同的颜色
分解了的颜色合到一起又可以合成白色
颜色是一个混合出来的结果
可见光谱 Visible Spectrum of Light
光谱就是光线的能量在不同波长上的分布
400-700nm 从紫外到红外(能量越来越低)
E=hc/λ = hf
- E为能量,单位为kJ;
- h为普朗克常量,单位为h=6.62606896(33)×10^(-34) J·s或者h=4.13566743(35)×10^(-15) eV·s;
- c为光速,单位为c=3.153×10^8m/s;
- λ为波长,单位为μm.
普功率密度 SPD Spectral Power Distribution
通过SPD描述光在不同波长上的强度。
不同光的SPD不同,具有线性性质什么是颜色 - 感知
颜色是人的感知 human perception 不是物理上的东西,跟人有关。Color perception
人眼结构 Anatomy of the human eye
人眼就是一个摄像机,通过肌肉来拖拽晶状体来改变焦距
视网膜是感知元器件
感光器官 Retinal Photoreceptor Cells
Rods 视杆细胞,最多,只感受强度
Cones 视锥细胞,少量,感受颜色
- S-Cone 蓝
- M-Cone 绿
- L-Cone 红
三类视锥细胞对应的波长响应不同,其实就是蓝绿红光(我有点理解为什么OpenCV要默认用BGR了)
但是不同人这三种细胞的分布是很不一样的,有很严重的个体差异
颜色是人感知的结果
SML数值
把响应曲线和给定光的SPD相乘(蒙版)做一个积分得到三种颜色值
人们最终看到的是SML三个数,看不到光谱
同色异谱 Metamerism
看起来相同(SML数值相同),但是光谱(SPD)不同
这意味着给定一个颜色就可以用不同光去混合它
Color reproduction / matching
加色系统 Additive Color
减色系统
画画和打印是减色系统
颜色匹配过程
给定一个颜色,可以用其他三个颜色去混合得到,混合系数可能是负的
由此得到一种颜色系统叫做:
CIE RGB Color Matching
一个CIE组织规定的三原色,就是单色激光。
然后用着三种混合出得到某一个波长上的颜色,然后得到一个颜色匹配函数:
这样发现,有些颜色确实得是负的
要得到任何一个spd的光,就要乘上颜色匹配函数,并积分
这个RGB系统非常像人眼的SML系统
:::info
其实可以理解这个
- 颜色匹配函数~~响应函数
-
Color space
Standard Color Space
Standardized RGB (sRGB) 标准RGB
找某一台机器,知道它的RGB
- 其他机器就按照这个方法制造
A Universal Color Space : CIE XYZ
这不是试验测得的颜色匹配系统,而是人造的,先定义了颜色匹配的曲线
因为Y比较均匀,覆盖范围也很大,所以Y一定程度能表示亮度
所以,归一化XYZ,这样就消去了z,因为z = 1-x-y
为了现实x和y,其自变量中还是需要固定一个Y值(因为Y只改变亮度),就能得到一个可视化的色域 Gamut
色域 CIE Chromaticity Diagram
不同颜色空间的色域 Gamut
其他颜色空间
HSV色彩空间 Hue-Saturation-Value
色调,饱和度,亮度
CIRLAB Space (Lab)
跟人的感知相关(决定了什么是互补色,哪两个颜色放到对面)
互补色是可以体现在人的视觉拮抗/视觉停留
其他补充
HDR 高动态范围
Gamma矫正
Bloom辉光
人对于颜色的其他感知特性
Wolfe - Sensation & Perception
颜色强度是相对的
AB其实是一样亮的