(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可以稍微增加深色的对比度,但是不能替代颜色分级。
关于在“颜色分级中的详细步骤:
(1)后曝

本文详细介绍了Unity中高动态范围(HDR)格式,包括其与非HDR的区别,以及在DrawCall过程中的表现。文章还探讨了Luminance函数,以及在Bloom效果中如何通过阈值控制处理。ToneMapping用于将HDR转换为低动态范围(LDR)显示。颜色分级方面,涵盖了后曝光、对比度、滤镜、色调偏移和饱和度的调整步骤,以实现丰富的图像效果。文章最后提供了相关代码和工程链接以供参考。
最低0.47元/天 解锁文章
821

被折叠的 条评论
为什么被折叠?



