Open 3D Engine Atom Gem API Reference
24.09
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
|
#include <EsmShadowmapsPass.h>
Inherits AZ::RPI::ParentPass.
Classes | |
struct | FilterParameter |
Public Member Functions | |
AZ_CLASS_ALLOCATOR (EsmShadowmapsPass, SystemAllocator) | |
AZ_RTTI (EsmShadowmapsPass, "453E9AF0-C38F-4EBC-9871-8471C3D5369A", RPI::ParentPass) | |
const Name & | GetLightTypeName () const |
bool | GetIsProjected () const |
void | SetShadowmapIndexTableBuffer (const Data::Instance< RPI::Buffer > &tableBuffer) |
void | SetFilterParameterBuffer (const Data::Instance< RPI::Buffer > &dataBuffer) |
This sets filter parameter buffer. | |
void | SetEnabledComputation (bool enabled) |
This enable/disable children's computations. | |
void | SetAtlasAttachmentImage (Data::Instance< RPI::AttachmentImage > atlasAttachmentIamge) |
Sets the image to use as the output for all esm passes. This is needed so multiple pipelines in a scene can share the same resource. | |
![]() | |
AZ_RTTI (ParentPass, "{0801AD74-85A8-4895-A5E5-C500AEE535A6}", Pass) | |
AZ_CLASS_ALLOCATOR (ParentPass, SystemAllocator) | |
virtual Ptr< ParentPass > | Recreate () const |
void | GetPipelineViewTags (PipelineViewTags &outTags) const override |
Recursively collects all different view tags from this pass's children. | |
void | GetViewDrawListInfo (RHI::DrawListMask &outDrawListMask, PassesByDrawList &outPassesByDrawList, const PipelineViewTag &viewTag) const override |
Recursively searches children for given viewTag, and collects their DrawListTags in outDrawListMask. | |
void | SetRenderPipeline (RenderPipeline *pipeline) override |
Set render pipeline this pass belongs to recursively. | |
Ptr< PassAttachment > | GetOwnedAttachment (const Name &attachmentName) const |
Return owning attachment. | |
void | AddChild (const Ptr< Pass > &child, bool skipStateCheckWhenRunningTests=false) |
Adds pass to list of children. NOTE: skipStateCheckWhenRunningTests is only used to support manual adding of passing in unit tests, do not use this variable otherwise. | |
bool | InsertChild (const Ptr< Pass > &child, ChildPassIndex position) |
bool | InsertChild (const Ptr< Pass > &child, uint32_t index) |
void | OnChildAdded (const Ptr< Pass > &child) |
Called when a pass is added as a child pass to this parent. | |
ChildPassIndex | FindChildPassIndex (const Name &passName) const |
Searches for a child pass with the given name. Returns the child's index if found, null index otherwise. | |
Ptr< Pass > | FindChildPass (const Name &passName) const |
Find a child pass with a matching name and returns it. Return nullptr if none found. | |
template<typename PassType > | |
Ptr< PassType > | FindChildPass () const |
AZStd::span< const Ptr< Pass > > | GetChildren () const |
Gets the list of children. Useful for validating hierarchies. | |
const Pass * | FindPass (RHI::DrawListTag drawListTag) const |
Searches the tree for the first pass that uses the given DrawListTag. | |
void | SetTimestampQueryEnabled (bool enable) override |
Recursively set all the Timestamp queries enabled for all its children. | |
void | SetPipelineStatisticsQueryEnabled (bool enable) override |
Recursively set all the PipelineStatistics queries enabled for all its children. | |
void | Validate (PassValidationResults &validationResults) override |
void | DebugPrint () const override |
Prints the pass and all of it's children. | |
![]() | |
AZ_RTTI (Pass, "{EA34FF66-631D-433B-B449-71F5647E7BB5}", AZStd::intrusive_base) | |
AZ_CLASS_ALLOCATOR (Pass, SystemAllocator) | |
const Name & | GetName () const |
Returns the name of the pass (example: Bloom) | |
const Name & | GetPathName () const |
Return the path name of the pass (example: Root.SwapChain.Bloom) | |
uint32_t | GetTreeDepth () const |
Returns the depth of this pass in the tree hierarchy (Root depth is 0) | |
uint32_t | GetParentChildIndex () const |
Returns the index in the parent's array of children that this pass occupies (used for sorting passes) | |
uint32_t | GetInputCount () const |
Returns the number of input attachment bindings. | |
uint32_t | GetInputOutputCount () const |
Returns the number of input/output attachment bindings. | |
uint32_t | GetOutputCount () const |
Returns the number of output attachment bindings. | |
const PassTemplate * | GetPassTemplate () const |
void | SetEnabled (bool enabled) |
virtual bool | IsEnabled () const |
bool | HasDrawListTag () const |
bool | HasPipelineViewTag () const |
bool | BindViewSrg () const |
PassAttachmentBinding * | FindAttachmentBinding (const Name &slotName) |
PassAttachmentBindingListView | GetAttachmentBindings () const |
Return the set of attachment bindings. | |
ParentPass * | AsParent () |
Casts the pass to a parent pass if valid, else returns nullptr. | |
const ParentPass * | AsParent () const |
bool | IsRootPass () const |
Returns whether the pass is the root pass. | |
PassTree * | GetPassTree () const |
Returns the PassTree from the pass's RenderPipeline (or nullptr if there isn't one) | |
void | QueueForBuildAndInitialization () |
Queues the pass to have Build() and Initialize() called by the PassSystem on frame update. | |
void | QueueForRemoval () |
Queues the pass to have RemoveFromParent() called by the PassSystem on frame update. | |
void | QueueForInitialization () |
Queues the pass to have Initialize() called by the PassSystem on frame update. | |
void | AddAttachmentBinding (PassAttachmentBinding attachmentBinding) |
Adds an attachment binding to the list of this Pass' attachment bindings. | |
PassAttachmentBinding & | GetInputBinding (uint32_t index) |
PassAttachmentBinding & | GetInputOutputBinding (uint32_t index) |
PassAttachmentBinding & | GetOutputBinding (uint32_t index) |
void | AttachBufferToSlot (AZStd::string_view slot, Data::Instance< Buffer > buffer) |
void | AttachBufferToSlot (const Name &slot, Data::Instance< Buffer > buffer) |
void | AttachImageToSlot (const Name &slot, Data::Instance< AttachmentImage > image) |
virtual RHI::DrawListTag | GetDrawListTag () const |
Check if the pass has a DrawListTag. Pass' DrawListTag can be used to filter draw items. | |
virtual void | SortDrawList (RHI::DrawList &drawList) const |
Function used by views to sort draw lists. Can be overridden so passes can provide custom sort functionality. | |
virtual const PipelineViewTag & | GetPipelineViewTag () const |
Check if the pass is associated to a view. If pass has a pipeline view tag, the rpi view assigned to this view tag will have pass's draw list tag. | |
RenderPipeline * | GetRenderPipeline () const |
Scene * | GetScene () const |
TimestampResult | GetLatestTimestampResult () const |
Return the latest Timestamp result of this pass. | |
PipelineStatisticsResult | GetLatestPipelineStatisticsResult () const |
Return the latest PipelineStatistic result of this pass. | |
bool | ReadbackAttachment (AZStd::shared_ptr< AttachmentReadback > readback, uint32_t readbackIndex, const Name &slotName, PassAttachmentReadbackOption option=PassAttachmentReadbackOption::Output, const RHI::ImageSubresourceRange *mipsRange=nullptr) |
bool | IsTimestampQueryEnabled () const |
Returns whether the Timestamp queries is enabled/disabled for this pass. | |
bool | IsPipelineStatisticsQueryEnabled () const |
Returns whether the PipelineStatistics queries is enabled/disabled for this pass. | |
void | PrintIndent (AZStd::string &stringOutput, uint32_t indent) const |
Helper function to print spaces to indent the pass. | |
void | PrintPassName (AZStd::string &stringOutput, uint32_t indent=0) const |
Prints the name of the pass. | |
void | DebugPrintBinding (AZStd::string &stringOutput, const PassAttachmentBinding &binding) const |
Prints the attachment binding at the given index. | |
void | DebugPrintBindingAndConnection (AZStd::string &stringOutput, uint8_t bindingIndex) const |
Prints the attachment binding at the given index and its connection. | |
void | PrintErrors () const |
Prints the pass name and all the errors accumulated during build and setup. | |
void | PrintWarnings () const |
Prints the pass name and all the warnings accumulated during build and setup. | |
void | PrintMessages (const AZStd::vector< AZStd::string > &messages) const |
Helper function to print an array of messages (like errors or warnings) for a pass. | |
void | PrintBindingsWithoutAttachments (uint32_t slotTypeMask) const |
Prints the pass and all the list of inputs and input/outputs that are missing an attachment. | |
ParentPass * | GetParent () const |
Returns pointer to the parent pass. | |
PassState | GetPassState () const |
void | UpdateConnectedInputBindings () |
void | UpdateConnectedOutputBindings () |
Static Public Member Functions | |
static RPI::Ptr< EsmShadowmapsPass > | Create (const RPI::PassDescriptor &descriptor) |
![]() | |
static Ptr< ParentPass > | Create (const PassDescriptor &descriptor) |
Creates a new pass without a PassTemplate. | |
Additional Inherited Members | |
![]() | |
using | ChildPassIndex = RHI::Handle< uint32_t, class ChildPass > |
![]() | |
using | ChildPassIndex = RHI::Handle< uint32_t, class ChildPass > |
![]() | |
ParentPass (const PassDescriptor &descriptor) | |
void | CreateChildPasses () |
void | UpdateConnectedBindings () override |
void | RemoveChild (Ptr< Pass > pass) |
void | RemoveChildren (bool calledFromDestructor=false) |
![]() | |
Pass (const PassDescriptor &descriptor) | |
PassDescriptor | GetPassDescriptor () const |
void | ImportAttachments (RHI::FrameGraphAttachmentInterface attachmentDatabase) |
Ptr< Pass > | FindAdjacentPass (const Name &passName) |
const PassAttachmentBinding * | FindAttachmentBinding (const Name &slotName) const |
Ptr< PassAttachment > | FindOwnedAttachment (const Name &attachmentName) const |
Ptr< PassAttachment > | FindAttachment (const Name &slotName) const |
const PassAttachmentBinding * | FindAdjacentBinding (const PassAttachmentRef &attachmentRef, const char *attachmentSourceTypeDebugName="attachment") |
void | ProcessConnection (const PassConnection &connection, uint32_t slotTypeMask=0xFFFFFFFF) |
void | LogError (AZStd::string &&message) |
void | LogWarning (AZStd::string &&message) |
void | Reset () |
void | Build (bool calledFromPassSystem=false) |
void | Initialize () |
void | OnInitializationFinished () |
void | FrameBegin (FramePrepareParams params) |
void | FrameEnd () |
void | UpdateReadbackAttachment (FramePrepareParams params, bool beforeAddScopes) |
void | UpdateAttachmentCopy (FramePrepareParams params) |
bool | UpdateImportedAttachmentImage (Ptr< PassAttachment > &attachment, RHI::ImageBindFlags bindFlags=RHI::ImageBindFlags::Color|RHI::ImageBindFlags::ShaderReadWrite, RHI::ImageAspectFlags aspectFlags=RHI::ImageAspectFlags::Color) |
![]() | |
AZStd::vector< Ptr< Pass > > | m_children |
![]() | |
const Name | PassNameThis {"This"} |
const Name | PassNameParent {"Parent"} |
const Name | PipelineKeyword {"Pipeline"} |
const Name | PipelineGlobalKeyword {"PipelineGlobal"} |
AZStd::fixed_vector< PassAttachmentBinding, PassAttachmentBindingCountMax > | m_attachmentBindings |
AZStd::vector< Ptr< PassAttachment > > | m_ownedAttachments |
AZStd::vector< Pass * > | m_executeBeforePasses |
AZStd::vector< Pass * > | m_executeAfterPasses |
RenderPipeline * | m_pipeline = nullptr |
AZStd::shared_ptr< const PassTemplate > | m_template = nullptr |
PassRequest | m_request |
ParentPass * | m_parent = nullptr |
PipelineViewTag | m_viewTag |
struct { | |
union { | |
struct { | |
uint64_t m_createdByPassRequest: 1 | |
uint64_t m_enabled: 1 | |
uint64_t m_parentEnabled: 1 | |
uint64_t m_alreadyCreatedChildren: 1 | |
uint64_t m_createChildren: 1 | |
uint64_t m_partOfHierarchy: 1 | |
uint64_t m_hasDrawListTag: 1 | |
uint64_t m_bindViewSrg: 1 | |
uint64_t m_timestampQueryEnabled: 1 | |
uint64_t m_pipelineStatisticsQueryEnabled: 1 | |
uint64_t m_isPipelineRoot: 1 | |
uint64_t m_containsGlobalReference: 1 | |
} | |
uint64_t m_allFlags = 0 | |
} | |
} | m_flags |
AZStd::vector< AZStd::string > | m_errorMessages |
AZStd::vector< AZStd::string > | m_warningMessages |
uint32_t | m_errors = 0 |
uint32_t | m_warnings = 0 |
RHI::DrawListSortType | m_drawListSortType = RHI::DrawListSortType::KeyThenDepth |
AZStd::shared_ptr< AttachmentReadback > | m_attachmentReadback |
PassAttachmentReadbackOption | m_readbackOption |
AZStd::weak_ptr< ImageAttachmentCopy > | m_attachmentCopy |
AZStd::shared_ptr< PassData > | m_passData = nullptr |
Optional data used during pass initialization. | |
![]() | |
static const size_t | MessageLogLimit = 256 |
This pass outputs filtered shadowmap images used in ESM. ESM is an abbreviation of Exponential Shadow Maps.
void AZ::Render::EsmShadowmapsPass::SetShadowmapIndexTableBuffer | ( | const Data::Instance< RPI::Buffer > & | tableBuffer | ) |
This sets the buffer of the table which enable to get shadowmap index from the coordinate in the atlas. Note that shadowmap index is shader light index for a spot light and it is cascade index for a directional light.