Plasma Engine  2.0
Loading...
Searching...
No Matches
plSSRAdvancedPass Class Reference
Inheritance diagram for plSSRAdvancedPass:

Public Member Functions

bool GetRenderTargetDescriptions (const plView &view, const plArrayPtr< plGALTextureCreationDescription *const > inputs, plArrayPtr< plGALTextureCreationDescription > outputs) override
 For a given input pin configuration, provide the output configuration of this node. Outputs is already resized to the number of output pins.
 
void Execute (const plRenderViewContext &renderViewContext, const plArrayPtr< plRenderPipelinePassConnection *const > inputs, const plArrayPtr< plRenderPipelinePassConnection *const > outputs) override
 Render into outputs. Both inputs and outputs are passed in with actual texture handles. Disconnected pins have a nullptr value in the passed in arrays. You can now create views and render target setups on the fly and fill the output targets with data.
 
void ExecuteInactive (const plRenderViewContext &renderViewContext, const plArrayPtr< plRenderPipelinePassConnection *const > inputs, const plArrayPtr< plRenderPipelinePassConnection *const > outputs) override
 
virtual plResult Serialize (plStreamWriter &inout_stream) const override
 
virtual plResult Deserialize (plStreamReader &inout_stream) override
 
- Public Member Functions inherited from plRenderPipelinePass
 plRenderPipelinePass (const char *szName, bool bIsStereoAware=false)
 
void SetName (const char *szName)
 Sets the name of the pass.
 
const char * GetName () const
 returns the name of the pass.
 
bool IsStereoAware () const
 True if the render pipeline pass can handle stereo cameras correctly.
 
virtual plGALTextureHandle QueryTextureProvider (const plRenderPipelineNodePin *pPin, const plGALTextureCreationDescription &desc)
 
virtual void InitRenderPipelinePass (const plArrayPtr< plRenderPipelinePassConnection *const > inputs, const plArrayPtr< plRenderPipelinePassConnection *const > outputs)
 After GetRenderTargetDescriptions was called successfully for each pass, this function is called with the inputs and outputs for review. Disconnected pins have a nullptr value in the passed in arrays. This is the time to create additional resources that are not covered by the pins automatically, e.g. a picking texture or eye adaptation buffer.
 
virtual void ReadBackProperties (plView *pView)
 Allows for the pass to write data back using plView::SetRenderPassReadBackProperty. E.g. picking results etc.
 
void RenderDataWithCategory (const plRenderViewContext &renderViewContext, plRenderData::Category category, plRenderDataBatch::Filter filter=plRenderDataBatch::Filter())
 
PL_ALWAYS_INLINE plRenderPipelineGetPipeline ()
 
PL_ALWAYS_INLINE const plRenderPipelineGetPipeline () const
 
- Public Member Functions inherited from plRenderPipelineNode
void InitializePins ()
 
plHashedString GetPinName (const plRenderPipelineNodePin *pPin) const
 
const plRenderPipelineNodePinGetPinByName (const char *szName) const
 
const plRenderPipelineNodePinGetPinByName (plHashedString sName) const
 
const plArrayPtr< const plRenderPipelineNodePin *const > GetInputPins () const
 
const plArrayPtr< const plRenderPipelineNodePin *const > GetOutputPins () const
 
- Public Member Functions inherited from plReflectedClass
virtual const plRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const plRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
PL_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Protected Member Functions

void UpdateSSRConstantBuffer () const
 
void UpdateBlurConstantBuffer () const
 

Protected Attributes

float m_fMaxDist
 
float m_fResolution
 
float m_fThickness
 
int m_iSteps
 
plRenderPipelineNodeInputPin m_PinSceneColor
 
plRenderPipelineNodeInputPin m_PinInputDepth
 
plRenderPipelineNodeInputPin m_PinInputMaterial
 
plRenderPipelineNodeInputPin m_PinInputVelocity
 
plRenderPipelineNodeOutputPin m_PinSSROutput
 
plConstantBufferStorageHandle m_hSSRConstantBuffer
 
plConstantBufferStorageHandle m_hPostProcessConstantBuffer
 
plShaderResourceHandle m_hShaderTileMinMaxRoughnessHorizontal
 
plShaderResourceHandle m_hShaderTileMinMaxRoughnessVerticle
 
plShaderResourceHandle m_hShaderDepthHierarchy
 
plShaderResourceHandle m_hShaderSSRTrace
 
plGALTextureHandle m_hTextureTileMinMaxRoughnessHorizontal
 
plGALTextureHandle m_hTileMinMaxRoughness
 
plGALTextureHandle m_hDepthHierarchy
 
plGALTextureHandle m_hDepthHierarchyTmp
 
plGALTextureHandle m_hIndirectSpecular
 
plGALTextureHandle m_hDirectionPDF
 
plGALTextureHandle m_hRayLength
 
plTexture2DResourceHandle m_hBlueNoiseTexture
 
plGALBufferHandle m_hTileStatisticsBuffer
 
plArrayPtr< plPostprocessTileStatistics > m_TileStatistics
 
plGALBufferHandle m_hTilesTracingEarlyexitBuffer
 
plGALBufferHandle m_hTilesTracingCheapBuffer
 
plGALBufferHandle m_hTilesTracingExpensiveBuffer
 
plArrayPtr< plUInt32 > m_TilesTracingEarlyexit
 
plArrayPtr< plUInt32 > m_TilesTracingCheap
 
plArrayPtr< plUInt32 > m_TilesTracingExpensive
 
float m_MinMaxRoughnessWidth
 
float m_MinMaxRoughnessHeight
 

Additional Inherited Members

- Static Public Member Functions inherited from plNoBase
static const plRTTIGetStaticRTTI ()
 

Member Function Documentation

◆ Deserialize()

plResult plSSRAdvancedPass::Deserialize ( plStreamReader & inout_stream)
overridevirtual

Reimplemented from plRenderPipelinePass.

◆ Execute()

void plSSRAdvancedPass::Execute ( const plRenderViewContext & renderViewContext,
const plArrayPtr< plRenderPipelinePassConnection *const > inputs,
const plArrayPtr< plRenderPipelinePassConnection *const > outputs )
overridevirtual

Render into outputs. Both inputs and outputs are passed in with actual texture handles. Disconnected pins have a nullptr value in the passed in arrays. You can now create views and render target setups on the fly and fill the output targets with data.

Implements plRenderPipelinePass.

◆ ExecuteInactive()

void plSSRAdvancedPass::ExecuteInactive ( const plRenderViewContext & renderViewContext,
const plArrayPtr< plRenderPipelinePassConnection *const > inputs,
const plArrayPtr< plRenderPipelinePassConnection *const > outputs )
overridevirtual

Reimplemented from plRenderPipelinePass.

◆ GetRenderTargetDescriptions()

bool plSSRAdvancedPass::GetRenderTargetDescriptions ( const plView & view,
const plArrayPtr< plGALTextureCreationDescription *const > inputs,
plArrayPtr< plGALTextureCreationDescription > outputs )
overridevirtual

For a given input pin configuration, provide the output configuration of this node. Outputs is already resized to the number of output pins.

Implements plRenderPipelinePass.

◆ Serialize()

plResult plSSRAdvancedPass::Serialize ( plStreamWriter & inout_stream) const
overridevirtual

Reimplemented from plRenderPipelinePass.


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