Graphics 光线追踪和计算机图形学。颜色感知功能 总结

Graphics 光线追踪和计算机图形学。颜色感知功能 总结,graphics,raytracing,Graphics,Raytracing,这是一个关于如何将光线跟踪模型中计算的灯光强度值映射到人类感知的颜色值的问题。我建立了一个光线追踪模型,发现将平方反比定律用于计算光强度会产生我认为不直观的图形结果。我认为这部分与8位彩色图像可用的亮度值范围有限有关,但更可能的是,我不应该使用光强度和像素颜色之间的线性映射 背景 我最近对使用光线跟踪技术创建计算机图形产生了兴趣 一个基本的光线跟踪模型可能是这样工作的 从要渲染的每个屏幕像素的方向上的摄影机(眼睛)中心计算光线向量 对世界上的所有对象执行向量碰撞测试 如果发生碰撞,请在发生碰撞

这是一个关于如何将光线跟踪模型中计算的灯光强度值映射到人类感知的颜色值的问题。我建立了一个光线追踪模型,发现将平方反比定律用于计算光强度会产生我认为不直观的图形结果。我认为这部分与8位彩色图像可用的亮度值范围有限有关,但更可能的是,我不应该使用光强度和像素颜色之间的线性映射

背景 我最近对使用光线跟踪技术创建计算机图形产生了兴趣

一个基本的光线跟踪模型可能是这样工作的

  • 从要渲染的每个屏幕像素的方向上的摄影机(眼睛)中心计算光线向量
  • 对世界上的所有对象执行向量碰撞测试
  • 如果发生碰撞,请在发生碰撞的点记录对象的颜色
  • 创建从碰撞点到最近灯光的新矢量
  • 将灯光的颜色乘以对象的颜色
这将创建合理但外观平坦的图像,即使计算中包含曲面法线也是如此

模型扩展 我的兴趣是尝试通过将距离纳入光线计算中来扩展此模型

如果对象被距离
d
的灯光照亮,则如果对象从光源移动距离
2d
,则照明强度将降低4倍。这是平方反比定律

它不适用于所有灯光模型。(例如,从无限远处到达的灯光的强度与对象的位置无关。)

通过玩弄我的代码,我发现这个平方反比定律并不能产生我所希望的真实照明效果

例如,我为房间/场景的模型构建了一些初始对象,以进行测试

  • 有些对象与摄影机的距离为3-5
  • 有一些墙构成了房间的边界,我将它们放置在距离相机10到100的位置
  • 有一些灯光,距离摄像机10级
我发现的是这个

  • 如果房间边界与摄影机的距离大于10,则颜色值非常暗
  • 如果房间边界距离摄影机100,则该边界完全不可见
这与我直觉上的预期不符。这在数学上是有意义的,因为我使用线性函数在颜色强度和RGB像素值之间进行转换

讨论 将对象从距离10移动到距离100会将颜色强度降低一个系数
(100/10)^2=100
。由于像素RGB颜色在0-255的范围内,显然,因子100非常重要,这可以解释为什么距离10移动到距离100的对象会变得完全不可见

然而,我怀疑人类对颜色的感知在某种程度上是非线性的,我认为这是一个已经在计算机图形学中解决的问题。(否则光线跟踪引擎将无法工作。)

我猜会有某种颜色感知函数,它描述了绝对光强度应该如何映射到人类对光强度/颜色的感知

有人知道这个问题吗,或者可以为我指出正确的方向吗?

我找到了一个资源:。亚马逊有几本书涉及光线追踪的主题。