Lysa  0.0
Lysa 3D Engine
TransparencyPass Class Reference

Detailed Description

Render pass for transparent objects using Order-Independent Transparency (OIT)

+ Inheritance diagram for TransparencyPass:

Public Member Functions

 TransparencyPass (const RendererConfiguration &config, bool withStencil)
 
void updatePipelines (const std::unordered_map< pipeline_id, std::vector< unique_id >> &pipelineIds)
 
void resize (const vireo::Extent &extent, const std::shared_ptr< vireo::CommandList > &commandList) override
 
void render (vireo::CommandList &commandList, const SceneFrameData &scene, const std::shared_ptr< vireo::RenderTarget > &colorAttachment, const std::shared_ptr< vireo::RenderTarget > &depthAttachment, bool clearAttachment, uint32 frameIndex)
 
auto getAccumBuffer (const uint32 frameIndex)
 
auto getRevealageBuffer (const uint32 frameIndex)
 
- Public Member Functions inherited from Renderpass
 Renderpass (const RendererConfiguration &config, const std::string &name)
 
virtual void update (uint32 frameIndex)
 
virtual ~Renderpass () = default
 
 Renderpass (Renderpass &) = delete
 
Renderpass & operator= (Renderpass &) = delete
 

Additional Inherited Members

- Static Public Member Functions inherited from Renderpass
static void destroyShaderModules ()
 
- Protected Member Functions inherited from Renderpass
std::shared_ptr< vireo::ShaderModule > loadShader (const std::string &shaderName) const
 
void init (vireo::GraphicPipelineConfiguration &pipelineConfig, vireo::RenderingConfiguration &renderingConfig, const std::shared_ptr< vireo::DescriptorLayout > &descriptorLayout, bool withStencil)
 
void init (vireo::GraphicPipelineConfiguration &pipelineConfig, vireo::RenderingConfiguration &renderingConfig, bool withStencil) const
 
void initRendering (vireo::CommandList &commandList, const std::shared_ptr< vireo::Image > &image, const std::shared_ptr< vireo::GraphicPipeline > &pipeline, const std::shared_ptr< vireo::DescriptorSet > &sceneDescriptorSet, const std::shared_ptr< vireo::DescriptorSet > &descriptorSet)
 
- Protected Attributes inherited from Renderpass
const std::string name
 
const RendererConfigurationconfig
 
- Static Protected Attributes inherited from Renderpass
static std::mutex shaderModulesMutex
 
static std::unordered_map< std::string, std::shared_ptr< vireo::ShaderModule > > shaderModules
 

Constructor & Destructor Documentation

TransparencyPass ( const RendererConfiguration config,
bool  withStencil 
)

Constructs a TransparencyPass

Parameters
configThe renderer configuration
withStencil

Member Function Documentation

auto getAccumBuffer ( const uint32  frameIndex)
inline
auto getRevealageBuffer ( const uint32  frameIndex)
inline
void render ( vireo::CommandList &  commandList,
const SceneFrameData scene,
const std::shared_ptr< vireo::RenderTarget > &  colorAttachment,
const std::shared_ptr< vireo::RenderTarget > &  depthAttachment,
bool  clearAttachment,
uint32  frameIndex 
)

Renders the transparency pass

Parameters
commandListThe command list to record rendering commands into
sceneThe scene frame data
colorAttachmentThe target color attachment
depthAttachmentThe target depth attachment
clearAttachmentWhether to clear the color attachment
frameIndexIndex of the current frame
void resize ( const vireo::Extent &  extent,
const std::shared_ptr< vireo::CommandList > &  commandList 
)
overridevirtual

Recreate pass resources after a resize (default: no-op).

Reimplemented from lysa::Renderpass::resize()

void updatePipelines ( const std::unordered_map< pipeline_id, std::vector< unique_id >> &  pipelineIds)

Updates the OIT graphics pipelines based on active pipeline IDs

Parameters
pipelineIdsMap of pipeline IDs to unique object IDs