【GAMES101笔记速查——Lecture 20 Color and Perception】

颜色与感知

目录

1 光场(Light Field / Lumigraph)

1.1 全光函数

1.1.1 改进:引入波长

1.1.2 改进:添加时间t

1.1.3 改进:人可以移动,添加空间坐标

1.1.4 改进:不把函数当电影来看。

1.2 从全光函数到光场

1.2.1 光线

1.2.2 光场:从任何位置看向物体

(1)如何理解二维的位置和二维的方向?

(2)模型简化:包围盒

(3)进一步简化:平面

1.2.3 光场(简化后的参数化表示)

(1)两个平面的不同理解方式

1.3 光场照相机(Light Field Camera)

1.3.1 光场照相机原理

1.3.2 光场照相机的问题

(1)分辨率不足

(2)工业化困难

2 颜色

2.1 颜色到底是什么

2.1.1 光谱

(1)谱功率密度SPD

SPD的线形性质:光线叠加,对应SPD的值也相加

2.1.2 人类感知颜色的生理基础

2.1.3 颜色的三刺激理论(Tristimulus Theory of Color)

(1)同色异谱(Metamerism)

2.1.4 颜色调和(Color Reproduction / Matching)

(1)加色系统

(2)颜色空间

        RGB

        CIE XYZ

(3)色域

(4)其他的颜色空间

HSV:(色相、饱和度、明度)也有人叫做HSL。为艺术家设计的。

LAB:与感知有关。任何一个轴的两端是互补色。

(5)减色系统



1 光场(Light Field / Lumigraph)

英文的光场有两个单词,这是历史遗留问题,因为当时有两个人都发现了这个现象并命名。

我们看到的世界是什么?

想象给我们的面前加上一块幕布,在这个幕布上放上之前的2D成像,那么人不会察觉到与真实世界的区别。虚拟现实用的就是类似的技术。

人们看到的就是各个方向的光,并不关心光从什么地方进来,从多远进来。

1.1 全光函数

描述人到底可以看到什么东西全光函数

固定人的位置,定义一个函数:向任意一个方向看可以看到什么值?

其中的这个方向可以用极坐标表示,结果的值是一个数,一个数的话,只能表示出灰度世界。

1.1.1 改进:引入波长

把朝向某个方向的每一个波长的光都记录下来,就可以看到彩色的世界。

1.1.2 改进:添加时间t

可以向不同的方向看

每一个方向看到的都是彩色的

每个时间显示的东西都不一样

这就是电影!

1.1.3 改进:人可以移动,添加空间坐标

这就是全息电影!

1.1.4 改进:不把函数当电影来看。

我们认为这个函数是:在任何位置、往任何方向、在任何时间、看到的不同的颜色。这就是我们能看到的所有事情。

整个视觉的世界是一个七个维度的函数--全光函数

1.2 从全光函数到光场

我们可以从全光函数中提取一些信息,用来表示更复杂的光。

1.2.1 光线

用起点和方向就可以定义一条光线。

取任意两点也可以定义一条光线

1.2.2 光场:从任何位置看向物体

物体放在包围盒里面。

要想描述这个物体从各个方向能看到的所有情况:描述这个物体在任何一个位置往任何一个方向的光线。

光场就是这些光线信息。

光场:从任何一个位置看向任何一个方向的光的强度。光场是全光函数的一小部分(只是2维的位置和2维的方向)。

(1)如何理解二维的位置和二维的方向?

2维的位置:物体表面可以映射到平面,用uv坐标就可表示

2维的方向:空间中的方向可以用极坐标系θφ就能表示

紫色的线,表示从任意一个位置往光场看,就查询之前记录过的光场的值。

(2)模型简化:包围盒

实际上,我们不需要知道光场来自什么东西,我们可以把物体看作一个黑盒。

前提是:观测点在包围盒外面。

(3)进一步简化:平面

1.2.3 光场(简化后的参数化表示)

可以用两个平面参数化这个光场。

分别在两个平面上取一个点,两点相连,就可以得到对应的光线。

考虑所有的点的可能性,就可以描述所有的光线。

(1)两个平面的不同理解方式

   从st平面上取一个点,观察与所有uv平面上的点连接的情况。

对这两个平面有不同的理解方式:

从uv平面取一点,看st平面:看到一个完整物体的图

从st平面取一点,看uv平面:从不同的点看同一个物体(把irradiance分解为多个radiance)

斯坦福做了工作来模拟从st看向uv

照片上的每一个像素记录的是irradiance,也就是不区分各个方向的光,将这些光都收集并且平均。

有没有办法把这个光分开?

把像素变成透镜,把来自不同方向的光分别记录在不同的位置(光场照相机的基本原理)。

1.3 光场照相机(Light Field Camera)

Lytro光场照相机

就是用透镜替换了像素,可以把接收到的光线分开然后再存储。

功能:支持后期重新聚焦.

1.3.1 光场照相机原理

原本的像素变成微透镜,分别存储不同方向的光。

原本记录一个像素,现在记录一块像素。

任何一块光场摄像机像素的平均值就是原本的普通摄像机的像素。

如何从光场照相机中得到一个普通的照片?

每个透镜都选一条光线,然后将这条光线的值作为像素值。选光线的方向不同,相当于在移动摄像机位置。

取不同的光线相当于在移动摄像机的位置

总之,光场照相机记录了视野内的所有东西。

1.3.2 光场照相机的问题

(1)分辨率不足

光场照相机通常分辨率不足,原本一个像素记录一个信息,现在可能100个像素才等同于记录原本一个像素的信息。对胶片的分辨率非常高,成本就很高。

(2)工业化困难

微透镜是个超级精密的仪器,技术和工业上难以实现。


2 颜色

2.1 颜色到底是什么

早期牛顿做过一个实验:

棱镜将光线分解成了不同的颜色,将分解过的颜色混合到一起又形成了白色。

2.1.1 光谱

不同的波长有不同的折射率

可见光光谱:波长400nm到700nm。

紫外线和红外线人眼不可见。

(1)谱功率密度SPD

谱功率密度SPD:描述不同波长的光线强度是多少

蓝天不同地方的SPD不同

再比如:日光灯和LED灯的SPD不一样

SPD的线形性质:光线叠加,对应SPD的值也相加

回到最初的问题:颜色是什么?

光有不同的波长,人对于不同波长的光有不同的感受结果。

所以说,颜色是人的感知,并不是物理上的东西,颜色和人有关。

2.1.2 人类感知颜色的生理基础

视网膜是光线最终到达的地方,视网膜上有感光细胞,感光细胞分为两类:

棒状细胞(感知光线的强度,得到灰度图)。

锥形细胞(很少,可以用来感知颜色),锥形细胞又被分为三类S、M、L。

这三种细胞对光的波长的感知各不相同。

S细胞容易感知小波长、高频

M细胞容易感知中波长

L细胞容易感知大波长

不同的人的眼睛,这三种锥形细胞的分布情况有严重的个体差异。

2.1.3 颜色的三刺激理论(Tristimulus Theory of Color)

光线强度 * 感知强度,然后积分,可以得到人们感应颜色的结果。

给定任何一种类型的光线,被人们的三种细胞感知到。

人们看到的是三个结果数,而不是光线本身的SPD。

(1)同色异谱(Metamerism)

有没有两种光线,它们具有的光谱不相同,但是被人们看到的结果相同

不同的信号经过积分后得到的结果相同。

这个过程叫做颜色调和

重要应用:计算机通过元件调和出来的光谱和原物体的光谱不同,但感知到的颜色一样。

2.1.4 颜色调和(Color Reproduction / Matching)

(1)加色系统

加色系统允许线性组合来匹配出任何一个颜色,系数可能是负的。

 

 

人们CIE (一个组织)开发了RGB系统

RGB要做颜色匹配。

对于任何一个波长的光,我们需要用这么多的蓝色、这么多的绿色、这么多的红色相加,来匹配出这个波长的光。

也就是这个组织解决了:如何用红绿蓝单色光混合出特定波长的光

如果要匹配任何实际的SPD分布(包含不同波长的光强),那就要考虑每一个波长的光要用多少的红、绿、蓝色。那就是做三个积分,得到三个数。

(2)颜色空间
        RGB

        RGB是广泛使用的标准系统

        RGB形成的色域是有限的。

        CIE XYZ

        另一个系统叫CIE XYZ系统

        它同样定义了颜色匹配函数,它是人造的颜色匹配曲线。

        它把绿色的分布设计的比较均匀,Y值基本可以反应颜色的亮度。

        XYZ和RGB 的区别仅仅就是匹配函数。

(3)色域

色域:一个所有可能表示的颜色

如何对XYZ可视化:将XYX先归一化得到xyz,固定Y的值,只显示x、y两个维度。

这个扇面形的东西就叫色域:所有颜色空间能显示出的颜色。

白色是最不纯的颜色、最纯的颜色在色域的边缘。

sRGB的色域比sXYZ小。

(4)其他的颜色空间
HSV:(色相、饱和度、明度)也有人叫做HSL。为艺术家设计的。

 

LAB:与感知有关。任何一个轴的两端是互补色。

人脑自动补全互补色

颜色很多都是相对的

A点和B点颜色实际上一样,但是人眼认为不一样。

(5)减色系统

彩色打印机用的就是这个

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/479168.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML5和CSS3新增特性

HTML5的新特性 HTML5新增的语义化标签 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量…

ArcGIS+deck.gl矢量切片三维化表示建筑白模

01 背景介绍 很多ArcGIS API for JavaScript的用户想要ArcGIS的矢量切片技术体系实现Mapbox gl将城市建筑物footprint矢量切片三维化成建筑白模的效果。效果如图:截图来自mapbox studio1但目前仅靠ArcGIS VectorTileServer 和 ArcGIS API for JavaScript本身无法达…

Windows下安装FreeSurfer教程

简介 FreeSurfer 是一个开源软件包,用于分析和可视化横断面和纵向研究的结构、功能和扩散神经成像数据。它由Athinoula A. Martinos 生物医学成像中心的计算神经成像实验室开发。 官网 功能 FreeSurfer 为结构 MRI 数据提供完整的处理流,包括&#xf…

RTMP协议

背景介绍 RTMP(Real Time Messaging Protocol) 是由 Adobe 公司基于 Flash Player 播放器对应的音视频 flv 封装格式提出的一种,基于TCP 的数据传输协议。本身具有稳定、兼容性强、高穿透的特点。常被应用于流媒体直播、点播等场景。常用于推…

计算机网络----基本概念

基本概念 在这一章从整体上介绍计算机网络的概况, 为后续的学习搭建起整体的框架; 介绍计算机网络中的基础术语和概念; 什么是因特网 『 因特网 』是一个世界范围内互联了数以亿计的计算设备的计算机网络; 因特网具体构成 因特网互联了数以亿计的计算设备, 这些设备被称为…

CKA认证 | Day4 K8s管理应用生命周期(下)

第四章 K8s管理应用程序生命周期(下) 1、Pod对象 1.1 Pod 的基本概念 Pod 是 Kubernetes 中最基本和最重要的概念之一,是一个逻辑抽象概念,Kubernetes创建和管理的最小单元, 一个Pod由一个容器或多个容器组成。它简…

【微服务】Nacos

一、安装 1、官网地址:https://nacos.io/download/nacos-server/ 2、启动:找到bin目录下的startup.cmd双击启动,或者打开一个命令窗口输入: startup.cmd -m standalone双击启动后如下:可以访问控制台地址 访问后的…

学习笔记032——Spring学习笔记

文章目录 一、Spring开发步骤二、Spring配置文件1、Bean标签基本配置2、Bean标签范围配置3、Bean生命周期配置4、Bean实例化三种方式5、Bean的依赖注入概念6、Bean的依赖注入方式【第一种:set方法注入】【第二种:构造方法注入】 7、Bean的依赖注入的数据…

某科技研发公司培训开发体系设计项目成功案例纪实

某科技研发公司培训开发体系设计项目成功案例纪实 ——建立分层分类的培训体系,加强培训跟踪考核,促进培训成果实现 【客户行业】科技研发行业 【问题类型】培训开发体系 【客户背景】 某智能科技研发公司是一家专注于智能科技、计算机软件技术开发与…

Elasticsearch:Retrievers 介绍

检索器(retrievers)是 Elasticsearch 中搜索 API 中添加的新抽象层。它们提供了在单个 _search API 调用中配置多阶段检索管道的便利。此架构通过消除对复杂搜索查询的多个 Elasticsearch API 调用的需求,简化了应用程序中的搜索逻辑。它还减…

Python学习34天

import random class Game: peo0 rob0 # # def __init__(self,peo,rob): # self.peopeo # self.robrob def Play(self): """ 石头剪刀布游戏,0代表石头,1代见到,2代表石头 …

hive的存储格式

1) 四种存储格式 hive的存储格式分为两大类:一类纯文本文件,一类是二进制文件存储。 Hive支持的存储数据的格式主要有:TEXTFILE、SEQUENCEFILE、ORC、PARQUET 第一类:纯文本文件存储 textfile: 纯文本文件存储格式…

solr 远程命令执行 (CVE-2019-17558)

目录 漏洞描述 执行漏洞py脚本,取得shell连接 EXP 漏洞描述 Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象。Velocity是Apache基金会旗下的一个开源软件项目,旨在确保Web应用程序在表示层和业…

uname -m(machine) 命令用于显示当前系统的机器硬件架构(Unix Name)

文章目录 关于 arm64 架构检查是否安装了 Rosetta 2其他相关信息解释:命令功能:示例: dgqdgqdeMac-mini / % uname -m arm64您运行的 uname -m 命令显示您的系统架构是 arm64。这意味着您的 Mac Mini 使用的是 Apple 的 M1 或更新的芯片&…

实现在两台宿主机下的docker container 中实现多机器通讯

基于我的实验背景 上位机:ubuntu 20.04 (docker humble 22.04) 下位机:ubuntu 22.04(docker noetic 20.04) 目标:实现在上位机中的docker container 容器的22.04环境去成功远程访问 非同网段的下位机的20.04的contai…

(计算机组成原理)期末复习

第一章 计算机的基本组成:硬件软件(程序)计算机系统 软件有系统软件(系统管理工具),应用软件 计算机硬件:包括主机和外设,主机包括CPU和内存,***CPU由运算器和控制器所组…

QML TableView 实例演示 + 可能遇到的一些问题(Qt_6_5_3)

一、可能遇到的一些问题 Q1:如何禁用拖动? 在TableView下加一句代码即可: interactive: false 补充:这个属性并不专属于TableView,而是一个通用属性。很多Controls下的控件都可以使用,其主要作用就是控…

【vue3实现微信小程序】从轮播图到公告栏的前端开发之旅

快速跳转: 我的个人博客主页👉:Reuuse博客 新开专栏👉:Vue3专栏 参考文献👉:uniapp官网 免费图标👉:阿里巴巴矢量图标库 ❀ 感谢支持!☀ 前情提要 &#x…

【大数据学习 | Spark-Core】RDD的缓存(cache and checkpoint)

1. 单应用缓存:cache 1.1 cache算子 cache算子能够缓存中间结果数据到各个executor中,后续的任务如果需要这部分数据就可以直接使用避免大量的重复执行和运算。 rdd 存储级别中默认使用的算子cache算子,cache算子的底层调用的是persist算子…

网络安全风险评估

项目背景 随着信息化技术的快速发展,特别是面向社会、政府机构、企业等业务系统的投入使用,各组织机构对网络和信息系统安全防护都提出了新的要求。为满足安全需求,需对组织机构的网络和信息系统的安全进行一次系统全面的评估,以…