gtsam_points
Loading...
Searching...
No Matches
screen_scape_attribute_estimation.hpp
Go to the documentation of this file.
1#ifndef GLK_SCREEN_SPACE_ATTRIBUTE_ESTIMATION_HPP
2#define GLK_SCREEN_SPACE_ATTRIBUTE_ESTIMATION_HPP
3
6
7namespace glk {
8
10public:
12
13 ScreenSpaceAttributeEstimation(const Eigen::Vector2i& size = Eigen::Vector2i(1920, 1080), BufferType rendering_type = BufferType::NONE);
15
16 virtual void set_size(const Eigen::Vector2i& size) override;
17
18 void set_smooth_normal(bool smooth_normal);
20
21 const glk::Texture& position() const;
22 const glk::Texture& normal() const;
23 const glk::Texture& occlusion() const;
24
25 virtual void draw(const TextureRenderer& renderer, const glk::Texture& color_texture, const glk::Texture& depth_texture, const TextureRendererInput::Ptr& input, glk::FrameBuffer* frame_buffer = nullptr) override;
26
27private:
28 bool smooth_normal;
29 BufferType rendering_type;
30
31 glk::GLSLShader texture_shader;
32 glk::GLSLShader pos_shader;
33 glk::GLSLShader normal_shader;
34 glk::GLSLShader occlusion_shader;
35 glk::GLSLShader bilateral_shader;
36
37 std::unique_ptr<glk::Texture> randomization_texture;
38
39 std::unique_ptr<glk::FrameBuffer> position_buffer;
40 std::unique_ptr<glk::FrameBuffer> position_smoothing_x_buffer;
41 std::unique_ptr<glk::FrameBuffer> position_smoothing_y_buffer;
42
43 std::unique_ptr<glk::FrameBuffer> normal_buffer;
44 std::unique_ptr<glk::FrameBuffer> occlusion_buffer;
45 std::unique_ptr<glk::FrameBuffer> bilateral_x_buffer;
46 std::unique_ptr<glk::FrameBuffer> bilateral_y_buffer;
47};
48
49} // namespace glk
50
51#endif
Definition frame_buffer.hpp:12
Definition glsl_shader.hpp:20
Definition screen_effect.hpp:15
Definition screen_scape_attribute_estimation.hpp:9
const glk::Texture & position() const
BufferType
Definition screen_scape_attribute_estimation.hpp:11
virtual void set_size(const Eigen::Vector2i &size) override
const glk::Texture & normal() const
virtual void draw(const TextureRenderer &renderer, const glk::Texture &color_texture, const glk::Texture &depth_texture, const TextureRendererInput::Ptr &input, glk::FrameBuffer *frame_buffer=nullptr) override
const glk::Texture & occlusion() const
void set_rendering_buffer(BufferType buffer_type)
ScreenSpaceAttributeEstimation(const Eigen::Vector2i &size=Eigen::Vector2i(1920, 1080), BufferType rendering_type=BufferType::NONE)
void set_smooth_normal(bool smooth_normal)
virtual ~ScreenSpaceAttributeEstimation() override
TextureRenderer.
Definition texture_renderer.hpp:20
Definition texture.hpp:10
Definition async_buffer_copy.hpp:6
std::shared_ptr< TextureRendererInput > Ptr
Definition texture_renderer_input.hpp:13