Tonemapping常用的几种算法
来源:互联网 发布:自己设计房屋软件 编辑:程序博客网 时间:2024/05/29 10:30
SimpleReinhard :
float4 fragSimpleReinhard(v2f i) : SV_Target
{float4 texColor = tex2D(_MainTex, i.uv);
float lum = Luminance(texColor.rgb);
float lumTm = lum * _ExposureAdjustment;//曝光系数
float scale = lumTm / (1+lumTm);
return float4(texColor.rgb * scale / lum, texColor.a);
}
------------------------------------------------------------------------------------
Hable:
float4 fragHable(v2f i) : SV_Target
{
const float A = 0.15;
const float B = 0.50;
const float C = 0.10;
const float D = 0.20;
const float E = 0.02;
const float F = 0.30;
const float W = 11.2;
float3 texColor = tex2D(_MainTex, i.uv).rgb;
texColor *= _ExposureAdjustment;
float ExposureBias = 2.0;
float3 x = ExposureBias*texColor;
float3 curr = ((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;
x = W;
float3 whiteScale = 1.0f/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F);
float3 color = curr*whiteScale;
return float4(color, 1.0);
}
-------------------------------------------------------------------------
Photographic:
float4 fragPhotographic(v2f i) : SV_Target
{
float4 texColor = tex2D(_MainTex, i.uv);
return 1-exp2(-_ExposureAdjustment * texColor);
}
-------------------------------------------------------------------------------
OptimizedHejiDawson:ds的算法跟这个接近
float4 fragOptimizedHejiDawson(v2f i) : SV_Target
{
float4 texColor = tex2D(_MainTex, i.uv );
texColor *= _ExposureAdjustment;
float4 X = max(float4(0.0,0.0,0.0,0.0), texColor-0.004);
float4 retColor = (X*(6.2*X+.5))/(X*(6.2*X+1.7)+0.06);
return retColor*retColor;
}
算法千差万别,但是目的是一样的,就是通过公式,把输入值HDR颜色或正常颜色映射到0-1范围内去显示,并且根据曝光系数调整曲线 使大部分颜色看起来更加接近该亮度。
- Tonemapping常用的几种算法
- 几种常用的算法
- 几种常用的基本排序算法
- C#几种常用的排序算法
- C#几种常用的排序算法
- C#几种常用的排序算法:
- 几种常用的排序算法
- C#几种常用的排序算法
- 几种常用的算法简介
- 几种常用的小算法
- 最短路的几种常用算法
- 几种常用的排序算法
- 分享几种常用算法的思想
- 几种常用的排序算法
- 几种常用算法的复杂度比较
- 几种常用的排序算法
- 几种常用的排序算法
- 几种常用的排序算法
- Token验证详解
- i2c总线协议
- redis主从安装配置和使用
- PlayMaker GUI跟随布局的使用
- 数人云|关于分布式任务调度平台,数人云的经验都在这里了
- Tonemapping常用的几种算法
- DC保存至BMP图像
- Python数据获取和预处理
- Okio读写流源码详解(第三篇(GzipSink压缩源码详解))
- Chrome浏览器实用插件
- URL.createObjectURL和URL.revokeObjectURL
- leetcode 164. Maximum Gap 最大间隔 + 一个很好的桶排序示范
- Python序列
- ueditor 关闭统计以及元素路径关闭 以及 禁止将标签转为p标签