20 #ifndef ANTKEEPER_RENDER_CASCADED_SHADOW_MAP_STAGE_HPP
21 #define ANTKEEPER_RENDER_CASCADED_SHADOW_MAP_STAGE_HPP
32 #include <unordered_map>
64 return m_max_bone_count;
82 void rebuild_static_mesh_shader_program();
85 void rebuild_skeletal_mesh_shader_program();
89 std::size_t m_max_bone_count{64};
91 std::unordered_map<std::string, std::string> m_shader_template_definitions;
93 std::shared_ptr<gl::shader_template> m_static_mesh_shader_template;
94 std::unique_ptr<gl::shader_program> m_static_mesh_shader_program;
97 std::shared_ptr<gl::shader_template> m_skeletal_mesh_shader_template;
98 std::unique_ptr<gl::shader_program> m_skeletal_mesh_shader_program;
Graphics pipeline interface.
Renders cascaded shadow maps for directional lights.
constexpr std::size_t get_max_bone_count() const noexcept
Returns the maximum bone count for shadow-casting skeletal meshes.
void execute(render::context &ctx) override
Executes the render stage.
void set_max_bone_count(std::size_t bone_count)
Sets the maximum bone count for shadow-casting skeletal meshes.
cascaded_shadow_map_stage(gl::pipeline &pipeline, ::resource_manager &resource_manager)
Constructs a cascaded shadow map stage.
Abstract base class for a single stage in a render pipeline.
Manages the loading, caching, and saving of resources.
Light source with parallel rays and constant intensity.
n by m column-major matrix.