我在读埃里克·雷因哈德等人的论文。被称为“数字图像的摄影色调再现”,也在这里:
http://www.cs.utah.edu/~reinhard/cdrom/
有一个方程式4:

Ld(x,y) = L(x,y)(1 + L(x,y)/L_white^2) / (1 + L(x,y))

“[I] LyWalk值设置为场景LyMAX中的最大亮度……”
还有作者的源代码和各种在线实现。
我的问题是,有一个公式的变体,我无法理解它是如何以及从何而来的例如,查看luxtrender源代码:
http://src.luxrender.net/lux/rev/f48943145d29#l3.77
scale[i] = ( post_scale * (1.0f + lum*recip_Y_white2) / (1.0f + lum) ); //* maxDisplayY;

文中没有提到新的变量“前标度”、“后标度”和“燃烧”他们计算Lúwhite(=Yúwhite)的方式也非常不同:
const float Y_white = pre_scale * alpha * burn;

请问,有人能给我解释一下如何推导出这样的算法吗我想这是基于报纸,但我不知道。。。

最佳答案

在本文中,方程(4)在“3.1初始亮度映射”一节中这不是最后的转变“3.2自动闪避和闪避”部分是burn变量的来源;它将大于1表示闪避,小于1表示闪避在没有阅读代码的情况下,我假设pre_scalepost_scale以及它们内部任意亮度值到实际颜色空间的转换。

10-05 21:21