您可能需要更进一步:以人眼可以捕捉到的图像甚至人类可以感知到的方式渲染图像。
有两种解释方法。我都会做。
解释1:渲染看起来在视觉上逼真的图像。
最终,您的图像仍然需要显示在某个地方。关键是:您要以这样的方式渲染图像,即在特定显示设备上*显示*该图像时,它会产生与原始辐射图像相同的感觉。
这是解开这个想法的方法。
在现实世界中,辐射光谱(即光的真实分布)进入您的眼睛并刺激大约1个四个光接收器。受体的刺激会产生与图像相关的色彩感。
在渲染中,我们对生成的光谱没有任意控制权。幸运的是,由于我们(通常)只有三个视锥,每个视锥仅产生一个标量值,因此可以通过恰好使用三个基色来再现色彩视觉。最重要的是,您仅使用三个波长的线性组合即可产生任何颜色感(最多可能需要是负数的几种颜色,在这种情况下,您将使用不同的原色)。
您没有其他选择。几乎所有的彩色显示设备都使用sRGB标准,该标准提供三个基色(实际上通常没有单个波长)。很好,因为事实证明它们都是抽象的,您不必在意。
为了弄清在视觉上准确渲染的混乱,下面是算法:
- 使用正确的辐射度计算渲染图像。您可以跟踪单个波长的光或波长段。随你。最后,您将获得一张图像,该图像具有在每个点处接收到的光谱的表示。
- 在每个像素处,获取渲染的光谱,并将其转换为CIE XYZ颜色空间。这样做可以将光谱的乘积与标准的观察者功能集成在一起(请参阅CIE XYZ定义)。
- 这将产生三个标量值,即CIE XYZ颜色。
- 使用矩阵变换将其转换为线性RGB,然后从那里使用线性/幂变换将线性RGB转换为sRGB。
- 从浮点转换为uint8并保存,将值限制在范围之外(您的监视器无法表示它们)。
- 将uint8像素发送到帧缓冲区。
- 显示屏采用sRGB颜色,进行逆变换以生成特定强度的三个原色。每个都缩放其负责的任何像素的输出。像素点亮,产生光谱。该光谱(希望)是您绘制的原始光谱的一个同分异构体。
- 您可以像感知渲染频谱一样感知频谱。
解释2:尝试模拟人眼可能会收到的最终数据,以进行可视化或补偿LDR显示。
我认为,这一含义不那么有用。本质上,您正在尝试生成一种图像,该图像会调整大脑为娱乐/获利而感知的方式。
例如,今年SIGGRAPH上有一篇论文,他们模拟了残像和色彩还原,以使图像看起来在感觉上有所不同。当然,他们这样做的唯一原因是因为我们使用的显示器都是低动态范围(LDR)。关键是要模拟某人在实际的高动态范围(HDR)显示下作为实际图像数据可能看到的效果。
在实践中,结果证明效果不佳。例如,对于残像,我们看到残像是因为非常明亮的刺激耗尽了色细胞。如果您改为尝试使用伪造的残像来刺激效果,则看起来可能有点相似-但由于它是一种完全不同的机制,因此并不是很令人信服。
如果您想尝试一下,这种图形实际上在文献中还没有得到充分研究。所提到的论文或多或少是我们拥有的最先进方法的示例。我认为,尽管如此,目前的共识是,(至少在此时)不值得尝试进行仿真,因为充其量,您最多只能通过替代不同的视觉效果来逼近真实的视觉效果,而这并不是真的工作。
1杆+ 3 *锥,通常情况。近似值是因为人类可能只有零个功能性光接收器,最多推测为七个(有史以来观察到的最高值为五个)。