Lysa  0.0
Lysa 3D Engine
LightingPass Class Reference

Detailed Description

Render pass for deferred lighting

+ Inheritance diagram for LightingPass:

Public Member Functions

 LightingPass (const RendererConfiguration &config, const GBufferPass &gBufferPass, bool withStencil)
 
void render (vireo::CommandList &commandList, const SceneFrameData &scene, const std::shared_ptr< vireo::RenderTarget > &colorAttachment, const std::shared_ptr< vireo::RenderTarget > &depthAttachment, const std::shared_ptr< vireo::RenderTarget > &aoMap, bool clearAttachment, uint32 frameIndex)
 
void resize (const vireo::Extent &extent, const std::shared_ptr< vireo::CommandList > &commandList) override
 
auto getBrightnessBuffer (const uint32 frameIndex) const
 
- 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

LightingPass ( const RendererConfiguration config,
const GBufferPass gBufferPass,
bool  withStencil 
)

Constructs a LightingPass

Parameters
configThe renderer configuration
gBufferPassReference to the G-buffer pass providing input textures
withStencilWhether to enable stencil testing

Member Function Documentation

auto getBrightnessBuffer ( const uint32  frameIndex) const
inline

Gets the brightness buffer for a specific frame

Parameters
frameIndexIndex of the current frame
Returns
A shared pointer to the brightness render target
void render ( vireo::CommandList &  commandList,
const SceneFrameData scene,
const std::shared_ptr< vireo::RenderTarget > &  colorAttachment,
const std::shared_ptr< vireo::RenderTarget > &  depthAttachment,
const std::shared_ptr< vireo::RenderTarget > &  aoMap,
bool  clearAttachment,
uint32  frameIndex 
)

Renders the deferred lighting pass

Parameters
commandListThe command list to record rendering commands into
sceneThe scene frame data
colorAttachmentThe target color attachment
depthAttachmentThe target depth attachment
aoMapThe ambient occlusion map
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()