CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::VoxelConeTracing::IndirectLightingRenderTask Class Referencefinal

#include <CeresEngine/Renderer/Rendering/VoxelConeTracing.hpp>

Inheritance diagram for CeresEngine::VoxelConeTracing::IndirectLightingRenderTask:
CeresEngine::SimpleGraphicsRenderTask CeresEngine::GraphicsRenderTask CeresEngine::RenderTask CeresEngine::RefCounted< RenderTask >

Public Member Functions

 IndirectLightingRenderTask (RenderGraph &renderGraph, RendererCamera &camera, const Settings &settings)
 Creates a new IndirectLightingRenderTask.
 
 ~IndirectLightingRenderTask () final
 
- Public Member Functions inherited from CeresEngine::SimpleGraphicsRenderTask
 SimpleGraphicsRenderTask (RenderGraph &renderGraph, const String &name)
 
void execute (RenderGraphContext &context, GPUCommandBuffer &commandBuffer, GPURenderTarget &renderTarget) override
 
StringView getName () const override
 Returns a display name for the render task.
 
virtual void execute (RenderGraphContext &context, GPUCommandBuffer &commandBuffer)=0
 Executes the render task with the given commandBuffer.
 
- Public Member Functions inherited from CeresEngine::GraphicsRenderTask
 RenderTask (RenderGraph &renderGraph)
 
- Public Member Functions inherited from CeresEngine::RenderTask
 RenderTask (RenderGraph &renderGraph)
 
virtual ~RenderTask ()
 
RenderTaskResourceUsagecompile ()
 Compiles the render task.
 
virtual RenderTaskStatus check () const
 Returns true if the task is dirty and needs to be run.
 
virtual Any getSettings () const
 Gets a const-reference to the render task settings.
 
virtual Any getSettings ()
 Gets a reference to the render task settings.
 
const Vector< InputSlot * > & getInputs () const
 
const Vector< OutputSlot * > & getOutputs () const
 
const RenderTaskResourceUsagegetResourceUsage () const
 
- Public Member Functions inherited from CeresEngine::RefCounted< RenderTask >
 RefCounted (Args &&... args)
 Creates a new RefCounted object and constructs a new Deleter by forwarding Args to it.
 
void retain () noexcept
 Retains the object by increment it's reference count by one.
 
bool release () noexcept
 Relases the object by decrementing it's reference count by one.
 

Public Attributes

struct { 
 
   ImageRenderResourceRef   depth 
 An image holding frame depth. More...
 
   ImageRenderResourceRef   normalAndRoughness 
 An image holding normals and material roughness. More...
 
   ImageRenderResourceRef   albedoAndAmbientOcclusion 
 An image holding the material albedo and ambient occlusion factor. More...
 
   ImageRenderResourceRef   emissionAndMetallic 
 An image holding the material emissive properties and material metallic factor. More...
 
   ImageRenderResourceRef   voxel 
 
input 
 
struct { 
 
   ImageRenderResourceRef   lighting 
 
output 
 

Protected Member Functions

void initialize (GPUDevice &devic) final
 Perform a sequence of steps that initialize the graphics render task.
 
void compile (RenderTaskCompiler &compiler) final
 Compiles the render task.
 
void execute (RenderGraphContext &context, GPUCommandBuffer &commandBuffer, GPURenderTarget &renderTarget, GPUGraphicsPipeline &pipeline) final
 
GPUGraphicsPipelinePtr createGraphicsPipeline (GPUDevice &device, GPURenderPass &renderPass) final
 Creates a new graphics pipeline instance for the render task.
 
- Protected Member Functions inherited from CeresEngine::SimpleGraphicsRenderTask
virtual bool isGraphicsPipelineDirty (GPUGraphicsPipeline &graphicsPipeline, GPURenderPass &renderPass) const
 Checks if the graphics pipeline is dirty and needs to be recreated.
 
- Protected Member Functions inherited from CeresEngine::GraphicsRenderTask
virtual bool isRenderPassDirty (GPURenderPass &renderPass) const
 Checks if the render pass is dirty and needs to be recreated.
 
virtual GPURenderPassPtr createRenderPass (GPUDevice &device)
 Creates a new render pass instance for the render task.
 
virtual bool isRenderTargetDirty (GPURenderTarget &renderTarget, GPURenderPass &renderPass) const
 Checks if the render target is dirty and needs to be recreated.
 
virtual GPURenderTargetPtr createRenderTarget (GPUDevice &device, GPURenderPass &renderPass)
 Creates a new render target instance for the render task.
 
- Protected Member Functions inherited from CeresEngine::RenderTask
virtual bool shouldConnect (const Slot &slot, const Slot &targetSlot) const
 An internal method called whenever a new connection is being made.
 
virtual void willConnect (Slot &slot, Slot &targetSlot)
 An internal method called before the slot is connected.
 
virtual void didConnect (Slot &slot, Connection &connection)
 An internal method called after the slot is connected.
 
virtual bool shouldDisconnect (const Slot &slot, const Connection &connection) const
 An internal method called whenever a new disconnection is being made.
 
virtual void willDisconnect (Slot &slot, Connection &connection)
 An internal method called before the slot is disconnected.
 
virtual void didDisconnect (Slot &slot, Connection &connection)
 An internal method called whenever the slot is disconnected.
 
ImageRenderResourcecreate (const GPUImageDescriptor &descriptor)
 
BufferRenderResourcecreate (const GPUBufferDescriptor &descriptor)
 

Private Attributes

RendererCameramCamera
 
const SettingsmSettings
 
GPUSamplerPtr mGeometrySampler
 A sampler object used to sample from the G-Buffer images.
 
GPUSamplerPtr mVoxelSampler
 A sampler object used to sample from the voxel image.
 

Additional Inherited Members

- Protected Attributes inherited from CeresEngine::SimpleGraphicsRenderTask
GPUGraphicsPipelinePtr mPipeline
 The cached graphics pipeline instance.
 
- Protected Attributes inherited from CeresEngine::GraphicsRenderTask
GPURenderPassPtr mRenderPass
 The cached render pass instance.
 
GPURenderTargetPtr mRenderTarget
 The cached render target instance.
 
- Protected Attributes inherited from CeresEngine::RenderTask
RenderTaskResourceUsage mResourceUsage
 

Constructor & Destructor Documentation

◆ IndirectLightingRenderTask()

CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::IndirectLightingRenderTask ( RenderGraph renderGraph,
RendererCamera camera,
const Settings settings 
)
explicit

◆ ~IndirectLightingRenderTask()

CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::~IndirectLightingRenderTask ( )
final

Member Function Documentation

◆ compile()

void CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::compile ( RenderTaskCompiler compiler)
finalprotectedvirtual

Compiles the render task.

Implements CeresEngine::RenderTask.

◆ createGraphicsPipeline()

GPUGraphicsPipelinePtr CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::createGraphicsPipeline ( GPUDevice device,
GPURenderPass renderPass 
)
finalprotectedvirtual

Creates a new graphics pipeline instance for the render task.

Parameters
deviceThe device in which the implementation should create the graphics pipeline instance from.
renderPassA reference to the current render pass. The implementation must use this render pass to create the new graphics pipeline.

Implements CeresEngine::SimpleGraphicsRenderTask.

◆ execute()

void CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::execute ( RenderGraphContext context,
GPUCommandBuffer commandBuffer,
GPURenderTarget renderTarget,
GPUGraphicsPipeline pipeline 
)
finalprotectedvirtual

◆ initialize()

void CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::initialize ( GPUDevice devic)
finalprotectedvirtual

Perform a sequence of steps that initialize the graphics render task.

These operations are only executed once in the first execution.

Reimplemented from CeresEngine::SimpleGraphicsRenderTask.

Member Data Documentation

◆ albedoAndAmbientOcclusion

ImageRenderResourceRef CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::albedoAndAmbientOcclusion

An image holding the material albedo and ambient occlusion factor.

◆ depth

ImageRenderResourceRef CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::depth

An image holding frame depth.

◆ emissionAndMetallic

ImageRenderResourceRef CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::emissionAndMetallic

An image holding the material emissive properties and material metallic factor.

◆ [struct]

struct { ... } CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::input

◆ lighting

ImageRenderResourceRef CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::lighting

◆ mCamera

RendererCamera& CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::mCamera
private

◆ mGeometrySampler

GPUSamplerPtr CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::mGeometrySampler
private

A sampler object used to sample from the G-Buffer images.

◆ mSettings

const Settings& CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::mSettings
private

◆ mVoxelSampler

GPUSamplerPtr CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::mVoxelSampler
private

A sampler object used to sample from the voxel image.

◆ normalAndRoughness

ImageRenderResourceRef CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::normalAndRoughness

An image holding normals and material roughness.

◆ [struct]

struct { ... } CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::output

◆ voxel

ImageRenderResourceRef CeresEngine::VoxelConeTracing::IndirectLightingRenderTask::voxel

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