为了学术目的,我采用了PBRT,以便它写出关于交叉口和一般路径相关数据的数据(我使用了路径曲面积分器)。
然而,在某个交点得到频谱的RGB值有一些困难。很明显,我必须在交叉处生成的频谱类上使用ToRGB(float* rgb),但是后来观察到的数据有点奇怪。RGB值驻留在0-1范围内是有意义的。这似乎是经常发生的情况,但有时我也看到三胞胎,如
(1.851088, 0.882869, 0.772866)经过更仔细的检查,我的大约400.000个交叉口的RGB的最大值分别是3.772.00和1.76。下限似乎是正确的,因为它们接近于零。所以问题是PBRT使用的范围是什么,这样我就可以将其转换为0.0 - 1.0。
谢谢
发布于 2014-06-18 21:23:47
我还没有读过PBRT,也没有详细地看过它的源代码,但我不完全相信您的前提是
RGB值驻留在0-1范围内是有意义的。
在现实中,任何一点的光强度都可以任意大得多;太阳肯定比显示器所能显示的最亮的像素还要亮。所以我假设PBRT光谱可以任意强烈。在这种情况下,要将其映射到有限的光模型,您可以缩小数值,或者将其压缩到1.0 (或两者的某种组合)。
缩小比例就像缩小相机的光圈或缩小瞳孔。
用夹紧这些值可以使颜色“洗掉”,就像一张太阳的数码照片可能有许多像素都与1.0, 1.0, 1.0相连一样。
https://stackoverflow.com/questions/24289051
复制相似问题