这篇博客,我们将探讨如何将透射光谱或吸收光谱转换成人眼可感知或电脑屏幕可显示的颜色。我们将通过一个有趣的示例来展示这一过程:将金纳米颗粒分散到玻璃中以使玻璃变成红色。
玻璃是如何着色的
在光学领域,我们经常会看到透射光谱、反射光谱和吸收光谱,大多数情况下,我们并未留意具有特定光谱的材料在人眼中会呈现怎样的外观。但是,当涉及使用色素和染料时,我们必须考虑材料的视觉外观。
考虑到玻璃加工时需要高温,塑料工业中使用的有机染料不能用于玻璃着色,因为这类染料无法承受如此高的温度。虽然有许多其他方法可用于生产不透明或乳白色玻璃,以及通过涂层获得颜色,但获得色调均匀的透明玻璃,主要有两种方法:
- 将在可见光范围内具有吸收带的金属离子溶解到玻璃中(例如,铁 (II) 离子会产生绿色色调)
- 掺杂,即将纳米颗粒分散到玻璃中,在可见光范围内产生强烈的散射和/或吸收
第一种方法要简单得多,但问题在于,并不存在能够稳定吸收绿光(会产生红色色调)的金属离子,因此红色色调必须通过纳米颗粒掺杂产生。生产含有纳米颗粒的玻璃通常是先将一种物质(例如金属)溶解到熔融玻璃中,然后通过精心设计的热处理工艺,使该物质析出为所需尺寸的纳米颗粒。由于散射和吸收在很大程度上取决于颗粒的大小(和形状),如下文所述,通过调整热处理可以在一定程度上调节色调。
由蔓越莓红玻璃(又称“蔓越莓玻璃”)制成的碗。照片由 PetitPoulailler 提供,获 CC BY 2.0 协议授权,通过 Wikimedia Commons 共享。
要获得含纳米颗粒的玻璃,目前最常见的方法是将硒与镉沉淀成纳米颗粒(称为“硒红玻璃”),但历史上唯一已知的方法是使用金元素。接下来,我们将使用 COMSOL Multiphysics® 软件来研究金纳米颗粒的半径如何影响含纳米颗粒的玻璃的最终色调。
从散射计算中获取光谱
波动光学模块是 COMSOL Multiphysics® 的一个附加模块,非常适用于研究含金纳米颗粒的玻璃的透射光谱与颗粒大小的关系。实际上,我们只需对金纳米球的光散射案例模型做一些简单的修改,就可以获得透射光谱。将颗粒周围区域的折射率设定为玻璃的折射率后,需要定义获得透射光谱所需的变量。首先,计算散射和吸收截面
和
以及二者的总和,即消光截面 \sigma _\mathrm{ext} = \sigma _\mathrm{sca}+\sigma _\mathrm{abs} ,相当于透射时的总衰减。在上述公式中, I_0 是入射强度,\mathbf{S}_\mathrm{sca} 是散射场的坡印廷矢量,Q 是耗散功率密度。这两项分别对粒子表面和体积进行积分。这些计算可以方便地通过添加 COMSOL Multiphysics® 6.3 版本中新增的 截面计算 功能来实现,该功能可将上述定义的三个散射截面作为预定义变量使用。
截面计算 功能可用于处理计算截面所需的所有设置。
最后的步骤是根据颗粒半径和波长进行扫描,并绘制结果图。消光截面如下图所示。
分散在玻璃中的金(Au)纳米颗粒在一定颗粒半径范围内的消光截面。
从结果可以看出,纳米颗粒尺寸越大,整体效果越强。然而,增大颗粒尺寸需要更多的金,而我们希望用最少的金获得最深的颜色。为此,我们通过计算衰减系数(也称为“光密度”) \alpha _\mathrm{ext},来对结果进行归一化处理 :
式中, c_\mathrm{Au}, m_0, 和 r_0 分别是金的质量密度、纳米颗粒质量和纳米颗粒半径。最后,根据 \alpha _\mathrm{ext} 的定义,我们可以得到透射率与波长的函数关系,即透射光谱:
式中,d_0 是样品的厚度。从下图中可以看出,存在一个最佳情况:颗粒半径在 25 nm 左右时颜色最浓。
在金质量浓度为 0.02 g/L 的情况下,1 cm 厚的玻璃上分散有不同半径的金纳米颗粒时的透射率。
将透射光谱转换为颜色
假设有一些玻璃样品,透射光谱如上图所示,它们看起来会是什么颜色?要回答这个问题,我们需要计算光谱的三刺激值;本质上,这是一种可以量化人眼中三种视锥细胞对任意透射光谱的反应的标准化方法 。其值如下:
X = \frac{1}{N} \int\limits_{380\, \mathrm{nm}}^{780\, \mathrm{nm}} T(\lambda) I(\lambda) \bar{x}(\lambda)\mathrm{d}\lambda,}\\
Y = \frac{1}{N} \int\limits_{380\, \mathrm{nm}}^{780\, \mathrm{nm}} T(\lambda) I(\lambda) \bar{y}(\lambda)\mathrm{d}\lambda,}\\
Z = \frac{1}{N} \int\limits_{380\, \mathrm{nm}}^{780\, \mathrm{nm}} T(\lambda) I(\lambda) \bar{z}(\lambda)\mathrm{d}\lambda ,}
式中,I(\lambda) 是背景光谱(这里我们选择使用CIE 标准光源 D65 ,相当于日光),\bar{x}(\lambda), \bar{y}(\lambda), 和 \bar{z}(\lambda) 是不同类型锥细胞的 CIE 颜色匹配函数。这里,将归一化定义为
N = \int\limits_{380\, \mathrm{nm}}^{780\, \mathrm{nm}} I(\lambda) \bar{y}(\lambda)\mathrm{d}\lambda}.
颜色匹配函数和光源的曲线图如下所示。
显示标准光源 D65(左)和三种配色函数(右)的曲线图。
最后,如果我们希望在电脑屏幕上显示颜色,就需要将三刺激值转换为 sRGB 值,这可以通过以下线性变换来实现:
R \\
G \\
B
\end{bmatrix}
=
\begin{bmatrix}
+3.2406 & -1.5372 & -0.4986 \\
-0.9689 & +1.8758 &+0.0415 \\
+0.0557 & -0.2040 & +1.0570
\end{bmatrix}
\begin{bmatrix}
X \\
Y \\
Z
\end{bmatrix}
结合非线性伽马校正
\begin{cases}
12.92C, & C\leq 0.0031308 \\
1.055C^{1/2.4}, & C>0.0031308,
\end{cases}
式中, C代表 X、Y 或 Z。下图显示了玻璃样品的 3D 效果图,以及从上述光谱中提取的颜色。
玻璃样品的 3D 效果图。
此外,作为模型的点睛之笔,将每个光谱的绘图颜色更改为该光谱所转换的颜色。我们可以使用 App 开发器中的一个简单 Java 方法来简化这一过程。最终结果如下图所示。这里,我们可以看到,通过调整金纳米颗粒的大小,确实可以改变含有金纳米颗粒的玻璃的颜色:尺寸较小的颗粒会衰减绿色波长使玻璃呈现红色,而逐渐增大颗粒尺寸则会使衰减向橙色波长转移,从而使玻璃呈现蓝色。
结语
通过将金纳米颗粒分散到玻璃中使其变红的案例研究,我们了解了如何通过标准散射计算获得透射光谱,并将其转换为可在计算机屏幕上显示的 RGB 颜色。
想要亲自动手尝试模拟本文中讨论的模型吗,请单击下面的按钮获取案例模型。
延伸阅读
想了解更多有关光学散射和转换光谱的信息吗?请查看以下学习资源:
Oracle 和 Java 是 Oracle 和/或其附属机构的注册商标。
评论 (0)