第2章 辐射度、光度和色度学基本理论

一、前言

         辐射度学(radiology)是一门以整个电磁波段(electromagnetic band)的电磁辐射能(electromagnetic radiation energy)测量为研究对象的科学。计算机图形学中涉及的辐射度学,则集中于整个电磁波段中的“光学谱段”(optical spectrum)中的“可见光谱段”的辐射能的计算。

        光学谱段是指从波长为0.1nm的X射线到波长约为0.1cm的极远红外线这一范围内的电磁波。波长小于0.1nm的是伽马射线,大于0.1cm的则属于微波和无线电波。

       光学谱段按波长分为X射线、远紫外线、近紫外线、可见光、近红外线、短波红外线、中波红外线、长波红外线和远红外线。可见光谱段即能对人眼产生目视刺激而形成光亮感和色感的谱段。可见光谱段的波长范围一般是0.38~0.76μm。

        对人眼产生总的目视刺激的度量是光度学(photometry)的研究范畴。

         对人眼产生色感刺激的度量是色度学(colorimetry)的研究领域。

1.1 辐射度学基本理论

        辐射度学研究的电磁波的辐射能是客观独立的,与观察者无关,即测量计算者和观察者的人眼感受没有关系。辐射度学建立在几何光学的基础上,即辐射是以直线传播的,不考虑电磁波干涉、衍射等性质。

        辐射通量定义为以辐射的形式发射、传输或者接受的功率,即单位时间内的辐射能,单位是W。

       不同波长的光引起人对不同颜色的感知,不同的辐射通量则引起人对光的不同亮度的感知。

        在空间中,光子的流动和传播遵循能量守恒定律。

        1.1.1 立体角

       给定一个正球体,它的半径为R。然后给定一个正圆锥体,正圆锥体的顶点和球心重合,到圆锥底面圆边上任意一点的连线,即正圆锥体斜高,它的值也为R。由正圆锥体的底面圆S所截取的那一部分球面的面积A和球体半径R的平方的比称为立体角(solid angle),其国际单位是球面度(steradian)。

       1.1.2 点光源、辐射强度和辐射亮度

        点光源和力学中的质点类似,只要当用来测定光的辐射的某个位置点,其与光源的距离是光源的最大尺寸的某倍时,该光源就可以被视为点光源,通常该倍数不小于15。

        辐射强度(radiation intensity)定义为在给定传输方向上,单位立体角内光源发出的辐射通量。

        辐射亮度(radiance)定义为辐射表面在其单位投影面积的单位立体角内发出的辐射通量。

752cb7f366004c7b926c6a5c78be1423.jpg

 ▲ 投影面积和辐射亮度示意图

      1.1.3 辐射出射度和辐射入射度

        辐射出射度(radiant exitance)定义为离开光源表面的单位面积的辐射通量。

        辐射入射度(irradiance,又译为“辐照度”)定义为单位面积被照射的辐射通量。

2.2 光度学基本理论

        和辐射度学相比,光度学的研究对象只限于可见光范围内,并且要以人眼的视觉特性为基础。

1e79b363442748218636892b616c9e36.jpg

 表2-1 辐射度量和光度量的名称、符号和定义式

        人眼的视觉特性有以下几种:

        1. 视敏特性    2. 亮度感觉特性   3. 彩色视觉   4. 分辨力

        光度量中最基本的物理量是发光强度,其单位是坎德拉(candela),记作cd。其定义为波长为555nm的光产生的辐射。

        光通量的单位是流明(lumen),记作lm。1lm是指光强度为1cd的均匀点光源在1球面度内发出的光通量。

2.3 色度学基本理论

        2.3.1 什么是颜色

        颜色或色彩是人们通过眼部、脑部及生活经验所产生的一种对光的主观感觉效应。人的视网膜上布满了感光细胞,当有光线传入人眼时,这些细胞就会将光线的输入刺激转化为传递给视神经的电信号,最终在大脑得到解释,形成“颜色”这一种意识感觉。

        2.3.2 颜色的数字化及ClE1931-RGB颜色模型

        因为人眼中有3种感知色彩的视锥细胞,所以理论上用3种不同颜色的光就可以混合出自然界中任何一种颜色来。

        国际照明委员会于1931年定义了一套标准:CIE1931-RGB标准色度系统。CIE1931-RGB颜色模型[插图]分别选择了波长为700nm、546 nm和436nm的这3种波长的光,作为产生三原色的基准,这3种光可称为三原色基准光,它们刺激光锥细胞,可以分别让人感觉到红、绿、蓝3原色。

        2.3.3 ClE1931-XYZ颜色模型

7c7ecae7b0164316898ddd5f8db2d22e.jpg

 ▲图2-10 CIE1931-XYZ颜色模型的色度图

        注意,图中的颜色只是一个效果示意。事实上,没有设备能把自然界中所有的颜色完全显示出来。

        CIE1931-XYZ颜色模型的色度图有如下性质需要注意。

        1)该色度图所示意的颜色包含了一般人可见的所有颜色,即人类可见的颜色范围。色度图的弧线边界对应自然中的单色光。图下方直线的边界则是由多种单色光混合而成。

        2)在该图中任意选定两点,两点间直线上的颜色可由这两点的颜色混合成。给定3个点,3个点构成的三角形内颜色可由这3个点的颜色混合成。

        3)给定3个真实光源,混合得出的色度只能是三角形框定的范围,无法完全覆盖人类视觉色域。

        这就是CIE1931-XYZ标准色度学系统。该系统是国际上色度计算、颜色测量和颜色表征的统一标准,是绝大多数测色仪器的设计与制造依据。

        2.3.4 ClE1931-Yxy颜色模型

        CIE1931-Yxy颜色模型由CIE1931-XYZ模型衍生得来。Yxy中的Y表示光的亮度,x和y则可以依据以下公式,从CIE1931-XYZ模型换算而来:

9c15d10b6e11448e8dce31a49c0647cb.jpg

         这个模型投影到x-y平面上,即得到图2-10中的CIE1931-XYZ色度图,其中x、y分量的取值范围是[0,1]。有时该模型也被称为CIE-xyY。

2.4 伽马校正和sRGB颜色空间

        韦伯-费希纳定律:由德国生理学家韦伯·费希纳所发现的描述人的心理量和物理量。

b7d280154c3443eda2c3a446842a5283.jpg

 式中,k为常数;ΔI为差别阈限;I为标准刺激强度。

        韦伯发现,同一个刺激差别量必须达到一定比例才能引起差别感觉,这一比例就是式(2-23)中的常数k。

        2.4.1 伽马校正

        人们经过大量的实践研究得到,在亮度领域,人眼的伽马值约为1/2.2,其幂函数图像也接近于指数值(伽马值)为1/2的曲线。

        之所以会存在伽马校正这样一个概念,是因为:①基于韦伯-费希纳定律所揭示的原因,人对颜色暗部细节变化的感觉要比对明部细节变化敏感得多;②由于存储空间的限制,只能在有限数量的存储空间中存放尽可能多的颜色数据,而且要使得这一系列颜色变化得均匀,需要在对颜色数据进行编码时尽可能地进行调整,以保留暗部细节。该调整过程就是伽马校正。

        2.4.2 sRGB颜色空间

        sRGB颜色空间是惠普公司与微软公司于1996年一起开发的用于显示器、打印机及互联网图像存储的一种标准RGB颜色空间。

        sRGB定义了红色、绿色与蓝色三原色的颜色,即在其他两种颜色值都为0时该颜色的最大值。

        2.4.3 Unity 3D中的伽马空间和线性空间

        Unity 3D有两个颜色空间(color space),即伽马空间(gamma space)和线性空间(linear space);以及基于这两种颜色空间所定义的工作流,即伽马工作流(gamma workflow)和线性工作流(linear workflow)。

        选用指数值为1的线性函数对其进行变换,得到的是依然呈线性分布的主观反射率(或目标颜色),称这些目标颜色构成的颜色空间为线性空间。

        选用一个指数值不为1的幂函数,把源颜色变换成目标颜色时,称这些目标颜色构成的颜色空间为伽马空间。

        虽然长久以来伽马空间是标准的开发用颜色空间,但使用线性颜色空间将能得到更精确的渲染结果。

        如果选择使用线性工作流,那么存储了颜色数据的纹理无论是在线性空间或伽马空间中创建的,都能正常工作。基于历史原因,图片文件中保存的颜色数据很多都已经转换到了伽马空间。而在渲染时,渲染器则需要使用基于线性空间的颜色数据,所以直接使用这些在伽马空间中的颜色数据会导致结果不准确。因此,在渲染计算时,需要使用sRGB采样器,这种采样器在对纹理采样过程中能把颜色数据从伽马空间转换到线性空间。

        Unity 3D引擎的计算生成光照贴图过程始终是在线性空间中完成的,而计算结果则变换到伽马空间后存储到光照贴图文件中去,即无论当前的工作流是线性工作流或者伽马工作流,Unity 3D引擎所生成的光照纹理都是相同的。

        在线性工作流下,且未使用HDR时,将使用特殊的帧缓冲器类型以支持sRGB读取和sRGB写入(读取时从伽马空间转换为线性空间,写入时则相反)。当此帧缓冲区用于混合或作为纹理绑定时,在使用之前将这些值转换为线性空间。写入这些缓冲区时,正在写入的值将从线性空间转换为伽马空间。如果以线性模式和非HDR模式进行渲染,则所有后期处理特效的源缓冲区和目标缓冲区都将启用sRGB读到和写入,以便后期处理和后期处理混合发生在线性空间中。

        在线性工作流下,如果提供给渲染器的纹理文件中的颜色数据原本就是基于线性空间,那需要设置此纹理文件禁用sRGB采样。

        如果当前的是伽马工作流,那么选中与取消选中sRGB(Color Texture)复选框都是没有意义的,因为在伽马工作流下是不会进行sRGB采样。另外,如果这些纹理是用来当作数据查找表,或者说是一个法线贴图,也不应对其进行校正,而是保持数据的原有值。

        虽然使用线性工作流能确保得到更精确的渲染画面,但若有些平台上的硬件只支持伽马空间,就不得不需要使用伽马工作流。当使用伽马工作流时,尽管用来计算的纹理颜色数据是在伽马空间中存储的,采样器在采样过程中也不会将其转换到线性空间中去。但Unity 3D着色器的计算代码依然以计算线性空间颜色的方法去计算处理这些被编码成伽马空间中的颜色数据,而且为了确保一个最终可接受的渲染结果,引擎会在向最终显示给用户看的帧缓冲区写入颜色数据时调整一些不匹配(mismatched)的值,而且在这个调整过程中不做伽马校正。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营三刷day35 |贪心 之 860.柠檬水找零 406.根据身高重建队列 452. 用最少数量的箭引爆气球

三刷day35 860.柠檬水找零406.根据身高重建队列452. 用最少数量的箭引爆气球 860.柠檬水找零 题目链接 解题思路: 局部最优:遇到账单20,优先消耗美元10,完成本次找零。全局最优:完成全部账单的找零。 代码如下&#x…

Internet Explorer 降级

Internet Explorer 降级 1. version2. Internet Explorer 降级References 1. version 帮助 -> 关于Internet Explorer(A) 2. Internet Explorer 降级 开始 -> 控制面板 -> 卸载程序 -> 查看已安装的更新 搜索 Internet -> Internet Explorer 11 -> 卸载 -…

office办公技能|word中的常见使用问题解决方案2.0

一、设置多级列表将表注从0开始,设置为从1开始 问题描述:word中插入题注,出来的是表0-1,不是1-1,怎么办? 写论文时,虽然我设置了“第一章”为一级标题,但是这三个字并不是自动插入的…

[leetcode]118.杨辉三角

前言:剑指offer刷题系列 问题: 给定一个非负整数 *numRows,*生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,…

C# NumericUpDown 控件正整数输入控制

用到了控件的 KeyPress 和 KeyUp事件。 KeyPress 中控制输入“点、空格,负号”; KeyUp 中防止删空,以及防止输入超过最大值或最小值 。 private void nudStart_KeyPress(object sender, KeyPressEventArgs e){numericUpDownKeyPress(sender…

CAPL - 如何实现弹窗提示和弹窗操作(续)

目录 函数介绍 openPanel closePanel 代码示例 1、简单的打开关闭panel面板

美团0309春招笔试题

下面是美团2024-03-09笔试真题,笔者进行了VP,由于未参与评测,故不保证正确性,仅供参考。 第一题 小美的MT 首先找到原来字符串中含有的M和T的数量,记作cnt。然后剩余n - cnt个字符是可以修改的,但这取决于…

二叉树|236.二叉树的最近公共祖先

力扣题目链接 class Solution { public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if (root q || root p || root NULL) return root;TreeNode* left lowestCommonAncestor(root->left, p, q);TreeNode* right lowestCommonAncesto…

【办公类-21-10】三级育婴师 视频转文字docx(等线小五单倍行距),批量改成“宋体小四、1.5倍行距、蓝色字体、去掉五分钟”

作品展示 背景需求 今天将最后3个育婴师操作视频做整理 第1步:视频MP4转MP3 【办公类-40-01】20240311 用Python将MP4转MP3提取音频 (家长会系列一)-CSDN博客文章浏览阅读393次,点赞9次,收藏6次。【办公类-40-01】20…

鸿蒙应用开发-录音保存并播放音频

功能介绍: 录音并保存为m4a格式的音频,然后播放该音频,参考文档使用AVRecorder开发音频录制功能(ArkTS),更详细接口信息请查看接口文档:ohos.multimedia.media (媒体服务)。 知识点: 熟悉使用AVRecorder…

码垛机与人工搬运:效率与安全性的比较分析

在现代包装行业中,泡沫箱因其轻便和保温特性被广泛用于商品的包装与运输。随着自动化技术的不断发展,码垛机成为提升泡沫箱生产效率、降低劳动强度的关键技术。本文旨在比较码垛机与人工码垛在泡沫箱生产中的优势,并探讨自动化码垛的未来发展…

c语言文件操作(下)

目录 1.文件的随机读写1.1 fseek1.2 ftell1.3 rewind 2. 文件结束的判定2.1 文本文件读取结束的判断2.2 二进制文件读取结束的判断 3. 文件缓冲区 1.文件的随机读写 1.1 fseek 根据⽂件指针的位置和偏移量来定位⽂件指针。 函数原型: int fseek (FILE * stream,…

【STL学习】(2)string的模拟实现

前言 本文将模拟实现string的一些常见功能,目的在于加深理解string与回顾类与对象的相关知识。 一、前置知识 string是表示可变长的字符序列的类string的底层是使用动态顺序表存储的string对象不以’\0’字符为终止算长度,而是以size有效字符的个数算长…

7.2024

小明发现了一个奇妙的数字。它的平方和立方正好把 0 ~ 9 的 10 个数字每个用且只用了一次。你能猜出这个数字是多少吗? 代码: import java.util.HashSet; import java.util.Set;public class 第七题 {public static void main(String[] args) {int i1;…

Docker数据卷与网络模式

华子目录 数据卷注意数据卷操作查看镜像,容器,数据卷所占空间 Docker的网络模式查看指定容器的网络模式bridge模式none模式host模式container模式 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有…

LangChain-Chatchat

文章目录 关于 LangChain-Chatchat特性说明实现原理文档处理流程技术路线图(截止0.2.10) 使用 关于 LangChain-Chatchat Langchain-Chatchat(原Langchain-ChatGLM)基于 Langchain 与 ChatGLM 等语言模型的本地知识库问答。 gith…

阿赵UE学习笔记——21、武器插槽

阿赵UE学习笔记目录 大家好,我是阿赵。   继续学习虚幻引擎的使用,这次来看看骨骼插槽的用法。 一、准备资源 这次的目的很简单,就是给之前做了角色蓝图的钢铁侠手上加一把枪。   所以先要找到枪的资源。在虚幻商城里面搜索weapon&#…

Transformer 模型中增加一个 Token 对计算量的影响

Transformer 模型中增加一个 Token 对计算量的影响 Transformer 模型中增加一个 Token 对计算量的影响1. Transformer 模型简介2. Token 对计算量的影响3. 增加一个 Token 的计算量估算4. 应对策略5. 结论 Transformer 模型中增加一个 Token 对计算量的影响 Transformer 模型作…

【二】TensorFlow神经网络模型构建之卷积函数

卷积函数是构建神经网络的重要支架,是在一批图像上扫描的二维过滤器。 tf.nn.convolution(input,filter,padding,stridesNone,dilation_rateNone,nameNone,data_formatNone)该函数计算N维卷积的和。tf.nn.conv2d(input,filter,padding,strides,use_cudnn_on_gpuNon…

前端学习<二>CSS基础——02-CSS属性:背景属性

background 的常见背景属性 css2.1 中,常见的背景属性有以下几种:(经常用到,要记住) background-color:#ff99ff; 设置元素的背景颜色。 background-image:url(images/2.gif); 将图像设置为背景。 background-repeat…