[计算机图形学]光场,颜色与感知(前瞻预习/复习回顾)
一、Light Field / Lumigraph—光场
1.我们看到的是什么
我们的眼睛能够把3D世界转换为2D的成像信号被我们感知,如上面第一幅图,这就是我们看到整个世界的过程,那么如果我们把之前记录的光的信息都完美的放在一个幕布上,那么我们是不会感受到任何异样的,因为我们接收的光没有发生任何变化,而这也是虚拟现实的原理。所以我们看到的东西实际上就是光线,我们的眼睛并不关心光线从多远进来或者从什么地方进来。
2.The Plenoptic Function—全光函数
我们可以用一个叫做全光函数的东西描述我们看到的东西,全光函数如上图解释:就是我们能够看到的所有东西。它是怎么做的呢,我们先从简单的开始说起,假设我们的函数现在是定义了我们在某一个位置往任何方向看到的东西,那么我们可以用P(θ,Φ),用一个球的极坐标表示任何一个方向,我们当然可以定义这么一个函数,接下来我们加入一个变量λ,它表示波长,也就是颜色信息,那我们就能看到彩色的东西了,于是我们的函数变成了P(θ,Φ,λ),我们再加入时间t,我们的函数就变成了P(θ,Φ,λ,t),引入时间t之后等于我们能看到动态的东西了,之前我们只能看到静帧,现在我们能看到动画/电影,也就是可以动的画面。
我们最后在加一个三维空间中的坐标,代表我们可以在空间中任何位置朝任何方向看,那也就变成了全息电影,于是函数就变成了P(θ,Φ,λ,t,Vx,Vy,Vz)。最终我们就得到了这么一个函数,它可以让我们在任何位置朝任何方向在任何时间看不同的颜色,而这就是我们看到的所有东西,一个七个维度的函数。
3.光场的定义
(1)光线
定义光场之前,我们先来定义一下光线,那也就是一个起点和一个方向,一个起点Vx,Vy,Vz。一个方向就是θ和Φ。
当然我们不止只有一种定义光线的方式,还有其他办法比如上图中我们用两个点来定义一根光线,当然前提是我们知道方向正负。
(2)光场
那么对于我们看到的任何一个物体,我们都可以理解为它在一个包围盒里,那无非也就是我们在任何位置任何方向都能看到这个物体。又因为光路是可逆的,我们可以反过来描述一个物体在任何位置往任何方向发出的光线,把这个事情描述清楚,我们自然就可以得到我们在任何位置朝任何方向看到这个物体它的样子。这个函数记录的正是这个物体的任意一个位置朝各个方向发出光的强度,而这就是我们描述的光场。而光场正是全光函数的一小部分,因为它只有二维的位置和二维的方向。二维的位置指的是物体表面的坐标(u,v),二维的方向指的是(θ,Φ)。
通过一个四维的光场,我们完全可以描述我们在任何位置看到物体表面的任何光的信息,我们之前说的包围盒就是这个意思,我们可以想象用一个黑盒把物体包起来,通过我们之前记录的光场,我们完全不需要知道里面的物体是什么,这和我们一开始说的幕布是一个意思。
通过之后的介绍我们知道了,如果想描述一个光场,我们只需要给定一个平面,记录平面上每个点的位置的每个朝向的光的信息就可以了,这也符合我们之前说的第一种光线的定义,给一个点(u,v)和一个方向(θ,Φ)。那么我们也可以用第二种光线的定义来描述一个光场,我们用两个点,那也就是两个平面,两个平面上各自取一个点,就能确定一条光线,因为我们已经知道了光线一定是朝外的,两个平面的坐标分别用(u,v)和(s,t)表示,我们发现这并没有本质的区别,因为它们都是四维的。
而关于这块,我们对刚才的两个平面定义的光场有两种不同的理解形式,这里用浅显易懂的话给大家解释一下,第一种情况,我们在(u,v)上取不同的坐标,看向(s,t)平面,这也就相当于假如我们不固定盯着物体的某一个点看,也就是所谓的平行眼,就像相机一样,我们举到哪里相机就拍到哪里,然后我们从各个不同的角度去看向这个物体。第二种情况,从(s,t)平面的不同位置看向(u,v)平面,或者说从(u,v)平面一侧的不同方向看向(s,t)平面的某个位置,这就相当于我们看物体只盯着物体的某一个点看,即使我们移动了位置,但是我们就盯着那一个固定的点看。
当然上面说的只是一种通俗的理解,自然界中的确有从st平面看向uv平面的例子,就是苍蝇的复眼,复眼的结构非常复杂,它们由许多独立的更小的眼睛组成,这就好像有一个摄像机矩阵一样,而这种情况下我们看向一个像素,我们看到的实际是许多的Radiance而不再是Irradiance了,也就是说我们看到的一个像素实际上是穿过这个像素的来自不同方向的光。
4.光场摄像机
光场照相机就和我们前面提到的原理是一样的,简单地说,它把每个像素都替换成了透镜,那也就相当于一个摄像机里面有很多小摄像机,那么每个像素也就能记录穿过该像素的不同方向的光了,得到的信息自然也就是四维的。并且它支持后期重新调整聚焦,利用的自然也是光场。
当然,除了后期重新调焦,光场摄像机自然也有我们前面提到过的,从任何角度拍摄物体的功能,我们拍摄完一张光场照片后,如果想恢复原来的正常的照片只需在每个微透镜上都取来自同一方向的光即可,而去不同方向的光的过程和我们移动正常相机从而从不同角度拍照的过程一样,也就是说光场摄像机从一个角度和位置就可以拍摄出许多不同角度和位置的照片。当然光场摄像机也有问题,它经常有分辨率不足的问题,也就是对于分辨率的要求非常高,因为我们要用原本一个像素的大小表示更多的像素,原本二维大小的分辨率,需要再平方,也就是四维的分辨率,而微透镜也是十分精密的器件,生产起来成本很高,所以光场摄像机的成本自然也很高。
二、颜色
1.物理上的颜色基础
拿出一个棱镜可以将光折射出不同的颜色,因为不同波长的光有不同的折射率。而给定任何一种光它一定有对应的光谱,光谱就是光能量在不同波长上的分布。图形学我们关心的是可见光的光谱,大概在400nm—700nm之间。
光谱的更准确定义是谱功率密度SPD,也就是光在不同的波长的能量。我们因此就可以用SPD来描述光在不同的波长的分布。如下图阳光和蓝天的分布。
日光灯和LED灯的不同SPD
同时SPD具有线性的性质,如上图,这也符合我们开的灯越多就越亮的生活常识。
2.生物上的颜色基础
人们对颜色的感知主要来自于视网膜,视网膜上有感光细胞,一种是棒状感光细胞,数量比较多,它用来感知光的强度。另一种是锥形感光细胞,它数量比较少,它可以感知颜色。
而锥形感光细胞又分为三种,分别是S,M和L型细胞。
S细胞主要感知短波长的颜光,M细胞感知相对中间波长的光,而L细胞感知长波长的光。但是,不同人的眼睛,这三种细胞的分布比例和数量差异很大。这也就说明颜色只是人感知的结果。
3.Tristimulus Theory of Color—颜色的三刺激理论
那么三种不同的细胞是如何对颜色进行感知的?我们刚才说过SPD,也就是光对应不同波长上的分布,现在又知道了感知的分布,那么我每种细胞的感知只需要将SPD和对应的感知曲线相乘再做一个积分即可。
也就是说,人们看到的颜色并不是光谱,而是积分得到的S,M,L三个数。
4.Metamerism—同色异谱
同色异谱现象,顾名思义,虽然两种光的光谱并不相同,但是经过积分之后,我们感知到的颜色是相同的。原因也很简单,我们之前说了颜色是光谱和感知曲线乘积之后积分后得到的三个数,那么有些时候很有可能即使光谱不相同,但是被积分之后得到的S,M,L相同,这是有可能的。
因此,我们可以根据同色异谱的原理做颜色匹配,也就是说如果我们拍了一幅照片我们想把它复现在显示器上,但是想保持颜色一致,我们并不需要用相同的SPD。
5.Color Reproduction/Matching—颜色复现/匹配
通过同色异谱我们也就知道,同一种颜色可以通过不同的“颜色”混合来得到。那么如何来混合呢?在计算机种我们的混合称之为加色系统,如RGB,我们把RGB三个数乘上某一个强度然后混合在一起,假如都是255,那么得到是白色,也就是会变强。这和画画调制染料正好相反,染料如果我们都混合在一起它会变黑,这是减色系统。
那么是不是用这样一套三个颜色的加色系统就能表示出任意颜色呢?并不是,有时候我们会发现无论怎么调节这三个数的线性组合,它都不能表示出正确的我们想要的颜色,而又因为我们用的是加色系统,不能用负数,那么我们就在原颜色的三个值中加上一定的值,那也就相当于我们的参数的某个值减了一个值或者是负值。如下图。
于是人们发明了CIE RGB系统,它规定了三种基础颜色的SPD如上图,然后测出我们不同波长的光分别由多少这三种颜色组成,就可以得到在波长范围内的三条曲线,如下图。
而上图右边所示的就是RGB的匹配函数。综上我们就可以通过匹配函数取匹配任何一种SPD的光,和感知类似的,我们也是做积分就可以得到相应的值。
6.颜色空间
颜色空间也称彩色模型(又称彩色空间或彩色系统)它的用途是在某些标准下用通常可接受的方式对彩色加以说明。比如我们上面所说的RGB就是一种颜色空间。这里我们介绍另一种叫做CIE XYZ颜色空间,当然它也有相应的匹配函数如上图。和RGB不同的是,XYZ并不是通过实验测量得来的一套色彩空间,它是人为定义的。它的X不会有负值。且因为Y的曲线分布特殊性,它的大小在一定程度上能表示亮度的大小。
由此,我们可以将三个数用坐标表示,但是三维的坐标可视化起来太难了,我们想到Y可以表示亮度,那么如果我们固定一个亮度,也就是Y值,调整x,y就可以得到一个二维坐标了(x,y是X,Y归一化后得到的值)。我们会得到上面这么一幅图,而这幅图就叫做色域。色域,也就是一个颜色空间内所有可能表示的颜色。
色域图我们可以观察到很多特点,比如中心的白点,而白色往往是不纯的,也就是混合的多的颜色,纯色往往分布在边界上。
而我们之前所说的RGB也就是sRGB空间只能表示很小的三角形内的颜色,如上图。
HSV颜色空间是另外一种颜色空间,如上图所示,它也规定了三个值,H色调,S饱和度,V亮度,色调也就是红黄蓝这种颜色的不同,饱和度的大小决定它是更接近本身的颜色还是接近白色,亮度自然也就是决定它黑不黑。HSV也是一种用的很广泛的颜色空间,它很适合艺术家进行创作。
CIE LAB空间,有三个轴,L表示黑白灰,亮度,a轴表示红和绿,b轴表示蓝和黄。为什么要这么表示呢,LAB颜色空间它的任何一个轴的两端都是互补色,比如白和黑是互补色,蓝和黄是互补色,红和绿是互补色,这些并不是猜的而是根据实验得到的,这是人脑对这些颜色的互补感知决定的。比如我们知道偏黄的绿,但是我们想象不出偏红的绿,因为红和绿差的太远了。
7.颜色只是感知的错觉
一二幅图的A,B色块和三四幅图的黄叉,在我们收到周围环境影响的时候我们都看不出它们是一种颜色,因为这是我们感知的结果。
8.减色系统
减色系统我们之前说了是与加色系统相对的一种系统,也就是越混越黑。比较常用的一种减色系统是CMYK系统,C是青色,M是品红色,Y是黄色,K是黑色。它在打印上很常用,这也就是问什么它带上了一个K,因为打印的时候黑色的墨水比较便宜好造,直接拿来用就行,而不是花大价钱去用三种颜色混合。
参考:
Lecture 20 Color and Perception_哔哩哔哩_bilibili
GAMES101_Lecture_20 (ucsb.edu)
相关文章:
[计算机图形学]光场,颜色与感知(前瞻预习/复习回顾)
一、Light Field / Lumigraph—光场 1.我们看到的是什么 我们的眼睛能够把3D世界转换为2D的成像信号被我们感知,如上面第一幅图,这就是我们看到整个世界的过程,那么如果我们把之前记录的光的信息都完美的放在一个幕布上,那么我们…...
L4公司进军辅助驾驶,放话无图也能跑遍中国
作者 | Amy 编辑 | 德新 高阶智能驾驶走向规模量产,高精地图成为关键的门槛之一。今年,多家车企和智驾公司都喊出「不依赖高精地图,快速大规模落地」的口号。 华为、小鹏、元戎以及毫末等,可能是最快在国内量产 无高精图智…...
【Java笔试强训 17】
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥杨辉三角…...
【IPv6】基本概念及字段
IPV4知识点: 字段值 IPv4字段共 字段值解释Version版本版本字段,可以区分V4和V6版本,V4是0100,V6是0110,需要注意的是V4和V6头部除了版本字段位置相同外,其他都是不一样的,因此两个协议不能直…...
数据库中的 Schema 变更实现
线上沙龙-技术流第 30 期营业啦 05月09日(周二)19:30 KaiwuDB - B站直播间 传统数据库操作 Schema 变更时,第一步便是锁表,需持续到 Schema 变更操作完成。这样的做法虽然实现简单,无需考虑事务并发带来的影响&#…...
【C++ 学习 ②】- 类和对象(上)
目录 一、 面向对象的基本理念 1.1 - 什么是对象? 1.2 - 类和对象 1.3 - 面向对象的五条原则 1.4 - 面向过程 vs 面向对象 二、C 中的结构体 三、类的定义 3.1 - 类的两种定义方式 3.2 - 成员变量的命名规范 四、类的访问限定符和封装 4.1 - 访问限定符 …...
最好的物联网教程:软硬结合——从零打造物联网
在大学里不同专业有着不同的追求:机械类与强电类专业学生追求的是 “机电合一” ,既懂机械又懂电气,整个电气机械自动化便能打通。弱电类专业学生追求的是 “软硬结合” ,既懂硬件又懂软件,整个电子产品便能打通。我作…...
猫狗训练集训练报错:Failed to find data adapter that can handle input
这里写自定义目录标题 Jupyter Notebook6.5.4 tensorflow 2.12.0 pillow 9.5.0 numpy 1.23.5 keras 2.12.0 报错详细内容: ValueError: Failed to find data adapter that can handle input: (<class ‘tuple’> containing values of types {“<class ‘k…...
中国网络安全人才需求
如果你是一个想要入门网络安全行业的小白、如果你是网络安全专业在读的大学生、如果你是正在找工作的新手,那么这篇文章你一定要仔细看。毕竟知己知彼百战百胜,知道行业的人才需求才能更好得发挥自己的优势。 当你打开BOSS直聘、拉钩等招聘网站…...
设计模式之组合模式
目录 1、组合模式的定义 2、组合模式例子 3、组合模式实现 3.1 组合模式的结构 3.2 组合模式的分类 3.3 组合模式代码实现(透明组合模式) 4、组合模式的优点 5、组合模式使用场景 1、组合模式的定义 组合模式又名部分整体模式,是用于把…...
计算机基础书籍
一操作系统 二常见问题总结 1.操作系统的特征? 并发、共享、虚拟、异步性 2.进程阻塞与唤醒的条件 等待 I/O 操作完成请求系统资源失败等待信号量或事件等待子进程结束被高优先级进程抢占 3.如何避免死锁? 1、避免资源竞争 2、破坏循环等待条件 3、优…...
保龄球游戏的获胜者、找出叠涂元素----2023/4/30
保龄球游戏的获胜者----2023/4/30 给你两个下标从 0 开始的整数数组 player1 和 player2 ,分别表示玩家 1 和玩家 2 击中的瓶数。 保龄球比赛由 n 轮组成,每轮的瓶数恰好为 10 。 假设玩家在第 i 轮中击中 xi 个瓶子。玩家第 i 轮的价值为: …...
jQuery事件
1. jQuery事件注册 单个事件注册 语法: element.事件(function(){}) eg:$(“div”).click(function(){ 事件处理程序 }) 其他事件和原生基本一致。比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等 <!DOCTYP…...
初识SpringCloud
一、软件架构演进 单体架构 垂直架构 分布式架构 SOA架构 微服务架构 二、微服务架构 2.1 微服务理念 "微服务”一词源 于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到http://martinfowler.com/articles/microservices.html微服务是系统架构上…...
安装java配置
目录 安装JDK 编辑 环境变量配置 3、检验环境变量配置 二、安装tomcat 验证Tomcat配置是否成功 三、安装Mysql 一、安装 二、卸载 四、安装Maven 安装JDK 点击更改将C直接给为F即可。 点击确定后进行安装,安装完以后会提示安装JRE; 检测是否已经安装JDK的…...
KBO的选秀会有哪些规定和流程`棒球7号位
KBO(韩国职业棒球联盟)的选秀会有以下规定和流程: 1. 选秀对象:KBO的选秀会主要面向年满18岁及以上的高中和大学生,以及海外球员和自由球员。KBO的球队可以在选秀会中挑选所需的球员,每个球队有一定数量的选…...
男子订民宿被毁约5个家庭漂泊街头 房东:住满了,没办法
据媒体报道,5月1日,一位叫做诸先生的消费者和朋友们提前在平台上预订了五一假期前往青岛金沙滩地中海两天的别墅民宿,并支付了房款9600元。 但是当他们到达目的地前一个半小时联系房东时,却发现联系不上人。到达指定地点后&#x…...
Vue快速入门,常用指令,生命周期
Vue常用指令 案例: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"…...
【热门框架】Mybatis-Plus入门介绍看这一篇文章就足够了
MyBatis-Plus 是在 MyBatis 的基础上进行了封装,提供了更加便捷的开发方式,具有简化开发、提高效率等优点。以下是 MyBatis-Plus 的一些特点和用法: 通用 CRUD 操作:MyBatis-Plus 提供了通用的 CRUD 接口,可以直接调用…...
Node【Node.js 20】新特性
文章目录 🌟前言🌟Node.js 20: 一次重要的升级和改进🌟Internationalization API Update🌟端口管理器🌟字符串处理🌟 更好的调试工具🌟 Crypto模块的更新🌟总结🌟写在最后…...
前端程序员的职业发展规划与路线——ChatGPT的回答
文章目录 一、前端程序员的职业规划是?回答1: 作为一个前端开发程序员,您的职业发展路线可能如下:回答2:作为前端开发程序员,您的职业发展路线可能如下:回答3: 你的职业发展路线可能…...
AlgoC++第八课:手写BP
目录 手写BP前言1. 数据加载2. 前向传播3. 反向传播总结 手写BP 前言 手写AI推出的全新面向AI算法的C课程 Algo C,链接。记录下个人学习笔记,仅供自己参考。 本次课程主要是手写 BP 代码 课程大纲可看下面的思维导图 1. 数据加载 我们首先来实现下MNIST…...
【Java笔试强训 27】
🎉🎉🎉点进来你就是我的人了博主主页:🙈🙈🙈戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔🤺🤺🤺 目录 一、选择题 二、编程题 🔥 不用加…...
java紫砂壶交易购物系统 mysql
网络紫砂壶可充通过色彩、图片、说明、设置动画加强了产品了宣传,大大达到了陶瓷业的“色型”要求。实现产品管理方便,起到立竿见影的效果,不用因为更改菜色而重新印刷。只要在后台鼠标轻轻一点,全线马上更新。采用B/S模式&#x…...
7-4 多态练习-计算面积
定义三个类,父类(抽象类)GeometricObject代表几何形状,子类Circle代表圆形,子类Rectangle代表矩形。具体属性和方法如下: 父类 (抽象类)GeometricObject 属性: private String color; private S…...
很佩服的一个Google大佬,离职了。。
这两天,科技圈又有一个突发的爆款新闻相信不少同学都已经看到了。 那就是75岁的计算机科学家Geoffrey Hinton从谷歌离职了,从而引起了科技界的广泛关注和讨论。 而Hinton自己也证实了这一消息。 提到Geoffrey Hinton这个名字,对于一些了解过…...
【Python习题集1】Python 语言基础知识
python习题 一、实验内容二、实验总结 一、实验内容 1、运用输入输出函数编写程序,将华氏温度转换成摄氏温度。换算公式:C(F-32)*5/9,其中C为摄氏温度,F为华氏温度。 (1)源代码: ffloat(input(输入华氏温…...
C语言进阶——数据在内存中的存储,你知道吗?
今天我们深度剖析数据在内存中的存储: 重点知识: 1、数据类型详细介绍 2、整形在内存中的存储:原码、反码、补码 3、大小端字节序介绍及判断 4、浮点型在内存中的存储解析 之前我们涉及关于这一部分的知识只是大致的进行讲解࿰…...
规则引擎----easy rules
一、规则引擎的作用 将复杂的if else判断剥离出来 二、使用 2.1、引入POM <!--easy rules核心库--><dependency><groupId>org.jeasy</groupId><artifactId>easy-rules-core</artifactId><version>3.3.0</version></depe…...
你手写过一把锁吗?你对轮询缓存怎么看?
当多个线程同时去操作一块内存的数据时如果不做一些限制,极其可能出现数据一致性问题。这时候,我们用一把锁锁住这块数据,持有钥匙者可以进入,不持有者等待钥匙用完再分配。所以在我看来啊,锁的本质就是一个标志位&…...
大蒜做营销型网站/优化大师是什么
题目 找出一个给定串的所有循环节, 输出这个个数,和所有的前缀长度 思路来源 https://blog.csdn.net/weixin_41380961/article/details/80278317 https://www.cnblogs.com/ikids/articles/4658884.html 题解 考察的是对next[]数组的理解 令mstrl…...
wordpress 分页列表/优化什么意思
slam算法是机器人在未知或者动态环境下,移动机器人通过自身携带的传感器来感知自身所处的位置,从起始点处开始,根据传感器所感知的机器人位置逐步构建增量式的地图,再运用所构建的地图对机器人定位,这个过程类似于蛋和…...
乌鲁木齐网站建设制作/搜索引擎优化排名工具
Machine Learning读书会,面试&算法讲座,算法公开课,创业活动,算法班集锦 近期活动: 2014年9月3日,第8次西安面试&算法讲座视频 PPT 的下载地址:http://blog.csdn.net/v_july_v/articl…...
wordpress call to un/市场seo是什么意思
rs.AbsolutePosition 输出当前记录在记录集的所在的条数...
宁夏建设厅网站/搜关键词网站
1. 示例1 2. 示例2 3. 示例3...
免费行情软件app网站大全下载苹果/google搜索关键词热度
矩阵图即用一张图绘制多个变量之间的关系,数据挖掘中常用于初期数据探索;本文介绍python中seaborn.pairplot(傻瓜版)和seaborn.PairGrid(更个性化版)绘制矩阵图本文内容速览目录1、绘图数据准备还是使用鸢尾花iris数据集#导入本帖要用到的库,…...