36#include <hpp/small_vector.hpp>
95 using uptr = std::unique_ptr<pipeline>;
96 using sptr = std::shared_ptr<pipeline>;
97 using wptr = std::weak_ptr<pipeline>;
172 const camera* lod_reference_cam =
nullptr);
std::shared_ptr< frame_buffer > ptr
Class representing a camera. Contains functionality for manipulating and updating a camera....
Performs GGX prefiltering on six 2D face textures to produce a filtered cubemap.
auto get_stats() -> pipeline_stats &
virtual void run_particle_pass(scene &scn, const camera &camera, gfx::render_view &rview, const gfx::frame_buffer::ptr &output)
virtual auto init(rtti::context &ctx) -> bool
visibility_query
Flags for visibility queries.
@ not_specified
No specific visibility query.
@ is_dirty
Query for dirty entities.
@ is_static
Query for static entities.
@ is_shadow_caster
Query for shadow casting entities.
virtual ~pipeline()=default
atmospheric_pass_skybox atmospheric_pass_skybox_
static auto get_shadow_lod_bias() -> float
LOD bias applied on top of the main selection when rendering shadows. 0 = shadows use the same LOD th...
prefilter_pass prefilter_pass_
entt::registry cache_registry_
virtual auto run_pipeline(scene &scn, const camera &camera, gfx::render_view &rview, delta_t dt, const run_params ¶ms, layer_mask render_mask=layer_mask{ layer_reserved::everything_layer}) -> gfx::frame_buffer::ptr=0
Renders the entire scene from the camera's perspective.
pipeline_run_type
Describes which high-level pipeline path is executing. Pass enablement is controlled separately via r...
@ reflection_probe_capture
Single cubemap face capture for reflection probe baking.
@ camera
Main camera / viewport rendering (post-processing, UI, probe build, etc.).
std::unique_ptr< gpu_program > particle_program_instanced_mask_
virtual void run_pipeline(const gfx::frame_buffer::ptr &output, scene &scn, const camera &camera, gfx::render_view &rview, delta_t dt, const run_params ¶ms, layer_mask render_mask=layer_mask{layer_reserved::everything_layer})=0
Renders the entire scene from the camera's perspective to the specified output.
virtual void run_ui_pass(scene &scn, const camera &camera, gfx::render_view &rview, const gfx::frame_buffer::ptr &output)
auto_exposure_pass auto_exposure_pass_
virtual void set_debug_pass(int pass)=0
atmospheric_pass_perez atmospheric_pass_perez_
virtual void gather_visible_models(scene &scn, const camera *cam, visibility_flags query, const layer_mask &render_mask, delta_t dt, const std::function< void(entt::handle entity, const lod_data &lod_data)> &lod_data_callback, const camera *lod_reference_cam=nullptr)
Gathers visible models from the scene based on the given query.
tonemapping_pass tonemapping_pass_
std::shared_ptr< pipeline > sptr
static void set_shadow_lod_bias(float bias)
std::weak_ptr< pipeline > wptr
uint32_t visibility_flags
Type alias for visibility flags.
hiz_pass hiz_pass_
Hi-Z buffer generation pass.
std::unique_ptr< gpu_program > particle_program_instanced_
entt::entity cache_entity_
std::unique_ptr< gpu_program > world_quad_program_
std::unique_ptr< pipeline > uptr
virtual auto create_run_params(entt::handle camera_ent) const -> rendering::pipeline::run_params
std::unique_ptr< gpu_program > particle_program_
HDR temporal anti-aliasing resolve (depth reprojection). Phase 2: optional velocity buffer.
std::chrono::duration< float > delta_t
hpp::small_vector< visibility_data > visibility_set_models_t
Contains level of detail (LOD) data for an entity per view. Uses distance-based hysteresis for stable...
std::function< void(assao_pass::run_params ¶ms)> fill_assao_params
std::function< void(auto_exposure_pass::run_params ¶ms)> fill_auto_exposure_params
std::function< void(taa_pass::run_params ¶ms)> fill_taa_params
pipeline_flags pflags
Deferred pipeline only: bitmask of enabled passes (deferred::pipeline_steps).
std::function< void(ssr_pass::run_params ¶ms)> fill_ssr_params
std::function< void(bloom_pass::run_params ¶ms)> fill_bloom_params
pipeline_run_type run_type
std::function< void(tonemapping_pass::run_params ¶ms)> fill_hdr_params
std::function< void(ssil_pass::run_params ¶ms)> fill_ssil_params
std::function< void(fxaa_pass::run_params ¶ms)> fill_fxaa_params
std::function< void(camera &, const usize32_t &viewport_size)> apply_taa_params
uint32_t drawn_skinned_models_for_shadows
void add_batch_stats(const batch_stats &stats)
Add batch statistics to the pipeline stats.
uint32_t drawn_skinned_submeshes
uint32_t drawn_lights_casting_shadows
uint32_t drawn_models_for_shadows
void add_stats(const pipeline_stats &stats)
uint32_t drawn_skinned_submeshes_for_shadows
uint32_t drawn_particles_batches
uint32_t drawn_submeshes_for_shadows
uint32_t drawn_skinned_models
batch_stats batching_stats
auto anything_drawn() const -> bool
uint32_t drawn_static_submeshes
unravel::lod_data lod_data
Represents a scene in the ACE framework, managing entities and their relationships.