GAMES101 学习20——颜色、光场

举报
lutianfei 发表于 2022/05/16 15:40:45 2022/05/16
【摘要】 一、光场(light Field or Lumigraph) 1.1 我们看到的世界 1.2 全光函数(描述我们可以看到什么)从简单说:站在一个场景,位置固定,我们往四面八方看,定义任意一个方向改进:引入波长(颜色) → 彩色拓展:时间t → 电影再拓展:位置不固定,在三维空间内任意移动 VX VY VZ → 全息电影再改进:把函数理解为在任意位置,往任意方向看,在任意时间看到...

一、光场(light Field or Lumigraph)

我们看到这个三维世界,在我们眼睛里类似就是一幅二维的图 ,那如果我们直接看到一幅图,这幅图完全记录了之前看到的光线信息,我们也能得到同样的结果(类似虚拟现实设备的应用)
image.png

1.1 全光函数(The Plenoptic Function)

全光函数可以描述我们可以看到的所有事物的集合 The Plenoptic Function

  • 从最简单的全光函数开始,我们假设在一个场景中,位置固定,可以四面八方地去看,则用极坐标可以定义我们的方向,全光函数描述了向某个方向看会看到什么样的值
    image.png

  • 引入波长,我们可以看到一个彩色的世界
    image.png

  • 引入时间,可以得到类似电影的概念
    image.png

  • 进一步扩展,位置不固定,我们可以在三维空间中任意移动,可以得到类似于全息电影的概念
    image.png

  • 我们还可以把它理解为在任何位置,往任何方向看,在任何时间看到的颜色,这就是我们能看到的所有东西,这个七个维度的函数就是全光函数
    image.png

1.2 采样全光函数 Sampling Plenoptic Function

我们可以从全光函数中提取一部分信息出来,表示更复杂的光的信息,这个概念比在一个点各个方向的光信息更多,也就是光场的概念。

  • 首先来定义光线:
    image.png

  • 其实光线可以由两个点确定一条直线来确定方向,因此其实只需要二维的位置和二维的方向就能表示
    image.png

  • 要记录一个物体向四周展示的样子,只需要记录包围盒上表面各个点往各个方向发射的光线的信息,也就是记录了其光场信息:在物体表面任何一个位置去向任何一个方向的光线强度
    image.png

怎么理解二维的位置与二维的方向呢?
物体的表面是二维的,方向也是二维的,所以用这个四个信息当变量的函数就是光场

  • 记录下物体的光场后,就可以根据摄像机的位置查询其相应的光线强度
    image.png

  • 我们还可以理解成我们取一个平面,平面右边是一个物体,它的光会穿过这个平面来到左边,我们不需要知道右边有什么,我们只需要知道对于平面上任意一个点的任意一个方向会发出什么
    image.png

  • 我们可以通过定义一个平面上点和角度,也可以定义两个平面上的点,通过两个坐标信息来表示,这是一个经典的参数化表示的方法
    用两个平面来定义光场,便于降维也就是从上面的 位置+方向 变成 位置+位置 两个平面两点一连就得到一个光线
    image.png

  • 这样参数化有两种理解方式

    • a. 一种是固定 ( u , v ) (u,v) , 所有的 ( s , t ) (s,t) 组成一张图,也就是从(u,v)点看到的外部世界的样子
    • b. 另一种是固定 ( s , t ) (s,t) , 所有的 ( u , v ) (u,v) 组成一张图,也就是显示从不同方向看同一个点的样子
      image.png
  • Irradiance指某一微小平面所接受到的光线亮度

  • radiance衡量的是一条传播光线所具有的亮度(不受传播方向影响而改变)

  • 现实中也有人用第一种方式记录光场
    相当于不同的位置(u, v),拍摄同一张图(s,t)
    image.png

  • 自然界中苍蝇的复眼就是类似于第二种理解
    我们在照片中任意一个像素记录的是irradiance,不区分方向,但是对于复眼来说,它们记录的分光之后的分量,也就是记录的是radiance
    image.png

1.3 光场camera

  • 微透镜原理:把一个pixel替换成透镜,可以把来自于不同方向的光分开再记录下来
    支持后期聚焦(可以先拍照再调焦)
    光场camera的原理:(其实就是光场的原理)
    image.png

  • 光场照相机的图怎么还原成普通相机呢?
    我们把分散的光,每个透镜都选一条,然后把得到的结果都记录在一个像素的结果上,现在一个透镜就对应一个值了,和之前一样
    选光线的步骤就相当于是重新聚焦,虚拟地移动相机的位置
    我们不涉及重新聚焦具体怎么做,只介绍思想,我们从四维光场中按需查询选取光线
    image.png

  • 光场照相机的问题:
    分辨率不足,因为原来一个位置可能只需要一个像素,但是透镜把光分开以后,可能会需要好几个像素来记录不同方向的光,同样的胶片尺寸下,光场相机的分辨率不足
    高成本、难设计
    再次体现trade-offs

二、颜色

2.1 牛顿的实验

在早期通过牛顿的实验,发现太阳光可以被棱镜分解成不同颜色,这说明白光是多种颜色的光混合出来的
光谱是光线在不同波长上的分布,在图形学中我们主要关心可见光光谱(波长大约在400nm到700nm) The Visible Spectrum of Light
image.png

  • 谱功率密度 Spectral Power Distribution (SPD)可以用来描述光线在不同的波长的分布

蓝天与日光谱功率密度的不同
image.png

不同光源谱功率密度的不同
image.png

  • 谱功率密度具有线性性质,两种光一起照射的谱功率密度与两种光分别照射的谱功率密度相同
    image.png

  • 什么是颜色?
    颜色是人类感知的一种现象;它不是光的一种根本的属性

  • 不同波长的光不是“颜色”

2.2 颜色的生物基础(Biological Basis of Color)

人的眼睛类似一个摄像机,晶状体类似透镜,视网膜类似于成像的地方
image.png

2.2.1 Tristimulus Theory of Color

  • 视网膜上有感光细胞
    • 视杆细胞(Rods cells):棒状,数量多,只感知光的强度而非颜色
    • 视锥细胞(Cones cells):锥形,数量少,用来感知颜色
      image.png
    • 视锥细胞又被分为S, M, L三种,用来感知不同波长的光
      image.png

有一个非常违背直觉的事情:不同的人这三种视锥细胞分布非常不同
image.png

  • 不同视锥细胞感知的结果 就是 其光谱响应曲线与光强曲线对应位置相乘再积分起来的结果
    image.png

  • 人眼无法测量,大脑也无法接收有关每种光波长的信息,眼睛只能”看到”三个响应值 ( S , M , L ) (S,M,L) 并最终由大脑接受
    image.png

2.2.2 同色异谱 Metamerism

  • 同色异谱是指两个不同的光谱,它们最终投射到相同的 ( S , M , L ) (S,M,L) 响应值
    • 同色异谱会导致人感知到相同的颜色,其存在对于色彩再现至关重要,这个过程也叫颜色匹配(Color Matching)过程
    • 同色异谱让我们不必重现真实世界场景的全部内容
    • 一个例子:同色异谱使得只有三种颜色的像素的显示器上可以再现真实场景的感知颜色,即使他们波谱完全不同,也能被人眼感知为相同的颜色。

image.png

2.3 颜色重建与匹配 Color Reproduction / Matching

  • 我们认为计算机中使用的成像系统是加色系统 Additive Color

    • 给定三种原色 s R ( X ) , s G ( X ) , s B ( X ) s _ { R } ( X ) , s _ { G } ( X ) , s _ { B } ( X )
    • 调整这些原色的强度,将他们混合在一起 R s R ( X ) + G s G ( X ) + B s B ( X ) R\, s _ { R } ( X ) + G\, s _ { G } ( X ) + B\, s _ { B } ( X )
    • 利用混合三种颜色的系数来描述颜色 R , G , B R , \,G ,\, B
  • 加色系统任何颜色都可以通过Color Matching Experiment用三原色混合合成
    image.png

  • 但是有的颜色怎么都混合不出来,这时候的系数可能是负的
    image.png

image.png

2.4 CIE RGB

  • CIE是一个组织,它们定义了RGB的系统,与之前的加色匹配设置相同,但原色和测试光都是单波长的光,通过测试来测量多少强度的三种原色加起来与测试光相同。
    image.png

  • 颜色匹配函数描述了每个 CIE RGB 原色光各自多少强度相加起来才能匹配 x 轴上给定波长的单色光。

  • 我们得到的是对应的是单一波长的光,但是现实的光线SPD是很多波长组合在一起的,所以在表示现实颜色时我们要把每一个波长都考虑进去,自然要使用积分表示
    image.png

2.5 色彩空间 Color Spaces

  • Standardized RGB (sRGB) 系统是一种被广泛运用于各种设备的色彩系统,但是RGB所能形成的色域是有限的 gamut is limited
  • CIE XYZ 系统不是实验得到的,而是人造的,这个系统我们使用XYZ表示颜色,并且由于绿色部分在轴上分布比较均匀,Y也表示亮度,与RGB的区别其实就是匹配函数的不同

image.png

  • 如果想要把XYZ系统表示的颜色都可视化显示出来,需要将这些三维的数表示成二维,要使用归一化,又由于Y表示亮度,我们可以将它固定下来,这样就可以得到了xy图,这就是色域

image.png

  • 由于是加色系统,其实这张图中间的白色部分是最不纯的颜色,曲线边界是单色
    image.png

  • 不同色彩空间所覆盖的色域范围也有所区别,它们能表示的颜色范围各不相同
    image.png

2.6 基于感知的色彩空间 Perceptually Organized Color Spaces

  • HSV色彩空间被广泛地运用于“颜色选择器”,很适合艺术家去使用 HSV Color Space (Hue-Saturation-Value)
    image.png

image.png

  • CIE还有一种Lab色彩空间
    • L为亮度、a表示红绿、b表示蓝黄,这个空间认为轴的两端都是互补色
    • 互补色是通过实验得到的,我们可以通过视觉暂留效果验证,比如先看一张反色的图,一段时间后换成空白,就能“看”到互补色
      image.png

2.7 CMYK减色系统

CMYK是一种减色系统 CMYK: A Subtractive Color Space

  • CMYK用的是靛蓝、品红、黄色、黑色 Cyan, Magenta, Yellow, and Key
  • CMYK系统在印刷时很常见 Widely used in printing
  • 通过混合CMY可以得到黑色,但是由于打印成本原因,黑色墨水成本低需求大,故存在黑色

image.png

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。