18 #ifndef PIC_GL_FILTERING_FILTER_SIGMOID_TMO_HPP 19 #define PIC_GL_FILTERING_FILTER_SIGMOID_TMO_HPP 21 #include "../../base.hpp" 23 #include "../../gl/filtering/filter.hpp" 24 #include "../../gl/filtering/filter_luminance.hpp" 95 uniform sampler2D u_tex; \n
96 uniform sampler2D u_tex_adapt; \n
97 uniform
float alpha; \n
100 const vec3 LUM_XYZ = vec3(0.213, 0.715, 0.072); \n
104 ivec2 coords = ivec2(gl_FragCoord.xy);
106 vec3 color = texelFetch(u_tex, coords, 0).xyz;
109 float Lw = dot(color, LUM_XYZ);
112 color = (color.xyz * Ld) / Lw;
114 __GAMMA__CORRECTION__ \n
115 f_color = vec4(color, 1.0);
124 " float Lwa = texelFetch(u_tex_adapt, coords,0).x; ");
128 " float Ld = (Lw * alpha)/(Lwa * alpha + epsilon); ");
134 " float Lscale = Lw * alpha;\n float Ld = Lscale / (Lscale + epsilon); ");
TechniqueGL technique
Definition: display.hpp:45
FilterGLSigmoidTMO()
FilterGLSigmoidTMO.
float alpha
Definition: filter_sigmoid_tmo.hpp:34
void bind()
bind
Definition: display.hpp:189
#define MAKE_STRING(input_string)
void setUniform1f(const char *name_uniform, float value0)
SetUniform1f.
Definition: display.hpp:247
The FilterGL class.
Definition: filter.hpp:35
static std::string gammaCorrection(std::string fragment_source, bool bGammaCorrection)
gammaCorrection
Definition: display.hpp:182
void update(float alpha)
update
bool bLocal
Definition: filter_sigmoid_tmo.hpp:35
The FilterGL class.
Definition: display.hpp:35
#define PIC_INLINE
Definition: base.hpp:33
bool initStandard(std::string version_number, std::string vertex_shader_source, std::string fragment_shader_source, std::string name)
initStandard
Definition: display.hpp:114
The FilterGLSigmoidTMO class.
Definition: filter_sigmoid_tmo.hpp:31
void unbind()
unbind
Definition: display.hpp:197
std::string vertex_source
Definition: display.hpp:57
void initShaders()
initShaders
Definition: bilateral_separation.hpp:25
bool bGammaCorrection
Definition: filter_sigmoid_tmo.hpp:35
std::string fragment_source
Definition: display.hpp:57
float epsilon
Definition: filter_sigmoid_tmo.hpp:34
void release()
release
Definition: display.hpp:85
void setUniform1i(const char *name_uniform, int value0)
SetUniform.
Definition: display.hpp:236