18 #ifndef PIC_GL_FILTERING_FILTER_SLICER_HPP 19 #define PIC_GL_FILTERING_FILTER_SLICER_HPP 21 #include "../../base.hpp" 23 #include "../../gl/filtering/filter.hpp" 75 uniform sampler2D u_tex;
76 uniform sampler3D u_grid;
84 ivec2 coordsFrag = ivec2(gl_FragCoord.xy);
85 vec4 colRef = texelFetch(u_tex, coordsFrag, 0);
88 vec3 tSize3 = vec3(textureSize(u_grid, 0));
89 float E = dot(colRef.xyz, vec3(1.0)) *
mul_E;
93 vec2 coord = (gl_FragCoord.xy *
s_S) / tSize3.xy;
94 vec4 sliced = texture(u_grid, vec3(coord.xy, E));
96 vec3 color = sliced.w > 0.0 ? sliced.xyz / sliced.w : vec3(0.0);
98 f_color = vec4(color.xyz, 1.0);
118 printf(
"Rate S: %f Rate R: %f Mul E: %f\n",
s_S,
s_R,
mul_E);
TechniqueGL technique
Definition: display.hpp:45
void update(float s_S, float s_R)
update
float s_R
Definition: filter_slicer.hpp:37
void bind()
bind
Definition: display.hpp:189
#define MAKE_STRING(input_string)
The FilterGLSlicer class.
Definition: filter_slicer.hpp:30
void setUniform1f(const char *name_uniform, float value0)
SetUniform1f.
Definition: display.hpp:247
The FilterGL class.
Definition: filter.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
float mul_E
Definition: filter_slicer.hpp:37
void unbind()
unbind
Definition: display.hpp:197
std::string vertex_source
Definition: display.hpp:57
Definition: bilateral_separation.hpp:25
float s_S
Definition: filter_slicer.hpp:37
std::string fragment_source
Definition: display.hpp:57
FilterGLSlicer(float s_S, float s_R)
FilterGLSlicer.
void release()
release
Definition: display.hpp:85
void setUniform1i(const char *name_uniform, int value0)
SetUniform.
Definition: display.hpp:236