20 #ifndef ANTKEEPER_SCENE_LIGHT_PROBE_HPP
21 #define ANTKEEPER_SCENE_LIGHT_PROBE_HPP
76 return m_luminance_texture;
82 return m_luminance_framebuffers;
92 return m_illuminance_texture;
98 return m_illuminance_framebuffer;
112 return m_illuminance_matrices;
118 return m_luminance_outdated;
124 return m_illuminance_outdated;
133 void transformed()
override;
135 std::shared_ptr<gl::texture_cube> m_luminance_texture;
136 std::vector<std::shared_ptr<gl::framebuffer>> m_luminance_framebuffers;
137 std::shared_ptr<gl::texture_1d> m_illuminance_texture;
138 std::shared_ptr<gl::framebuffer> m_illuminance_framebuffer;
140 bool m_luminance_outdated{};
141 bool m_illuminance_outdated{};
const std::shared_ptr< gl::framebuffer > & get_illuminance_framebuffer() const noexcept
Returns the light probe's illuminance framebuffer.
const aabb_type & get_bounds() const noexcept override
Returns the bounds of the object.
bool is_luminance_outdated() const noexcept
Returns true if the light probe's luminance is outdated.
void set_luminance_texture(std::shared_ptr< gl::texture_cube > texture)
Sets the light probe's luminance texture.
const std::shared_ptr< gl::texture_cube > & get_luminance_texture() const noexcept
Returns the light probe's luminance texture.
void update_illuminance_matrices()
Updates the light probe's illuminance matrices from its illuminance texture.
std::span< const math::fmat4, 3 > get_illuminance_matrices() const noexcept
Returns the light probe's illuminance matrices.
const std::shared_ptr< gl::texture_1d > & get_illuminance_texture() const noexcept
Returns the light probe's illuminance texture.
void set_illuminance_outdated(bool outdated)
Marks the light probe's illuminance as either outdated or current.
bool is_illuminance_outdated() const noexcept
Returns true if the light probe's illuminance is outdated.
light_probe()
Constructs a light probe.
const std::vector< std::shared_ptr< gl::framebuffer > > & get_luminance_framebuffers() const noexcept
Returns the light probe's luminance framebuffers.
void set_luminance_outdated(bool outdated)
Marks the light probe's luminance as either outdated or current.
geom::box< float > aabb_type
Abstract base class for lights, cameras, model instances, and other scene objects.
n-dimensional axis-aligned rectangle.
n by m column-major matrix.