【GAMES101】Lecture 20 颜色

目录

光 

颜色

加色系统

CIE RGB颜色匹配实验

颜色空间

CIE XYZ颜色空间

HSV颜色空间(Hue-Saturation-Value)

 CIELAB空间

减色系统:CMYK


光 

光是由不同波长的光波组成的,其中可见光的波长范围在400nm到700nm

用谱功率密度(Spectral Power Distribution ),SPD来描述光在不同波长的分布,就是光源在不同波长的功率分布

而这个光谱功率的分布具有线性可加性

颜色

颜色是人类感知的一种现象,它不是光的普遍性质,不同波长的光并不是颜色,我们先来研究一下眼睛的结构,瞳孔是光圈,晶状体是透镜,这个视网膜就是传感器

视网膜上有两种感光细胞,杆细胞(Rods)和锥细胞(Cones),比较多的是杆细胞,它是感受光的亮度的,少一点的是锥细胞,它是感受颜色的

有三种类型的锥细胞:S、M和L(对应于短波、中波和长波的峰值响应),然后它们分别对于不同波长的光有着不一样的反应强度

不同人的这三种锥细胞分布数量差别比较大

那对于照进眼睛的光这三种锥细胞就会有不同的反应强度,那么光在不同波长上有不同的强度分布,锥细胞对于不同波长的光也会有不同的反应强度,所以每种锥细胞感知到的强度就是这两个分布函数的乘积在波长上的积分

所以我们能够感受到的就是这三个SML的值,这就是我们感受到的颜色,而不是能够直接从光里面看到颜色,颜色本身是我们大脑的一种感受

因为这个SML的值是通过两个函数乘积积分得到的,因此就存在说这两个光的SPD光谱不一样,但是积分的结果是一样的,也就是说我们虽然看到的颜色是一样的,但是呢,它们可能是不同的光,因此就可以通过调节光谱来呈现出一样的效果,尽管它们可能不是同样的光

加色系统

也就是说颜色可以通过混合不同的颜色得到,计算机里面用的是加色系统,也就是用RGB三原色通过调整它们的三个的大小来混合出不同的颜色,并用它们各自的参数大小(R,G,B)来表示

CIE RGB颜色匹配实验

CIE是个组织,他们做了个实验,用RGB三种单色光通过调整它们之间的强度来混合达到400-700波长光相同的颜色效果

最后就会得到一个颜色匹配函数,上面对应了某个波长的光需要用多少RGB来达到相同的颜色效果,因此对于某个光谱的光,想要知道这个光的颜色效果,就将两个函数乘积求积分的结果就行了

颜色空间

CIE XYZ颜色空间

CIE还是那个组织,CIE XYZ是科学研究里面常用的颜色空间,同样有一个颜色匹配函数,但是这个函数是人造的,并不是实验测出来的,并且呢之前那个颜色匹配函数里面的R是存在负数的,这里都是正数,但是同样可以通过不同的x、y、z来模拟不同波长光的效果,这里的Y是亮度

通过归一化让x+y+z=1,在二维上只显示x和y来把整个颜色空间显示在二维上

这个二维的图就是色域,就是可以表示的颜色的集合,CIE XYZ颜色空间用的是加色系统,中间的白点是混合的,往三个点走就越纯

而标准RGB颜色空间(sRGB)无法表示所有的颜色

HSV颜色空间(Hue-Saturation-Value)

HSV是常用的颜色拾取器,就是用来调颜色的,Hue是色调,就是简单的颜色,而Saturation是饱和度,就是调节这个颜色的浓淡,在白色和原色之间的一个范围,Lightness (or value)就是亮度

 CIELAB空间

这个CIE还是那个CIE,它用的是三个轴来表示颜色,就是L a b这三个轴,这三个轴的两端都是互补色,这个L是亮度,互补色是白色和黑色,a是红色和绿色,b是蓝色和黄色

这个黑白互补可以理解,但是这个红绿和蓝黄怎么就互补了,还是那个道理,就是颜色是人的感受

如果你盯着一个东西盯久了,突然切换画面,眼前就会出现互补色

还有视觉是相对的,像这个A和B看起来是不一样的

但实际上它们两个是一样的

离谱但真实存在

减色系统:CMYK

什么是减色系统呢,就好像颜料一样,这个不同的颜色越混合就越渐近黑色,这个C是蓝绿色(Cyan),这个M是品红色(Magenta),Y就是黄色,K是黑色,那为什么我有了CMY还要一个黑色,不可以通过CMY混合得到吗,可以通过混合得到,但是黑色便宜

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

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

相关文章

Low 级别反射型 XSS 攻击演示(附链接)

环境准备 如何搭建 DVWA 靶场保姆级教程(附链接)https://eclecticism.blog.csdn.net/article/details/135834194?spm1001.2014.3001.5502 测试 打开 DVWA 靶场并登录,找到反射型 XSS 页面(笔者这里是 Low 级别) 先…

图像处理之《鲁棒图像隐写术:隐藏频率系数中的信息》论文精读

一、文章摘要 隐写术是一种将秘密信息隐藏到公共多媒体对象中而不会引起第三方怀疑的技术。然而,大多数现有的工作不能提供良好的抗有损JPEG压缩鲁棒性,同时保持相对较大的嵌入容量。提出了一种基于可逆神经网络的端到端鲁棒隐写系统。该方法将秘密信息…

医学搜题神器找答案? #知识分享#职场发展

大学生必备的搜题工具,专业课本习题、电子版教材、考研资料、英语四六级等考试题目也能一并搜索,每道题目都有详细的讲解,每个都堪称大学神器。 1.题小聪 这是一个公众号 它支持文本搜索、扫码搜书、拍照搜索,不会的题目直接对…

幻兽帕鲁PalWorld服务器2024年配置选择

幻兽帕鲁PalWorld是一款备受期待的虚拟游戏,其独特的幻兽系统和丰富的世界观吸引了大量玩家。然而,随着游戏日益受到关注,服务器的配置选择成为了关键问题。2024年,随着技术不断发展,玩家对于游戏体验的需求也在不断提…

[word] word自定义编号格式怎么设置 #经验分享#职场发展#职场发展

word自定义编号格式怎么设置 在Word文档的编辑中,经常会给段落添加编号,但是在编号的使用过程中我们会遇到很多问题,今天给大家分享word自定义编号格式怎么设置,希望能帮到您! 1.如何自定义编号格式? 点击…

NAS如何成为生产力?使用绿联DX4600 Pro搭建图床并实现创作自由

NAS如何成为生产力?使用绿联DX4600 Pro搭建图床并实现创作自由 哈喽小伙伴们好,我是Stark-C~ 关注我的小伙伴都知道,我之前有分享过我的创作过程与工具,其中介绍了我个人其实一直都是使用Markdown的编辑器来进行图文创作的。 我…

如何在 Mac 上恢复永久删除的文件:有效方法

您是否错误地从 Mac 中删除了某个文件,并且确信它已经永远消失了?好吧,你可能错了。即使您认为已永久删除计算机上的数据,仍有可能将其恢复。 在本文中,您将了解如何在 Mac 上恢复永久删除的文件,并了解增…

基于微信小程序的校园失物招领小程序

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【Web】小白友好的Java内存马基础学习笔记

目录 简介 文件马与内存马的比较 文件马原理 内存马原理 内存马使用场景 内存马分类 内存马注入方式 这篇文章主要是概念性的,具体技术细节不做探究,重点在祛魅。 简介 内存马(Memory Shellcode)是一种恶意攻击技术&…

【后端高频面试题--Mybatis篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 后端高频面试题--Mybatis篇 什么是Mybatis?Mybatis的优缺点?Mybatis的特点…

大水仙花数求解

输入位数,求解水仙花数。暴力求解,位数如果太多,会超时。 思路: (1)11333355和33331155看上去是不一样的两个数,但是它们又一样,因为相同数字出现的次数一样。 (2&…

使用navicat导出mysql离线数据后,再导入doris的方案

一、背景 doris本身是支持直接从mysql中同步数据的,但有时候,客户不允许我们使用doris直连mysql,此时就需要客户配合将mysql中的数据手工导出成离线文件,我们再导入到doris中 二、环境 doris 1.2 三、方案 doris支持多种导入…

【C语言】一道相当有难度的指针题目(某大厂笔试真题)超详解

这是比较复杂的题目,但是如果我们能够理解清楚各个指针代表的含义,画出各级指针的关系图,这道题就迎刃而解了。 学会这道笔试题,相信你对指针的理解,对数组,字符串的理解都会上一个档次。 字符串存储使用的…

使用Arduino UNO和蓝牙模块制作智能小车

目录 概述 1 硬件结构 1.1 硬件组成 1.2 蓝牙模块介绍 1.3 控制板IO引脚定义 2 机械结构 3 固件设计 4 App设计 5 参考文献 概述 本文主要介绍使用Arduino UNO作为主板,用于控制电机和接收蓝牙模块数据。蓝牙模块用于从手机App上接收控制信号,使…

Windows下搭建Redis Sentinel

下载安装程序 下载Redis关于Windows安装程序,下载地址 下载成功后进行解压,解压如下: 配置redis和sentinel 首先复制三份redis.windows.conf,分别命名为:redis.6379.conf、redis.6380.conf、redis.6381.conf&…

Spring基础 - SpringMVC请求流程和案例

Spring基础 - SpringMVC请求流程和案例 什么是MVC 用一种业务逻辑、数据、界面显示分离的方法,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理…

【漏洞复现】SpringBlade export-user接口存在SQL注入漏洞

漏洞描述 SpringBlade 是一个由商业级项目升级优化而来的微服务架构 采用Spring Boot 2.7 、Spring Cloud 2021 等核心技术构建,完全遵循阿里巴巴编码规范。提供基于React和Vue的两个前端框架用于快速搭建企业级的SaaS多租户微服务平台。SpringBlade export-user接口存在SQL注…

4核8G服务器性能怎么样?4核8G12M配置能支持多少人同时访问?

4核8G服务器性能怎么样?4核8G12M配置能支持多少人同时访问?腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线?通用型-4核8G-180G-2000G,2000GB月流量,系统盘为180GB SSD盘,12M公网带宽,下载速度峰值为…

Doris中的本地routineload环境,用于开发回归测试用例

----------------2024-2-6-更新-------------- doris的routineload,就是从kafka中加载数据到表,特点是定时、周期性的从kafka取数据。 要想在本地开发测试routine load相关功能,需要配置kafka环境,尤其是需要增加routine load回…

C语言中的数据类型-强转

强制类型转换 概念:将某种类型的数据转化我们需要的数据类型,注意强制类型转化是临时强转,不会改变本身的数据类型。 强转又分为显式强转和隐式转化 显示强转是按照我们的要求进行转化 格式:(需要转化数据类型)变量名 #inclu…