Lysa  0.0
Lysa 3D Engine
GTAOPass Class Reference

Detailed Description

Render pass for Ground Truth Ambient Occlusion (GTAO).

+ Inheritance diagram for GTAOPass:

Public Member Functions

 GTAOPass (const RendererConfiguration &config, const GBufferPass &gBufferPass)
 
void render (const std::shared_ptr< vireo::CommandList > &commandList, const SceneFrameData &scene, const std::shared_ptr< vireo::Image > &depthAttachment, uint32 frameIndex)
 
void resize (const vireo::Extent &extent, const std::shared_ptr< vireo::CommandList > &commandList) override
 
vireo::ImageFormat getColorAttachmentFormat () const override
 
- Public Member Functions inherited from PostProcessingCompute
 PostProcessingCompute (const RendererConfiguration &config, vireo::ImageFormat outputFormat, const std::string &compShaderName, void *data=nullptr, uint32 dataSize=0, const std::string &name="")
 
void update (uint32 frameIndex) override
 
virtual void render (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::Image > &colorAttachment, uint32 frameIndex)
 
virtual void render (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::Image > &colorAttachment, const std::shared_ptr< vireo::Image > &depthAttachment, uint32 frameIndex)
 
std::shared_ptr< vireo::Image > getColorAttachment (const uint32 frameIndex) const
 
std::shared_ptr< vireo::RenderTarget > getColorRenderTarget (const uint32 frameIndex)
 
const auto & getCompShaderName () const
 
- Public Member Functions inherited from Renderpass
 Renderpass (const RendererConfiguration &config, const std::string &name)
 
virtual ~Renderpass () = default
 
 Renderpass (Renderpass &) = delete
 
Renderpass & operator= (Renderpass &) = delete
 

Additional Inherited Members

- Static Public Member Functions inherited from Renderpass
static void destroyShaderModules ()
 
- Static Public Attributes inherited from PostProcessingCompute
static constexpr vireo::DescriptorIndex BINDING_PARAMS {0}
 
static constexpr vireo::DescriptorIndex BINDING_DATA {1}
 
static constexpr vireo::DescriptorIndex BINDING_OUTPUT {2}
 
static constexpr vireo::DescriptorIndex BINDING_TEXTURES {3}
 
static constexpr int INPUT_BUFFER {0}
 
static constexpr int DEPTH_BUFFER {1}
 
static constexpr int BLOOM_BUFFER {2}
 
static constexpr int OPT1_BUFFER {3}
 
static constexpr int OPT2_BUFFER {4}
 
static constexpr int TEXTURES_COUNT {OPT2_BUFFER + 1}
 
static constexpr uint32 TILE_SIZE {16}
 
- Protected Member Functions inherited from PostProcessingCompute
virtual void render (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::Image > &colorAttachment, const std::shared_ptr< vireo::Image > &depthAttachment, const std::shared_ptr< vireo::Image > &bloomColorAttachment, uint32 frameIndex)
 
- 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 initForScene (vireo::GraphicPipelineConfiguration &pipelineConfig, vireo::RenderingConfiguration &renderingConfig, bool withStencil) const
 
void initRendering (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::GraphicPipeline > &pipeline, const std::shared_ptr< vireo::DescriptorSet > &sceneDescriptorSet, const std::shared_ptr< vireo::DescriptorSet > &descriptorSet)
 
void initCompute (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::ComputePipeline > &pipeline, const std::shared_ptr< vireo::DescriptorSet > &sceneDescriptorSet, const std::shared_ptr< vireo::DescriptorSet > &descriptorSet)
 
- Protected Attributes inherited from PostProcessingCompute
const vireo::ImageFormat outputFormat
 
const std::string compShaderName
 
uint8 dummyData {0}
 
void * data {nullptr}
 
std::vector< FrameDataframesData
 
std::vector< std::shared_ptr< vireo::Image > > textures
 
std::shared_ptr< vireo::DescriptorLayout > descriptorLayout
 
std::shared_ptr< vireo::Pipeline > pipeline
 
- 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

GTAOPass ( const RendererConfiguration config,
const GBufferPass gBufferPass 
)

Constructs a GTAOPass.

Parameters
configThe renderer configuration.
gBufferPassReference to the G-buffer pass providing input textures.

Member Function Documentation

vireo::ImageFormat getColorAttachmentFormat ( ) const
inlineoverridevirtual

Returns the image format of the AO buffer (single R8 channel).

Reimplemented from lysa::PostProcessingCompute::getColorAttachmentFormat()

void render ( const std::shared_ptr< vireo::CommandList > &  commandList,
const SceneFrameData scene,
const std::shared_ptr< vireo::Image > &  depthAttachment,
uint32  frameIndex 
)
virtual

Renders the GTAO pass.

Parameters
commandListCommand list to record rendering commands into.
sceneScene frame data (camera matrices, etc.).
depthAttachmentDepth attachment of the current frame.
frameIndexIndex of the current frame.

Reimplemented from lysa::PostProcessingCompute::render()

void resize ( const vireo::Extent &  extent,
const std::shared_ptr< vireo::CommandList > &  commandList 
)
overridevirtual

Recreates the output image to match the new extent.

Parameters
extentNew viewport dimensions.

Reimplemented from lysa::PostProcessingCompute::resize()