(1)HDR的格式: 在unity中是 RGBA 每个通道16位 非HDR: 每个通道8位 (2)逐步执行DrawCall时,你会注意到场景看起来比最终结果要暗。发生这种情况是因为这些步骤存储在HDR纹理中。由于线性颜色数据按原样显示,因此看起来很暗,它错误地解释为sRGB。 (3)Luminance函数: 客观测量发光体的亮度,是个客观值 函数: luminance = 0.2125 * Red + 0.7154 * Green + 0.0721 * Blue;
代码和逻辑真的懒得粘贴了,工程中都有
(3)bloom 中控制阈值threshold = 1: 即 只有颜色值大于1的才会被处理(HDR)
用ToneMapping 将HDR 最后转换到 LDR 显示
最后的关系 : Bloom 作用HDR 的结果 , 然后 被 ToneMapping 转化为LDR
所以 Bloom 和 HDR , ToneMapping 三者的关系非常密切 最后附上详细解释: Bloom解释 ToneMapping解释 最后附上git工程:git工程链接
(4)颜色分级: Color Grading 调整图像颜色共3步: (1) 颜色校正: 目的是 使图像与观察场景时的图像相匹配 (2)颜色分级: 对最终图像进行颜色和亮度的改变和矫正 ,可以理解为增加滤镜 以上两步可以合并为一个颜色分级的步骤 (3)色调映射: 将HDR颜色映射到显示范围。
仅应用色调映射的图像 往往不那么丰富多彩, 除非图像非常明亮 ACES可以稍微增加深色的对比度,但是不能替代颜色分级。
|