hdrp是通过computeshader来处理颜色映射的,让效果能够更生动。
执行的computeshader是PostProcessing下的LutBuilder3D.compute的KBuild内核。
AlexaLogC色彩空间
首先要将颜色值映射到AlexaLogC的空间,主要目的是要一个能到58.85666大小的颜色空间,方便后面计算。这个调色空间可以让色彩生成更明亮的效果。

如果_Params.x大于0则执行颜色映射,执行ColorGrade。
在ColorGrade里面首先为了计算正确先转到线性空间LogCToLinear。
LMS空间
然后会转到LMS色彩空间LinearToLMS,LMS空间是由人眼的三种锥体的响应表示的颜色空间,以其在长波长,中波长和短波长处的响应度(灵敏度)峰命名。
转到LMS后目的是乘上一个LMS三个颜色波长的偏移_ColorBalance。做完偏移计算再转回线性空间LMSToLinear。LMS合线性空间的转换都再Color.hlsl涨做的,实际上就是一个矩阵转换。
ACES空间
然后如果有用学院色彩空间ACES则执行ACES_to_ACEScc,这里主要是经验值转化。如果不用学院派色彩则直接转回LogC空间。
后面是对logC空间的值做一些

本文详细介绍了HDRP(High Definition Render Pipeline)中如何利用Computeshader进行颜色映射,以实现更生动的视觉效果。首先,颜色被转换到AlexaLogC色彩空间以进行亮度增强。接着,经过LMS色彩空间转换,应用_LMSColorBalance进行颜色调整。如果启用ACES色彩空间,会执行ACES_to_ACEScc和ACES_to_ACEScg转换。然后,通过Gamma空间模拟Adobe处理方式,调整阴影和高光,并在YRGB色彩空间中进行快速色彩变化。最后,使用不同的Tonemap模式如NeutralTonemap、CustomTonemap、ACEScg_to_ACES等进行映射,确保色彩的准确呈现。整个过程涉及到多个色彩空间的转换和计算,以实现高级的调色效果。
订阅专栏 解锁全文
2万+

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



