ezEngine Release 26.9
Loading...
Searching...
No Matches
ezForwardRenderPass Class Referenceabstract

#include <ForwardRenderPass.h>

Inheritance diagram for ezForwardRenderPass:

Public Member Functions

 ezForwardRenderPass (const char *szName="ForwardRenderPass")
 
virtual ezStatus AddRenderPasses (const ezViewData &viewData, const ezCamera &camera, ezRenderGraph &ref_graph, const ezArrayPtr< const ezRenderPipelinePinConnection > inputs, ezArrayPtr< ezRenderPipelinePinConnection > outputs) override
 Called by the render pipeline when this pass is active. The pass declares its render-graph passes and writes the resulting transient handles into the outputs array.
 
virtual ezResult Serialize (ezStreamWriter &inout_stream) const override
 
virtual ezResult Deserialize (ezStreamReader &inout_stream) override
 
- Public Member Functions inherited from ezRenderPipelinePass
 ezRenderPipelinePass (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.
 
EZ_ALWAYS_INLINE bool IsStereoAware () const
 True if the render pipeline pass can handle stereo cameras correctly.
 
virtual void ReadBackProperties (ezView *pView)
 Allows for the pass to write data back using ezView::SetRenderPassReadBackProperty. E.g. picking results etc.
 
void DeclareRendererDependenciesForCategory (ezRenderData::Category category, ezRenderGraph &ref_graph, ezRenderGraphPassBuilder &ref_passBuilder)
 
void RenderDataWithCategory (const ezRenderViewContext &renderViewContext, ezRenderData::Category category)
 
EZ_ALWAYS_INLINE ezRenderPipeline * GetPipeline ()
 
EZ_ALWAYS_INLINE const ezRenderPipeline * GetPipeline () const
 
virtual ezStatus AddRenderPassesInactive (const ezViewData &viewData, const ezCamera &camera, ezRenderGraph &ref_graph, const ezArrayPtr< const ezRenderPipelinePinConnection > inputs, ezArrayPtr< ezRenderPipelinePinConnection > outputs)
 Called by the render pipeline when this pass is inactive instead of AddRenderPasses. The default implementation does nothing; passes that produce outputs must override this and at minimum write the same output handles they would in AddRenderPasses (typically by adding a clear pass) so downstream passes still see a valid resource.
 
virtual ezGALTextureHandle QueryTextureProvider (const ezRenderPipelineNodePin *pPin, const ezGALTextureCreationDescription &desc)
 
- Public Member Functions inherited from ezRenderPipelineNode
void InitializePins ()
 
ezHashedString GetPinName (const ezRenderPipelineNodePin *pPin) const
 
const ezRenderPipelineNodePin * GetPinByName (ezTempHashedString sName) const
 
const ezArrayPtr< const ezRenderPipelineNodePin *const > GetInputPins () const
 
const ezArrayPtr< const ezRenderPipelineNodePin *const > GetOutputPins () const
 
- Public Member Functions inherited from ezReflectedClass
virtual const ezRTTI * GetDynamicRTTI () const
 
bool IsInstanceOf (const ezRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T >
EZ_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 

Protected Member Functions

virtual void SetupPermutationVars (const ezRenderViewContext &renderViewContext)
 Configures shader permutation variables based on render settings.
 
virtual void DeclareRenderObjectDependencies (ezRenderGraph &ref_graph, ezRenderGraphPassBuilder &ref_pass)=0
 
virtual void RenderObjects (const ezRenderViewContext &renderViewContext)=0
 Renders the objects for this pass. Must be implemented by derived classes.
 
- Protected Member Functions inherited from ezRenderPipelinePass
void SetReadBackProperty (ezView *pView, ezStringView sPropertyName, const ezVariant &value)
 

Protected Attributes

ezRenderPipelineNodePassThroughPin m_PinColor
 Color target for rendering.
 
ezRenderPipelineNodePassThroughPin m_PinDepthStencil
 Depth-stencil target.
 
ezEnum< ezForwardRenderShadingQuality > m_ShadingQuality
 Quality level for shading calculations.
 
ezTexture2DResourceHandle m_hWhiteTexture
 Fallback white texture for unbound inputs.
 

Additional Inherited Members

- Static Public Member Functions inherited from ezNoBase
static const ezRTTI * GetStaticRTTI ()
 

Detailed Description

Base class for forward rendering passes.

Forward rendering evaluates lighting for each rendered object during the geometry pass. Derived classes implement specific object filtering (opaque, transparent, etc.).

Member Function Documentation

◆ AddRenderPasses()

ezStatus ezForwardRenderPass::AddRenderPasses ( const ezViewData &  viewData,
const ezCamera &  camera,
ezRenderGraph &  ref_graph,
const ezArrayPtr< const ezRenderPipelinePinConnection >  inputs,
ezArrayPtr< ezRenderPipelinePinConnection >  outputs 
)
overridevirtual

Called by the render pipeline when this pass is active. The pass declares its render-graph passes and writes the resulting transient handles into the outputs array.

Reimplemented from ezRenderPipelinePass.

Reimplemented in ezOpaqueForwardRenderPass, and ezTransparentForwardRenderPass.

◆ DeclareRenderObjectDependencies()

virtual void ezForwardRenderPass::DeclareRenderObjectDependencies ( ezRenderGraph &  ref_graph,
ezRenderGraphPassBuilder &  ref_pass 
)
protectedpure virtual

Declares the renderer dependencies for the render data categories that RenderObjects will render.

Must declare the same set of categories that RenderObjects passes to RenderDataWithCategory.

Implemented in ezOpaqueForwardRenderPass, ezSkyRenderPass, and ezTransparentForwardRenderPass.

◆ Deserialize()

ezResult ezForwardRenderPass::Deserialize ( ezStreamReader &  inout_stream)
overridevirtual

Reimplemented from ezRenderPipelinePass.

◆ RenderObjects()

virtual void ezForwardRenderPass::RenderObjects ( const ezRenderViewContext &  renderViewContext)
protectedpure virtual

Renders the objects for this pass. Must be implemented by derived classes.

Implemented in ezOpaqueForwardRenderPass, ezSkyRenderPass, and ezTransparentForwardRenderPass.

◆ Serialize()

ezResult ezForwardRenderPass::Serialize ( ezStreamWriter &  inout_stream) const
overridevirtual

Reimplemented from ezRenderPipelinePass.

◆ SetupPermutationVars()

void ezForwardRenderPass::SetupPermutationVars ( const ezRenderViewContext &  renderViewContext)
protectedvirtual

Configures shader permutation variables based on render settings.

Reimplemented in ezOpaqueForwardRenderPass.


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