Unravel Engine C++ Reference
Loading...
Searching...
No Matches
unravel::rendering::deferred Class Reference

#include <pipeline.h>

Inheritance diagram for unravel::rendering::deferred:
unravel::rendering::pipeline

Public Types

enum  pipeline_steps : uint32_t {
  geometry_pass = 1u << 1 , shadow_pass = 1u << 2 , reflection_probe = 1u << 3 , atmospheric = 1u << 5 ,
  particles_pass = 1u << 6 , full = 0xFFFFFFFFu
}
 Bitmask for pipeline::run_params::pflags (deferred path only). More...
 
- Public Types inherited from unravel::rendering::pipeline
enum  visibility_query : uint32_t { not_specified = 1 << 0 , is_dirty = 1 << 1 , is_static = 1 << 2 , is_shadow_caster = 1 << 3 }
 Flags for visibility queries. More...
 
enum class  pipeline_run_type : std::uint8_t { camera = 0 , reflection_probe_capture = 1 }
 Describes which high-level pipeline path is executing. Pass enablement is controlled separately via run_params::pflags. More...
 
using uptr = std::unique_ptr<pipeline>
 
using sptr = std::shared_ptr<pipeline>
 
using wptr = std::weak_ptr<pipeline>
 
using visibility_flags = uint32_t
 Type alias for visibility flags.
 
using pipeline_flags = uint32_t
 

Public Member Functions

 deferred ()
 
 ~deferred ()
 
auto init (rtti::context &ctx) -> bool override
 
auto deinit (rtti::context &ctx) -> bool
 
auto run_pipeline (scene &scn, const camera &camera, gfx::render_view &rview, delta_t dt, const run_params &params, layer_mask render_mask=layer_mask{layer_reserved::everything_layer}) -> gfx::frame_buffer::ptr override
 Renders the entire scene from the camera's perspective.
 
void run_pipeline (const gfx::frame_buffer::ptr &output, scene &scn, const camera &camera, gfx::render_view &rview, delta_t dt, const run_params &params, layer_mask render_mask=layer_mask{layer_reserved::everything_layer}) override
 Renders the entire scene from the camera's perspective to the specified output.
 
void set_debug_pass (int pass) override
 
void run_pipeline_impl (const gfx::frame_buffer::ptr &output, scene &scn, const camera &camera, gfx::render_view &rview, delta_t dt, const run_params &params, layer_mask render_mask=layer_mask{layer_reserved::everything_layer})
 
void run_g_buffer_pass (const visibility_set_models_t &visibility_set, const camera &camera, gfx::render_view &rview, delta_t dt)
 
void run_assao_pass (const camera &camera, gfx::render_view &rview, delta_t dt, const run_params &rparams)
 
auto run_direct_lighting_pass (scene &scn, const camera &camera, gfx::render_view &rview, bool apply_shadows, delta_t dt) -> gfx::frame_buffer::ptr
 
auto run_indirect_lighting_pass (scene &scn, const camera &camera, gfx::render_view &rview, bool apply_reflection, delta_t dt) -> gfx::frame_buffer::ptr
 
void run_reflection_probe_pass (scene &scn, const camera &camera, gfx::render_view &rview, bool apply_probes, delta_t dt)
 
auto run_atmospherics_pass (gfx::frame_buffer::ptr input, scene &scn, const camera &camera, gfx::render_view &rview, delta_t dt) -> gfx::frame_buffer::ptr
 
void run_ssr_pass (const camera &camera, gfx::render_view &rview, const gfx::frame_buffer::ptr &previous_frame_source, const run_params &rparams)
 
void run_ssil_pass (const camera &camera, gfx::render_view &rview, const run_params &rparams)
 
auto run_taa_pass (const camera &camera, gfx::render_view &rview, const gfx::frame_buffer::ptr &input, const gfx::frame_buffer::ptr &output, const run_params &rparams) -> gfx::frame_buffer::ptr
 
auto run_fxaa_pass (gfx::render_view &rview, const gfx::frame_buffer::ptr &input, const gfx::frame_buffer::ptr &output, const run_params &rparams) -> gfx::frame_buffer::ptr
 
void run_auto_exposure_pass (gfx::render_view &rview, const gfx::frame_buffer::ptr &input, const run_params &rparams, delta_t dt)
 
auto run_bloom_pass (gfx::render_view &rview, const gfx::frame_buffer::ptr &input, const run_params &rparams) -> gfx::frame_buffer::ptr
 
auto run_tonemapping_pass (gfx::render_view &rview, const gfx::frame_buffer::ptr &input, const gfx::frame_buffer::ptr &output, const run_params &rparams) -> gfx::frame_buffer::ptr
 
void run_debug_visualization_pass (const camera &camera, gfx::render_view &rview, const gfx::frame_buffer::ptr &output)
 
void build_reflections (scene &scn, const camera &camera, delta_t dt)
 
void build_shadows (scene &scn, const camera &camera, delta_t dt, visibility_flags query=visibility_query::not_specified, layer_mask render_mask=layer_mask{layer_reserved::everything_layer})
 
auto run_hiz_pass (const camera &camera, gfx::render_view &rview, const run_params &params, const usize32_t &viewport_size, delta_t dt) -> bool
 Builds or drops Hi-Z + related depth history. true if SSIL/SSR may use HiZ this frame.
 
- Public Member Functions inherited from unravel::rendering::pipeline
 pipeline ()=default
 
virtual ~pipeline ()=default
 
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.
 
virtual void run_ui_pass (scene &scn, const camera &camera, gfx::render_view &rview, const gfx::frame_buffer::ptr &output)
 
virtual void run_particle_pass (scene &scn, const camera &camera, gfx::render_view &rview, const gfx::frame_buffer::ptr &output)
 
virtual auto create_run_params (entt::handle camera_ent) const -> rendering::pipeline::run_params
 
virtual auto create_run_params (entt::handle camera_ent, scene *scn, const camera *cam) const -> rendering::pipeline::run_params
 
auto get_stats () -> pipeline_stats &
 

Additional Inherited Members

- Static Public Member Functions inherited from unravel::rendering::pipeline
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 the main view would pick; positive values push shadow rendering toward coarser LODs. Replaces the old behavior of always using LOD 0.
 
static void set_shadow_lod_bias (float bias)
 
- Protected Attributes inherited from unravel::rendering::pipeline
prefilter_pass prefilter_pass_ {}
 
blit_pass blit_pass_ {}
 
atmospheric_pass_perez atmospheric_pass_perez_ {}
 
atmospheric_pass_skybox atmospheric_pass_skybox_ {}
 
assao_pass assao_pass_ {}
 
auto_exposure_pass auto_exposure_pass_ {}
 
bloom_pass bloom_pass_ {}
 
fxaa_pass fxaa_pass_ {}
 
taa_pass taa_pass_ {}
 
tonemapping_pass tonemapping_pass_ {}
 
ssr_pass ssr_pass_ {}
 
hiz_pass hiz_pass_ {}
 Hi-Z buffer generation pass.
 
ssil_pass ssil_pass_ {}
 
std::unique_ptr< gpu_programparticle_program_ {}
 
std::unique_ptr< gpu_programparticle_program_instanced_ {}
 
std::unique_ptr< gpu_programparticle_program_instanced_mask_ {}
 
std::unique_ptr< gpu_programworld_quad_program_ {}
 
pipeline_stats stats_ {}
 
entt::registry cache_registry_
 
entt::entity cache_entity_
 

Detailed Description

Definition at line 22 of file pipeline.h.

Member Enumeration Documentation

◆ pipeline_steps

Bitmask for pipeline::run_params::pflags (deferred path only).

Enumerator
geometry_pass 
shadow_pass 
reflection_probe 
atmospheric 
particles_pass 
full 

Definition at line 44 of file pipeline.h.

Constructor & Destructor Documentation

◆ deferred()

unravel::rendering::deferred::deferred ( )

Definition at line 2073 of file pipeline.cpp.

◆ ~deferred()

unravel::rendering::deferred::~deferred ( )

Definition at line 2078 of file pipeline.cpp.

Member Function Documentation

◆ build_reflections()

void unravel::rendering::deferred::build_reflections ( scene & scn,
const camera & camera,
delta_t dt )

Definition at line 424 of file pipeline.cpp.

◆ build_shadows()

void unravel::rendering::deferred::build_shadows ( scene & scn,
const camera & camera,
delta_t dt,
visibility_flags query = visibility_query::not_specified,
layer_mask render_mask = layer_mask{layer_reserved::everything_layer} )

Definition at line 539 of file pipeline.cpp.

◆ deinit()

auto unravel::rendering::deferred::deinit ( rtti::context & ctx) -> bool

Definition at line 2192 of file pipeline.cpp.

◆ init()

auto unravel::rendering::deferred::init ( rtti::context & ctx) -> bool
overridevirtual

Reimplemented from unravel::rendering::pipeline.

Definition at line 2083 of file pipeline.cpp.

◆ run_assao_pass()

void unravel::rendering::deferred::run_assao_pass ( const camera & camera,
gfx::render_view & rview,
delta_t dt,
const run_params & rparams )

Definition at line 1083 of file pipeline.cpp.

◆ run_atmospherics_pass()

auto unravel::rendering::deferred::run_atmospherics_pass ( gfx::frame_buffer::ptr input,
scene & scn,
const camera & camera,
gfx::render_view & rview,
delta_t dt ) -> gfx::frame_buffer::ptr

Definition at line 1682 of file pipeline.cpp.

◆ run_auto_exposure_pass()

void unravel::rendering::deferred::run_auto_exposure_pass ( gfx::render_view & rview,
const gfx::frame_buffer::ptr & input,
const run_params & rparams,
delta_t dt )

Definition at line 1920 of file pipeline.cpp.

◆ run_bloom_pass()

auto unravel::rendering::deferred::run_bloom_pass ( gfx::render_view & rview,
const gfx::frame_buffer::ptr & input,
const run_params & rparams ) -> gfx::frame_buffer::ptr

Definition at line 1937 of file pipeline.cpp.

◆ run_debug_visualization_pass()

void unravel::rendering::deferred::run_debug_visualization_pass ( const camera & camera,
gfx::render_view & rview,
const gfx::frame_buffer::ptr & output )

Definition at line 1988 of file pipeline.cpp.

◆ run_direct_lighting_pass()

auto unravel::rendering::deferred::run_direct_lighting_pass ( scene & scn,
const camera & camera,
gfx::render_view & rview,
bool apply_shadows,
delta_t dt ) -> gfx::frame_buffer::ptr

Definition at line 1342 of file pipeline.cpp.

◆ run_fxaa_pass()

auto unravel::rendering::deferred::run_fxaa_pass ( gfx::render_view & rview,
const gfx::frame_buffer::ptr & input,
const gfx::frame_buffer::ptr & output,
const run_params & rparams ) -> gfx::frame_buffer::ptr

Definition at line 1898 of file pipeline.cpp.

◆ run_g_buffer_pass()

void unravel::rendering::deferred::run_g_buffer_pass ( const visibility_set_models_t & visibility_set,
const camera & camera,
gfx::render_view & rview,
delta_t dt )

Definition at line 797 of file pipeline.cpp.

◆ run_hiz_pass()

auto unravel::rendering::deferred::run_hiz_pass ( const camera & camera,
gfx::render_view & rview,
const run_params & params,
const usize32_t & viewport_size,
delta_t dt ) -> bool

Builds or drops Hi-Z + related depth history. true if SSIL/SSR may use HiZ this frame.

Definition at line 2037 of file pipeline.cpp.

◆ run_indirect_lighting_pass()

auto unravel::rendering::deferred::run_indirect_lighting_pass ( scene & scn,
const camera & camera,
gfx::render_view & rview,
bool apply_reflection,
delta_t dt ) -> gfx::frame_buffer::ptr

Definition at line 1482 of file pipeline.cpp.

◆ run_pipeline() [1/2]

void unravel::rendering::deferred::run_pipeline ( const gfx::frame_buffer::ptr & output,
scene & scn,
const camera & camera,
gfx::render_view & rview,
delta_t dt,
const run_params & params,
layer_mask render_mask = layer_mask{layer_reserved::everything_layer} )
overridevirtual

Renders the entire scene from the camera's perspective to the specified output.

Parameters
outputThe output frame buffer.
scnThe scene to render.
cameraThe camera to render from.
storageThe camera storage.
render_viewThe render view.
dtThe delta time.
queryThe visibility query flags.

Implements unravel::rendering::pipeline.

Definition at line 630 of file pipeline.cpp.

◆ run_pipeline() [2/2]

auto unravel::rendering::deferred::run_pipeline ( scene & scn,
const camera & camera,
gfx::render_view & rview,
delta_t dt,
const run_params & params,
layer_mask render_mask = layer_mask{layer_reserved::everything_layer} ) -> gfx::frame_buffer::ptr
overridevirtual

Renders the entire scene from the camera's perspective.

Parameters
scnThe scene to render.
cameraThe camera to render from.
storageThe camera storage.
render_viewThe render view.
dtThe delta time.
queryThe visibility query flags.
Returns
A shared pointer to the frame buffer containing the rendered scene.

Implements unravel::rendering::pipeline.

Definition at line 615 of file pipeline.cpp.

◆ run_pipeline_impl()

void unravel::rendering::deferred::run_pipeline_impl ( const gfx::frame_buffer::ptr & output,
scene & scn,
const camera & camera,
gfx::render_view & rview,
delta_t dt,
const run_params & params,
layer_mask render_mask = layer_mask{layer_reserved::everything_layer} )

Definition at line 651 of file pipeline.cpp.

◆ run_reflection_probe_pass()

void unravel::rendering::deferred::run_reflection_probe_pass ( scene & scn,
const camera & camera,
gfx::render_view & rview,
bool apply_probes,
delta_t dt )

Definition at line 1541 of file pipeline.cpp.

◆ run_ssil_pass()

void unravel::rendering::deferred::run_ssil_pass ( const camera & camera,
gfx::render_view & rview,
const run_params & rparams )

Definition at line 1809 of file pipeline.cpp.

◆ run_ssr_pass()

void unravel::rendering::deferred::run_ssr_pass ( const camera & camera,
gfx::render_view & rview,
const gfx::frame_buffer::ptr & previous_frame_source,
const run_params & rparams )

Definition at line 1775 of file pipeline.cpp.

◆ run_taa_pass()

auto unravel::rendering::deferred::run_taa_pass ( const camera & camera,
gfx::render_view & rview,
const gfx::frame_buffer::ptr & input,
const gfx::frame_buffer::ptr & output,
const run_params & rparams ) -> gfx::frame_buffer::ptr

Definition at line 1873 of file pipeline.cpp.

◆ run_tonemapping_pass()

auto unravel::rendering::deferred::run_tonemapping_pass ( gfx::render_view & rview,
const gfx::frame_buffer::ptr & input,
const gfx::frame_buffer::ptr & output,
const run_params & rparams ) -> gfx::frame_buffer::ptr

Definition at line 1958 of file pipeline.cpp.

◆ set_debug_pass()

void unravel::rendering::deferred::set_debug_pass ( int pass)
overridevirtual

Implements unravel::rendering::pipeline.

Definition at line 646 of file pipeline.cpp.


The documentation for this class was generated from the following files: