18 #ifndef PIC_GL_FILTERING_FILTER_DRAGO_TMO_HPP 19 #define PIC_GL_FILTERING_FILTER_DRAGO_TMO_HPP 21 #include "../../base.hpp" 23 #include "../../gl/filtering/filter.hpp" 24 #include "../../gl/filtering/filter_luminance.hpp" 94 uniform sampler2D u_tex;\n
103 ivec2 coords = ivec2(gl_FragCoord.xy);\n
104 vec3 color = texelFetch(u_tex, coords, 0).xyz;\n
105 float L = dot(vec3(0.213, 0.715, 0.072), color);
106 float L_scaled = L /
Lwa;\n
108 float Ld =
constant2 * log(1.0 + L_scaled) / log(2.0 + 8.0 * tmp);\n
109 color = (color * Ld) / L;\n
110 __GAMMA__CORRECTION__ \n
111 f_color = vec4(color, 1.0);\n
128 this->b =
b > 0.0f ?
b : 0.95f;
129 this->LMax =
LMax > 0.0f ?
LMax : 1e6f;
130 this->Lwa =
Lwa > 0.0f ?
Lwa : 1.0f;
TechniqueGL technique
Definition: display.hpp:45
float LMax_scaled
Definition: filter_drago_tmo.hpp:34
void bind()
bind
Definition: display.hpp:189
#define MAKE_STRING(input_string)
float Lwa_scaled
Definition: filter_drago_tmo.hpp:34
void initShaders()
initShaders
void setUniform1f(const char *name_uniform, float value0)
SetUniform1f.
Definition: display.hpp:247
float b
Definition: filter_drago_tmo.hpp:34
float constant1
Definition: filter_drago_tmo.hpp:35
The FilterGL class.
Definition: filter.hpp:35
static std::string gammaCorrection(std::string fragment_source, bool bGammaCorrection)
gammaCorrection
Definition: display.hpp:182
The FilterGL class.
Definition: display.hpp:35
#define PIC_INLINE
Definition: base.hpp:33
bool bGammaCorrection
Definition: filter_drago_tmo.hpp:36
FilterGLDragoTMO()
FilterGLDragoTMO.
bool initStandard(std::string version_number, std::string vertex_shader_source, std::string fragment_shader_source, std::string name)
initStandard
Definition: display.hpp:114
float Ld_Max
Definition: filter_drago_tmo.hpp:34
float Lwa
Definition: filter_drago_tmo.hpp:34
void unbind()
unbind
Definition: display.hpp:197
The FilterGLDragoTMO class.
Definition: filter_drago_tmo.hpp:31
std::string vertex_source
Definition: display.hpp:57
Definition: bilateral_separation.hpp:25
std::string fragment_source
Definition: display.hpp:57
float constant2
Definition: filter_drago_tmo.hpp:35
float LMax
Definition: filter_drago_tmo.hpp:34
void computeConstants()
computeConstants
void FragmentShader()
FragmentShader.
void release()
release
Definition: display.hpp:85
void setUniform1i(const char *name_uniform, int value0)
SetUniform.
Definition: display.hpp:236
void update(float Ld_Max, float b, float LMax, float Lwa)
update