神秘海域ToneMapping公式
来源:互联网 发布:淘宝和天猫 编辑:程序博客网 时间:2024/04/29 13:42
这是神秘海域的公式:
float3 ACESFilm( float3 x )
{
float
a = 2.51f;
float
b = 0.03f;
float
c = 2.43f;
float
d = 0.59f;
float
e = 0.14f;
return
saturate((x*(a*x+b))/(x*(c*x+d)+e));
}
一般手机端做的优化是直接乘以一个常数。手机端这样只需要跑两条指令,而用神秘海域的需要跑6条。但是其实神秘海域的才是正确最优的做法。但手机端为了效率没办法啦。
half4 DecodeHDR(half4 color)
{
if(ENCODEHDR)
{
color.rgb = DecodeGamma(color.rgb);
color.rgb *= SCENE_MAX_LUMINANCE;
}
return color;
}
half3 DecodeHDR(half3 color)
{
if(ENCODEHDR)
{
color = DecodeGamma(color);
color *= SCENE_MAX_LUMINANCE;
}
return color;
}
half DecodeHDR(half color)
{
if(ENCODEHDR)
{
color = DecodeGamma(color);
color *= SCENE_MAX_LUMINANCE;
}
return color;
}
阅读全文