20 Games101 - 笔记 - 光场、颜色与感知

**20 ** 光场、颜色与感知

光场

眼睛成像

眼睛成像:我们看到这个三维世界,在眼睛里类似就是一幅二维的图。如果直接看到一幅记录了看到的光线信息的图,也能得到同样效果(虚拟现实)。
img
img

全光函数

全光函数可以描述我们可以看到的所有事物的集合。
定义:简单来说,我们假设在一个场景中,位置固定,可以四面八方地去看,则用极坐标可以定义我们的方向,全光函数描述了向某个方向看会看到什么样的值。
img
引入波长(颜色)得到彩色事物
img
引入时间,得到电影的概念。
img
引入三维坐标,得到全息电影的概念。
img

image-20240411193502689

采样全光函数

image-20240411195604749

光场的作用:
根据摄像机的位置查询相应光线强度。
img
参数化表示的方法:通过定义一个平面上点和角度,也可以定义两个平面上的点,通过两个坐标信息来表示。
img
左平面幕布看到的 右屏幕摄像机位置
参数化表示的两种方法:

  • 一种是固定(u,v), 看所有的(s,v)组成一张图,也就是表示了从不同点看到的外部世界的样子
  • 另一种是固定(s,v),所有的(u,v)组成一张图,也就是表示了从不同方向看同一个点的样子(把一个像素的irradiance展开为radiance)

img

光场相机

光场相机最重要的功能是支持先拍照,后期再重新聚焦。
光场相机原理:把像素换成了微透镜,把光分散到不同方向上去然后再记录下来。

img

如何将光场相机拍摄出的结果还原成类似于普通相机拍摄得到的结果?
image-20240411200533716

  • 优点:“虚拟”的移动相机(取不同方向的光线,好像在移动摄像机的位置)
  • 缺点:对胶片的要求高、成本高

颜色和感知

物理基础

牛顿发现太阳光可以被棱镜分解成不同颜色,这说明白光是多种颜色的光混合出来的。

光谱:光线在不同波长上的分布。
可见光光谱:波长大约在400nm~700nm
img
谱功率密度(SPD):描述光线在不同的波长的分布。
img
谱功率密度具有线性性质。
img

生物基础

颜色的定义:颜色是人类感知的一种现象;它不是光的一种根本的属性。不同波长的光不是"颜色“。
眼睛的结构:
img

  • 瞳孔 --> 光圈

  • 晶状体 --> 透镜

  • 视网膜 --> 感知的地方

    • 视网膜上有感光细胞
    • 视杆细胞:棒状,数量多,只感知光的强度而非颜色
    • 视锥细胞:锥形,数量少,用来感知颜色
      • 视锥细胞又被分为S, M, L三种,用来感知不同波长的光
      • 不同的人这三种视锥细胞分布非常不同

色彩三色理论(Tristimulus Theory of Color)

不同视锥细胞感知的结果 就是 其光谱响应曲线与光强曲线对应位置相乘再积分起来的结果
img
人眼无法测量,大脑也无法接收有关每种光波长的信息,眼睛只能”看到”三个响应值(S,M,L)并最终由大脑接受。

同色异谱

同色异谱:两个不同的光谱,它们最终投射到相同的(S,M,L)响应值。

颜色重建与匹配

image-20240411200900226
img
同时,系数可能是负数。
img

CIR RGB

CIE是一个组织,它们定义了RGB的系统,与之前的加色匹配设置相同,但原色和测试光都是单波长的光,通过测试来测量多少强度的三种原色加起来与测试光相同。
颜色匹配函数描述了每个 CIE RGB 原色光各自多少强度相加起来才能匹配 x 轴上给定波长的单色光。
我们得到的是对应的是单一波长的光,但是现实的光线SPD是很多波长组合在一起的,所以在表示现实颜色时我们要把每一个波长都考虑进去,自然要使用积分表示:
img

颜色空间

标准RGB系统

标准RGB系统:Standardized RGB (sRGB) 系统是一种被广泛运用于各种设备的色彩系统,但是RGB所能形成的色域是有限的。

CIE XYZ系统

CIE XYZ :这个系统我们使用XYZ表示颜色,并且由于绿色部分在轴上分布比较均匀,Y也表示亮度,与RGB的区别其实就是匹配函数的不同。
img
色域:一个颜色空间所有可能表示的颜色
img

基于感知的色彩空间(HSV)

HSV色彩空间被广泛地运用于“颜色选择器”。
img

CIELAB

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

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

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

相关文章

利用国内代理IP突破地域限制访问受限网站实战指南

在某些情况下,由于版权、政策或服务提供商的限制,您可能会遇到无法访问特定网站的问题。这种现象通常被称为“地域限制”。要解决这个问题,一种常用的方法是通过使用国内代理IP来模拟从不同地区进行网络访问,从而绕过这些限制。 以…

Jupyter Notbook如何安装配置并结合内网穿透实现无公网IP远程连接使用

文章目录 推荐1.前言2.Jupyter Notebook的安装2.1 Jupyter Notebook下载安装2.2 Jupyter Notebook的配置2.3 Cpolar下载安装 3.Cpolar端口设置3.1 Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂&am…

Apache—POI详解、小案例展示

简介:Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是,我们可以使用POI在Java程序中对Miscrosoft Office各种文件进行读写操作。 目录 1、应用场景 2、案例代码 2.1 创建 Excel 文件 2.2 读取 Excel 文件 1、应用场景 …

java swing个人财务收支管理系统eclipse开发Mysql数据库CS结构java编程

一、源码特点 java swing 个人财务收支管理系统 是一套完善的窗体设计系统,对理解SWING java 编程开发语言有帮助,系统具有完整的源代码和数据库,,系统主要采用C/S模式开发。 应用技术:javamysql 开发工具&#xf…

web APIs总结(1)

1. 根据CSS选择器来获取DOM元素 (重点) 获取一个DOM元素我们使用谁?能直接操作修改吗?querySelector() 可以返回值:CSS选择器匹配的第一个元素,一个 HTMLElement对象。如果没有匹配到,则返null 获取多个DOM元素我们使…

有时导数据代码比写SQL要快很多

一、背景 接到一个数据需求,是从我们的Mongo中导出的,但要取的值得到很深的层级,尝试写了半天Mongo的查询查不出来,问了半天大模型给的也不对,于是考虑写代码的方式 二、数据格式 // 1 {"_id": ObjectId(&…

FastAPI+Sqlalchemy执行【Mysql】原生sql

一. 前言 当有的复杂sql 用orm不好写出来的时候,此时想要用原生sql查询 原生sql查询,查出的结果是对象原生sql查询,查询结果列表套元组 当你使用 SQLAlchemy 并希望通过创建的 session 对象来执行原生 SQL 语句时,可以使用 ses…

考研数学|张宇《1000题》做不下来怎么办?

不要害怕,你绝对可以做下来! 1000题分为基础题和难题,基础题做题来还好,但是难题就有点偏和怪了,这是大部分考研人对于1000题的一致评价。 我觉得你可以这么做: 基础阶段可以做1000里面比较基础,简单的题…

ReLU Strikes Back: Exploiting Activation Sparsity in Large Language Models

iclr 2024 oral reviewer 评分 688 1 intro 目前LLM社区中通常使用GELU和SiLU来作为替代激活函数,它们在某些情况下可以提高LLM的预测准确率 但从节省模型计算量的角度考虑,论文认为经典的ReLU函数对模型收敛和性能的影响可以忽略不计,同时…

SAP SD学习笔记03 - SD模块中的主数据

上一章讲了SD中的组织单位和SD的简单流程。 SAP SD学习笔记02 - 销售流程中的组织单位-CSDN博客 SAP SD学习笔记01 - 简单走一遍SD的流程:受注,出荷,请求-CSDN博客 这一章讲SD中的主数据: - 得意先Master(客户&…

从最适合自己的地方学习

1)一个人的学习行为,其实就是对新事物的认知由浅入深的过程。在这个过程中,一个人要高效地进行这个过程需要什么呢?全神贯注,反复琢磨。 2)有什么东西能够让自己全神贯注,不惜反复琢磨&#xff…

LeetCode404:左叶子之和

题目描述 给定二叉树的根节点 root ,返回所有左叶子之和。 代码 class Solution { public:int getLeftSum(TreeNode* node, int& sum) {if (node nullptr || (node->leftnullptr &&node->rightnullptr)) return 0;if (node->left) getLeftS…

企业营销线索溯源:拒绝合规风险!

天眼销的线索溯源功能已经上线一段时间了。 溯源功能主要是查找从天眼销下载的企业营销线索的来源,通过输入相应的数据,就能查到该营销线索的来源网站。 虽然我们在所有的宣传介绍都表明我们的数据都是从公开渠道获取的,但是还是有很多用户会…

electron的webview和内嵌网页如何通信

在 Electron 的世界里,webview 标签相当于一个小盒子,里面可以装一个完整的网页,就像一个迷你浏览器。当你想和这个小盒子里的内容说话时(也就是进行通信),这里有几个方法可以帮你做到: 这里只写…

golang es查询的一些操作,has_child,inner_hit,对索引内父子文档的更新

1.因为业务需要查询父文档以及其下子文档,搞了很久才理清楚。 首先还是Inner_hits,inner_hits只能用在nested,has_child,has_parents查询里面 {"query": {"nested": {"path": "comments","query": {"match…

损失函数篇 | YOLOv8更换损失函数之Powerful-IoU(2024年最新IoU)

前言:Hello大家好,我是小哥谈。损失函数是机器学习中用来衡量模型预测值与真实值之间差异的函数。在训练模型时,我们希望通过不断调整模型参数,使得损失函数的值最小化,从而使得模型的预测值更加接近真实值。不同的损失函数适用于不同的问题,例如均方误差损失函数适用于回…

LangChain:索引(Indexes)--基础知识

引言 在当今信息爆炸的时代,如何高效地获取、处理和利用信息成为了关键。LangChain,作为一种先进的语言模型框架,提供了强大的索引功能,帮助用户更好地管理和应用文本数据。本文将详细介绍LangChain索引中的几个核心组件&#xf…

docker,schedule job和environment variables三者的含义与区别

这三个概念在软件开发和部署中扮演着不同的角色: Docker一般长这样:superlifestyle/sscp-api Schedule Job一般长这样:recorrect_ocr_receipt_status 、Sync2D365 Environment Variables一般长这样:D365_BATCH_OPERATION_SIZE ima…

Vue2.x计算属性

1.计算属性 在Vue 插值表达式内实现一些操作其实非常便利&#xff0c;但如果表达式的逻辑过于复杂&#xff0c;会让插值过于臃肿且难以维护。这时可以考虑使用Vue的计算属性 1.1 不使用计算属性的例子 <!DOCTYPE html> <html><head><meta charset"…

【随笔】Git 高级篇 -- 相对引用1 main^(十二)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…