Castor3D 0.16.0
Multiplatform 3D engine
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
castor3d::RenderTechnique Class Reference

#include <RenderTechnique.hpp>

Inheritance diagram for castor3d::RenderTechnique:
Inheritance graph
[legend]
Collaboration diagram for castor3d::RenderTechnique:
Collaboration graph
[legend]

Public Types

using ShadowMapArray = castor::Vector< ShadowMapUPtr >
 

Public Member Functions

C3D_API RenderTechnique (castor::String const &name, RenderTarget &renderTarget, RenderDevice const &device, Texture const &colour, Texture const &intermediate, crg::FramePassArray previousPasses, ProgressBar *progress, bool visbuffer, bool weightedBlended)
 Constructor.
 
C3D_API ~RenderTechnique () noexcept
 Destructor.
 
C3D_API void update (CpuUpdater &updater)
 Updates the render pass, CPU wise.
 
C3D_API void update (GpuUpdater &updater)
 Updates the render pass, GPU wise.
 
C3D_API crg::SemaphoreWaitArray preRender (crg::SemaphoreWaitArray const &toWait, ashes::Queue const &queue)
 Renders maps needed for the actual rendering.
 
C3D_API void accept (RenderTechniqueVisitor &visitor)
 Visitor acceptance function.
 
C3D_API crg::FramePass const & getLastPass () const
 
C3D_API SsaoConfig const & getSsaoConfig () const
 
C3D_API ClustersConfig const * getClustersConfig () const
 
C3D_API SsaoConfiggetSsaoConfig ()
 
C3D_API Texture const & getSsaoResult () const
 
C3D_API Texture const & getSssDiffuse () const
 
C3D_API TechniquePassVector getCustomRenderPasses () const
 
C3D_API crg::ResourcesCache & getResources () const
 
C3D_API bool isOpaqueEnabled () const
 
C3D_API DebugConfiggetDebugConfig () const
 
C3D_API bool areDebugTargetsEnabled () const noexcept
 
castor::Size const & getSize () const noexcept
 
crg::ImageViewIdArray getSampledResult () const noexcept
 
crg::ImageViewIdArray getTargetResult () const noexcept
 
crg::ImageViewIdArray getSampledIntermediate () const noexcept
 
crg::ImageViewIdArray getTargetIntermediate () const noexcept
 
crg::ImageViewIdArray getTargetDepth () const noexcept
 
Texture const & getDepth () const noexcept
 
Texture const & getResult () const noexcept
 
Texture const & getIntermediate () const noexcept
 
VkExtent3D const & getTargetExtent () const noexcept
 
VkFormat getTargetFormat () const noexcept
 
Texture const & getNormal () const noexcept
 
Texture const & getScattering () const noexcept
 
Texture const & getDiffuse () const noexcept
 
Texture const & getDepthObj () const noexcept
 
ashes::Buffer< int32_t > const & getDepthRange () const noexcept
 
void setNeedsDepthRange (bool v) noexcept
 
ShadowMapResult const & getDirectionalShadowPassResult () const noexcept
 
ShadowMapResult const & getPointShadowPassResult () const noexcept
 
ShadowMapResult const & getSpotShadowPassResult () const noexcept
 
CameraUbo const & getCameraUbo () const noexcept
 
CameraUbogetCameraUbo () noexcept
 
SceneUbo const & getSceneUbo () const noexcept
 
SceneUbogetSceneUbo () noexcept
 
ShadowMapLightTypeArray const & getShadowMaps () const noexcept
 
RenderTarget const & getRenderTarget () const noexcept
 
RenderTargetgetRenderTarget () noexcept
 
bool isMultisampling () const noexcept
 
ashes::Buffer< uint32_t > const & getMaterialsCounts () const noexcept
 
ashes::Buffer< castor::Point3ui > const & getMaterialsIndirectCounts () const noexcept
 
ashes::Buffer< uint32_t > const & getMaterialsStarts () const noexcept
 
ashes::Buffer< castor::Point2ui > const & getPixelXY () const noexcept
 
bool hasVisibility () const noexcept
 
Texture const & getVisibilityResult () const noexcept
 
crg::FramePass const & getGetLastDepthPass () const noexcept
 
crg::FramePass const & getDepthRangePass () const noexcept
 
crg::FramePass const & getGetLastOpaquePass () const noexcept
 
crg::FramePass const & getGetLastTransparentPass () const noexcept
 
crg::FramePassGroup & getGraph () noexcept
 
IndirectLightingData const & getIndirectLighting () const noexcept
 
bool hasShadowBuffer () const noexcept
 
ShadowBuffergetShadowBuffer () const noexcept
 
- Public Member Functions inherited from castor::OwnedBy< Engine >
Engine * getOwner () const
 
- Public Member Functions inherited from castor::NamedBaseT< T >
 NamedBaseT (T name) noexcept
 Constructor.
 
T const & getName () const noexcept
 Retrieves the name.
 
void rename (T name) noexcept
 

Static Public Member Functions

static uint32_t countInitialisationSteps () noexcept
 

Friends

class RenderTechniquePass
 

Additional Inherited Members

- Protected Member Functions inherited from castor::OwnedBy< Engine >
 OwnedBy (Engine &owner)
 Constructor.
 
- Protected Attributes inherited from castor::NamedBaseT< T >
m_name
 

Member Typedef Documentation

◆ ShadowMapArray

Constructor & Destructor Documentation

◆ RenderTechnique()

C3D_API castor3d::RenderTechnique::RenderTechnique ( castor::String const & name,
RenderTarget & renderTarget,
RenderDevice const & device,
Texture const & colour,
Texture const & intermediate,
crg::FramePassArray previousPasses,
ProgressBar * progress,
bool visbuffer,
bool weightedBlended )

Constructor.

Parameters
[in]nameThe technique name.
[in]renderTargetThe render target for this technique.
[in]deviceThe GPU device.
[in]colourThe result colour image.
[in]intermediateThe intermediate colour image.
[in]previousPassesThe passes that the technique has to wait for.
[in]progressThe optional progress bar.
[in]visbuffertrue to enable visibility buffer.
[in]weightedBlendedtrue to enable weighted blended rendering.

◆ ~RenderTechnique()

C3D_API castor3d::RenderTechnique::~RenderTechnique ( )
noexcept

Destructor.

Member Function Documentation

◆ accept()

C3D_API void castor3d::RenderTechnique::accept ( RenderTechniqueVisitor & visitor)

Visitor acceptance function.

Parameters
visitorThe ... visitor.

◆ areDebugTargetsEnabled()

C3D_API bool castor3d::RenderTechnique::areDebugTargetsEnabled ( ) const
noexcept

◆ countInitialisationSteps()

static uint32_t castor3d::RenderTechnique::countInitialisationSteps ( )
staticnoexcept
Returns
The number of steps needed for initialisation, to show progression.

◆ getCameraUbo() [1/2]

CameraUbo const & castor3d::RenderTechnique::getCameraUbo ( ) const
inlinenoexcept

◆ getCameraUbo() [2/2]

CameraUbo & castor3d::RenderTechnique::getCameraUbo ( )
inlinenoexcept

◆ getClustersConfig()

C3D_API ClustersConfig const * castor3d::RenderTechnique::getClustersConfig ( ) const

◆ getCustomRenderPasses()

C3D_API TechniquePassVector castor3d::RenderTechnique::getCustomRenderPasses ( ) const

◆ getDebugConfig()

C3D_API DebugConfig & castor3d::RenderTechnique::getDebugConfig ( ) const

◆ getDepth()

Texture const & castor3d::RenderTechnique::getDepth ( ) const
inlinenoexcept

◆ getDepthObj()

Texture const & castor3d::RenderTechnique::getDepthObj ( ) const
inlinenoexcept

References castor3d::PrepassRendering::getDepthObj().

Here is the call graph for this function:

◆ getDepthRange()

ashes::Buffer< int32_t > const & castor3d::RenderTechnique::getDepthRange ( ) const
inlinenoexcept

References castor3d::PrepassRendering::getDepthRange().

Here is the call graph for this function:

◆ getDepthRangePass()

crg::FramePass const & castor3d::RenderTechnique::getDepthRangePass ( ) const
inlinenoexcept

◆ getDiffuse()

Texture const & castor3d::RenderTechnique::getDiffuse ( ) const
inlinenoexcept

◆ getDirectionalShadowPassResult()

ShadowMapResult const & castor3d::RenderTechnique::getDirectionalShadowPassResult ( ) const
inlinenoexcept

◆ getGetLastDepthPass()

crg::FramePass const & castor3d::RenderTechnique::getGetLastDepthPass ( ) const
inlinenoexcept

◆ getGetLastOpaquePass()

crg::FramePass const & castor3d::RenderTechnique::getGetLastOpaquePass ( ) const
inlinenoexcept

◆ getGetLastTransparentPass()

crg::FramePass const & castor3d::RenderTechnique::getGetLastTransparentPass ( ) const
inlinenoexcept

◆ getGraph()

crg::FramePassGroup & castor3d::RenderTechnique::getGraph ( )
inlinenoexcept

◆ getIndirectLighting()

IndirectLightingData const & castor3d::RenderTechnique::getIndirectLighting ( ) const
inlinenoexcept

◆ getIntermediate()

Texture const & castor3d::RenderTechnique::getIntermediate ( ) const
inlinenoexcept

◆ getLastPass()

C3D_API crg::FramePass const & castor3d::RenderTechnique::getLastPass ( ) const

name Getters.

◆ getMaterialsCounts()

ashes::Buffer< uint32_t > const & castor3d::RenderTechnique::getMaterialsCounts ( ) const
inlinenoexcept

References castor3d::OpaqueRendering::getMaterialsCounts().

Here is the call graph for this function:

◆ getMaterialsIndirectCounts()

ashes::Buffer< castor::Point3ui > const & castor3d::RenderTechnique::getMaterialsIndirectCounts ( ) const
inlinenoexcept

References castor3d::OpaqueRendering::getMaterialsIndirectCounts().

Here is the call graph for this function:

◆ getMaterialsStarts()

ashes::Buffer< uint32_t > const & castor3d::RenderTechnique::getMaterialsStarts ( ) const
inlinenoexcept

References castor3d::OpaqueRendering::getMaterialsStarts().

Here is the call graph for this function:

◆ getNormal()

Texture const & castor3d::RenderTechnique::getNormal ( ) const
inlinenoexcept

◆ getPixelXY()

ashes::Buffer< castor::Point2ui > const & castor3d::RenderTechnique::getPixelXY ( ) const
inlinenoexcept

References castor3d::OpaqueRendering::getPixelXY().

Here is the call graph for this function:

◆ getPointShadowPassResult()

ShadowMapResult const & castor3d::RenderTechnique::getPointShadowPassResult ( ) const
inlinenoexcept

◆ getRenderTarget() [1/2]

RenderTarget const & castor3d::RenderTechnique::getRenderTarget ( ) const
inlinenoexcept

◆ getRenderTarget() [2/2]

RenderTarget & castor3d::RenderTechnique::getRenderTarget ( )
inlinenoexcept

◆ getResources()

C3D_API crg::ResourcesCache & castor3d::RenderTechnique::getResources ( ) const

◆ getResult()

Texture const & castor3d::RenderTechnique::getResult ( ) const
inlinenoexcept

◆ getSampledIntermediate()

crg::ImageViewIdArray castor3d::RenderTechnique::getSampledIntermediate ( ) const
inlinenoexcept

◆ getSampledResult()

crg::ImageViewIdArray castor3d::RenderTechnique::getSampledResult ( ) const
inlinenoexcept

◆ getScattering()

Texture const & castor3d::RenderTechnique::getScattering ( ) const
inlinenoexcept

◆ getSceneUbo() [1/2]

SceneUbo const & castor3d::RenderTechnique::getSceneUbo ( ) const
inlinenoexcept

◆ getSceneUbo() [2/2]

SceneUbo & castor3d::RenderTechnique::getSceneUbo ( )
inlinenoexcept

◆ getShadowBuffer()

ShadowBuffer & castor3d::RenderTechnique::getShadowBuffer ( ) const
inlinenoexcept

References CU_Require, and hasShadowBuffer().

Here is the call graph for this function:

◆ getShadowMaps()

ShadowMapLightTypeArray const & castor3d::RenderTechnique::getShadowMaps ( ) const
inlinenoexcept

◆ getSize()

castor::Size const & castor3d::RenderTechnique::getSize ( ) const
inlinenoexcept

◆ getSpotShadowPassResult()

ShadowMapResult const & castor3d::RenderTechnique::getSpotShadowPassResult ( ) const
inlinenoexcept

◆ getSsaoConfig() [1/2]

C3D_API SsaoConfig & castor3d::RenderTechnique::getSsaoConfig ( )

◆ getSsaoConfig() [2/2]

C3D_API SsaoConfig const & castor3d::RenderTechnique::getSsaoConfig ( ) const

◆ getSsaoResult()

C3D_API Texture const & castor3d::RenderTechnique::getSsaoResult ( ) const

◆ getSssDiffuse()

C3D_API Texture const & castor3d::RenderTechnique::getSssDiffuse ( ) const

◆ getTargetDepth()

crg::ImageViewIdArray castor3d::RenderTechnique::getTargetDepth ( ) const
inlinenoexcept

◆ getTargetExtent()

VkExtent3D const & castor3d::RenderTechnique::getTargetExtent ( ) const
inlinenoexcept

References castor3d::Texture::getExtent().

Here is the call graph for this function:

◆ getTargetFormat()

VkFormat castor3d::RenderTechnique::getTargetFormat ( ) const
inlinenoexcept

References castor3d::Texture::getFormat().

Here is the call graph for this function:

◆ getTargetIntermediate()

crg::ImageViewIdArray castor3d::RenderTechnique::getTargetIntermediate ( ) const
inlinenoexcept

◆ getTargetResult()

crg::ImageViewIdArray castor3d::RenderTechnique::getTargetResult ( ) const
inlinenoexcept

◆ getVisibilityResult()

Texture const & castor3d::RenderTechnique::getVisibilityResult ( ) const
inlinenoexcept

References castor3d::PrepassRendering::getVisibility().

Here is the call graph for this function:

◆ hasShadowBuffer()

bool castor3d::RenderTechnique::hasShadowBuffer ( ) const
inlinenoexcept

Referenced by getShadowBuffer().

Here is the caller graph for this function:

◆ hasVisibility()

bool castor3d::RenderTechnique::hasVisibility ( ) const
inlinenoexcept

References castor3d::PrepassRendering::hasVisibility().

Here is the call graph for this function:

◆ isMultisampling()

bool castor3d::RenderTechnique::isMultisampling ( ) const
inlinenoexcept

◆ isOpaqueEnabled()

C3D_API bool castor3d::RenderTechnique::isOpaqueEnabled ( ) const

◆ preRender()

C3D_API crg::SemaphoreWaitArray castor3d::RenderTechnique::preRender ( crg::SemaphoreWaitArray const & toWait,
ashes::Queue const & queue )

Renders maps needed for the actual rendering.

Parameters
[in]toWaitThe semaphores to wait.
[in]queueThe queue receiving the render commands.
Returns
The semaphores signaled by this render.

◆ setNeedsDepthRange()

void castor3d::RenderTechnique::setNeedsDepthRange ( bool v)
inlinenoexcept

References castor3d::PrepassRendering::setNeedsDepthRange().

Here is the call graph for this function:

◆ update() [1/2]

C3D_API void castor3d::RenderTechnique::update ( CpuUpdater & updater)

Updates the render pass, CPU wise.

Parameters
[in,out]updaterThe update data.

◆ update() [2/2]

C3D_API void castor3d::RenderTechnique::update ( GpuUpdater & updater)

Updates the render pass, GPU wise.

Parameters
[in,out]updaterThe update data.

Friends And Related Symbol Documentation

◆ RenderTechniquePass

friend class RenderTechniquePass
friend

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