#import "Common/ShaderLib/Hdr.glsllib" | |
varying vec2 texCoord; | |
uniform sampler2D m_Texture; | |
uniform sampler2D m_Lum; | |
uniform sampler2D m_Lum2; | |
uniform float m_A; | |
uniform float m_White; | |
uniform float m_BlendFactor; | |
uniform float m_Gamma; | |
void main() { | |
float avgLumA = HDR_DecodeLum( texture2D(m_Lum, vec2(0.0)) ); | |
float avgLumB = HDR_DecodeLum( texture2D(m_Lum2, vec2(0.0)) ); | |
float lerpedLum = mix(avgLumA, avgLumB, m_BlendFactor); | |
vec4 color = texture2D(m_Texture, texCoord); | |
vec3 c1 = HDR_ToneMap(color.rgb, lerpedLum, m_A, m_White); | |
//vec3 c2 = HDR_ToneMap2(color.rgb, lerpedLum, m_A * vec2(0.25), m_White); | |
//float l1 = HDR_GetLuminance(c1); | |
//float l2 = HDR_GetLuminance(c2); | |
//vec3 final = mix(c2, c1, clamp(l1, 0.0, 1.0)); | |
//tonedColor = pow(tonedColor, vec3(m_Gamma)); | |
gl_FragColor = vec4(c1, color.a); | |
} | |