你知道如果图像足够亮或曝光过度,每种颜色最终会变成白色吗?我正在尝试找出一个函数来执行此操作,以以逼真且令人愉悦的方式应用于生成的 HDR 图像(我猜使用理想化的相机性能作为参考)。
我想要获得的算法/函数应该解决的问题是,假设您有一个橙色像素,其(线性 RGB)值 {1.0, 0.2, 0.0}。如果您将每个值乘以 1.0 或更少的因子,一切都很好,但是假设您将该像素乘以 6,现在您得到 {6.0, 1.2, 0.0},您如何处理超出范围的红色和绿色值6.0 和 1.2?你可以剪裁它们,得到 {1.0, 1.0, 0.0},遗憾的是 Photoshop 和 3DS Max 似乎在做这件事,但它看起来非常错误,因为现在你以前的橙色像素是黄色的(所以如果你从任何饱和开始色调(意味着至少一个通道是 0.0)你总是以洋红色、黄色或青色结束)并且它永远不会变成白色。
我考虑将一个通道的剩余部分取一半并在其他通道之间平均分配,因此例如 {1.6, 0.5, 0.1} 将变为 {1.0, 0.8, 0.4} 但它过于简单且不太现实。我强烈怀疑一个可接受的解决方案可能接近这个微不足道的任何地方。
我确信一定已经对这个主题进行了研究,但我找不到任何相关的文献,而且感光度法似乎并不是我想要的。