18 #ifndef PIC_GL_FILTERING_FILTER_SIMPLE_TMO_HPP 19 #define PIC_GL_FILTERING_FILTER_SIMPLE_TMO_HPP 21 #include "../../base.hpp" 23 #include "../../gl/filtering/filter.hpp" 39 uniform sampler2D u_tex; \n
40 uniform
float tn_gamma; \n
41 uniform
float tn_exposure; \n
45 ivec2 coords = ivec2(gl_FragCoord.xy); \n
46 vec3 color = texelFetch(u_tex, coords, 0).xyz; \n
47 color = pow(color * tn_exposure, vec3(tn_gamma));
48 f_color = vec4(color, 1.0);
89 float invGamma = 1.0f /
gamma;
90 float exposure = powf(2.0f,
fstop);
TechniqueGL technique
Definition: display.hpp:45
FilterGLSimpleTMO()
FilterGLSimpleTMO.
Definition: filter_simple_tmo.hpp:60
void bind()
bind
Definition: display.hpp:189
FilterGLSimpleTMO(float gamma, float fstop)
FilterGLSimpleTMO.
Definition: filter_simple_tmo.hpp:71
#define MAKE_STRING(input_string)
void setUniform1f(const char *name_uniform, float value0)
SetUniform1f.
Definition: display.hpp:247
The FilterGLSimpleTMO class.
Definition: filter_simple_tmo.hpp:30
void update(float gamma, float fstop)
update
Definition: filter_simple_tmo.hpp:82
float fstop
Definition: filter_simple_tmo.hpp:33
The FilterGL class.
Definition: filter.hpp:35
bool initStandard(std::string version_number, std::string vertex_shader_source, std::string fragment_shader_source, std::string name)
initStandard
Definition: display.hpp:114
void initShaders()
Definition: filter_simple_tmo.hpp:35
void unbind()
unbind
Definition: display.hpp:197
std::string vertex_source
Definition: display.hpp:57
Definition: bilateral_separation.hpp:25
bool isValid()
Definition: display.hpp:62
float gamma
Definition: filter_simple_tmo.hpp:33
std::string fragment_source
Definition: display.hpp:57
void setUniform1i(const char *name_uniform, int value0)
SetUniform.
Definition: display.hpp:236