LiteFX 0.4.1.2025
Computer Graphics Engine
Loading...
Searching...
No Matches
LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram > Class Template Referenceabstract

Represents a ray-tracing Pipeline. More...

#include <rendering.hpp>

Inherits LiteFX::Rendering::IRayTracingPipeline, and LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >.

Public Types

using base_type = Pipeline<TPipelineLayout, TShaderProgram>
 
using descriptor_set_layout_type = base_type::pipeline_layout_type::descriptor_set_layout_type
 
using descriptor_set_type = descriptor_set_layout_type::descriptor_set_type
 
using descriptor_layout_type = descriptor_set_layout_type::descriptor_layout_type
 
using buffer_type = descriptor_set_type::buffer_type
 
using image_type = descriptor_set_type::image_type
 
using sampler_type = descriptor_set_type::sampler_type
 
- Public Types inherited from LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >
using shader_program_type = TShaderProgram
 
using pipeline_layout_type = TPipelineLayout
 

Public Member Functions

 ~RayTracingPipeline () noexcept override=default
 
virtual SharedPtr< buffer_typeallocateShaderBindingTable (ShaderBindingTableOffsets &offsets, ShaderBindingGroup groups=ShaderBindingGroup::All) const =0
 
- Public Member Functions inherited from LiteFX::Rendering::IRayTracingPipeline
 ~IRayTracingPipeline () noexcept override=default
 
virtual const ShaderRecordCollectionshaderRecords () const noexcept=0
 Returns the shader record collection of the ray tracing pipeline.
 
virtual UInt32 maxRecursionDepth () const noexcept=0
 Returns the maximum number of ray bounces.
 
virtual UInt32 maxPayloadSize () const noexcept=0
 Returns the maximum size of a single ray payload.
 
virtual UInt32 maxAttributeSize () const noexcept=0
 Returns the maximum size of a single ray attribute.
 
SharedPtr< IBufferallocateShaderBindingTable (ShaderBindingTableOffsets &offsets, ShaderBindingGroup groups=ShaderBindingGroup::All) const
 Allocates a buffer that contains the shader binding table containing the shader groups specified by the groups parameter.
 
- Public Member Functions inherited from LiteFX::Rendering::IPipeline
 ~IPipeline () noexcept override=default
 
SharedPtr< const IShaderProgramprogram () const noexcept
 Returns the shader program used by the pipeline.
 
SharedPtr< const IPipelineLayoutlayout () const noexcept
 Returns the layout of the render pipeline.
 
- Public Member Functions inherited from LiteFX::Rendering::IStateResource
virtual ~IStateResource () noexcept=default
 Releases the state resource instance.
 
- Public Member Functions inherited from LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >
 ~Pipeline () noexcept override=default
 
virtual SharedPtr< const shader_program_typeprogram () const noexcept=0
 
virtual SharedPtr< const pipeline_layout_typelayout () const noexcept=0
 
- Public Member Functions inherited from LiteFX::Rendering::StateResource
 ~StateResource () noexcept override
 Releases the state resource instance.
 
const Stringname () const noexcept override
 Returns the name of the resource.
Returns
The name of the resource.

 

Protected Member Functions

 RayTracingPipeline () noexcept=default
 
 RayTracingPipeline (RayTracingPipeline &&) noexcept=default
 
 RayTracingPipeline (const RayTracingPipeline &)=default
 
RayTracingPipelineoperator= (RayTracingPipeline &&) noexcept=default
 
RayTracingPipelineoperator= (const RayTracingPipeline &)=default
 
- Protected Member Functions inherited from LiteFX::Rendering::IRayTracingPipeline
 IRayTracingPipeline () noexcept=default
 
 IRayTracingPipeline (IRayTracingPipeline &&) noexcept=default
 
 IRayTracingPipeline (const IRayTracingPipeline &)=delete
 
IRayTracingPipelineoperator= (IRayTracingPipeline &&) noexcept=default
 
IRayTracingPipelineoperator= (const IRayTracingPipeline &)=delete
 
- Protected Member Functions inherited from LiteFX::Rendering::IPipeline
 IPipeline () noexcept=default
 
 IPipeline (const IPipeline &)=delete
 
 IPipeline (IPipeline &&) noexcept=default
 
IPipelineoperator= (const IPipeline &)=delete
 
IPipelineoperator= (IPipeline &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::Rendering::IStateResource
 IStateResource () noexcept=default
 
 IStateResource (const IStateResource &)=delete
 
 IStateResource (IStateResource &&) noexcept=default
 
IStateResourceoperator= (const IStateResource &)=delete
 
IStateResourceoperator= (IStateResource &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::Rendering::Pipeline< TPipelineLayout, TShaderProgram >
 Pipeline () noexcept=default
 
 Pipeline (const Pipeline &)=default
 
 Pipeline (Pipeline &&) noexcept=default
 
Pipelineoperator= (const Pipeline &)=default
 
Pipelineoperator= (Pipeline &&) noexcept=default
 
- Protected Member Functions inherited from LiteFX::Rendering::StateResource
 StateResource ()
 Initializes a new state resource instance with a default name.
 
 StateResource (StringView name)
 Initializes a new state resource instance.
 
 StateResource (StateResource &&) noexcept
 
StateResourceoperator= (StateResource &&) noexcept
 
 StateResource (const StateResource &)=delete
 
StateResourceoperator= (const StateResource &)=delete
 
Stringname () noexcept
 

Detailed Description

template<typename TPipelineLayout, typename TShaderProgram>
class LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >

Represents a ray-tracing Pipeline.

Template Parameters
TPipelineLayoutThe type of the render pipeline layout. Must implement PipelineLayout.
TShaderProgramThe type of the shader program. Must implement ShaderProgram.
See also
RayTracingPipelineBuilder

Member Typedef Documentation

◆ base_type

template<typename TPipelineLayout , typename TShaderProgram >
using LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::base_type = Pipeline<TPipelineLayout, TShaderProgram>

◆ buffer_type

template<typename TPipelineLayout , typename TShaderProgram >
using LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::buffer_type = descriptor_set_type::buffer_type

◆ descriptor_layout_type

template<typename TPipelineLayout , typename TShaderProgram >
using LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::descriptor_layout_type = descriptor_set_layout_type::descriptor_layout_type

◆ descriptor_set_layout_type

template<typename TPipelineLayout , typename TShaderProgram >
using LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::descriptor_set_layout_type = base_type::pipeline_layout_type::descriptor_set_layout_type

◆ descriptor_set_type

template<typename TPipelineLayout , typename TShaderProgram >
using LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::descriptor_set_type = descriptor_set_layout_type::descriptor_set_type

◆ image_type

template<typename TPipelineLayout , typename TShaderProgram >
using LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::image_type = descriptor_set_type::image_type

◆ sampler_type

template<typename TPipelineLayout , typename TShaderProgram >
using LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::sampler_type = descriptor_set_type::sampler_type

Constructor & Destructor Documentation

◆ RayTracingPipeline() [1/3]

template<typename TPipelineLayout , typename TShaderProgram >
LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::RayTracingPipeline ( )
protecteddefaultnoexcept

◆ RayTracingPipeline() [2/3]

template<typename TPipelineLayout , typename TShaderProgram >
LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::RayTracingPipeline ( RayTracingPipeline< TPipelineLayout, TShaderProgram > && )
protecteddefaultnoexcept

◆ RayTracingPipeline() [3/3]

template<typename TPipelineLayout , typename TShaderProgram >
LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::RayTracingPipeline ( const RayTracingPipeline< TPipelineLayout, TShaderProgram > & )
protecteddefault

◆ ~RayTracingPipeline()

template<typename TPipelineLayout , typename TShaderProgram >
LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::~RayTracingPipeline ( )
overridedefaultnoexcept

Member Function Documentation

◆ allocateShaderBindingTable()

template<typename TPipelineLayout , typename TShaderProgram >
virtual SharedPtr< buffer_type > LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::allocateShaderBindingTable ( ShaderBindingTableOffsets & offsets,
ShaderBindingGroup groups = ShaderBindingGroup::All ) const
pure virtual

◆ operator=() [1/2]

template<typename TPipelineLayout , typename TShaderProgram >
RayTracingPipeline & LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::operator= ( const RayTracingPipeline< TPipelineLayout, TShaderProgram > & )
protecteddefault

◆ operator=() [2/2]

template<typename TPipelineLayout , typename TShaderProgram >
RayTracingPipeline & LiteFX::Rendering::RayTracingPipeline< TPipelineLayout, TShaderProgram >::operator= ( RayTracingPipeline< TPipelineLayout, TShaderProgram > && )
protecteddefaultnoexcept