Open 3D Engine Atom Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::Render::SkinnedMeshFeatureProcessor Class Referencefinal

Inherits AZ::Render::SkinnedMeshFeatureProcessorInterface.

Public Member Functions

 AZ_RTTI (AZ::Render::SkinnedMeshFeatureProcessor, "{D1F44963-913F-4210-92E1-945FA306BED4}", AZ::Render::SkinnedMeshFeatureProcessorInterface)
 
 AZ_FEATURE_PROCESSOR (SkinnedMeshFeatureProcessor)
 
void Activate () override
 Perform any necessary activation and gives access to owning Scene.
 
void Deactivate () override
 Perform any necessary deactivation.
 
void Render (const FeatureProcessor::RenderPacket &packet) override
 
void OnRenderEnd () override
 
void OnRenderPipelineChanged (RPI::RenderPipeline *renderPipeline, RPI::SceneNotification::RenderPipelineChangeType changeType) override
 
void OnBeginPrepareRender () override
 
SkinnedMeshHandle AcquireSkinnedMesh (const SkinnedMeshHandleDescriptor &desc) override
 Given a descriptor of the input and output for skinning, acquire a handle to the instance that will be skinned.
 
bool ReleaseSkinnedMesh (SkinnedMeshHandle &handle) override
 Releases the skinned mesh handle.
 
void SetSkinningMatrices (const SkinnedMeshHandle &handle, const AZStd::vector< float > &data) override
 Updates the data for the skinning transforms of a given skinned mesh handle.
 
void SetMorphTargetWeights (const SkinnedMeshHandle &handle, uint32_t lodIndex, const AZStd::vector< float > &weights) override
 
void EnableSkinning (const SkinnedMeshHandle &handle, uint32_t lodIndex, uint32_t meshIndex) override
 Enable skinning for a given mesh and lod of a skinned mesh handle.
 
void DisableSkinning (const SkinnedMeshHandle &handle, uint32_t lodIndex, uint32_t meshIndex) override
 Disable skinning for a given mesh and lod of a skinned mesh handle.
 
Data::Instance< RPI::ShaderGetSkinningShader () const
 
RPI::ShaderOptionGroup CreateSkinningShaderOptionGroup (const SkinnedMeshShaderOptions shaderOptions, SkinnedMeshShaderOptionNotificationBus::Handler &shaderReinitializedHandler)
 
void OnSkinningShaderReinitialized (const Data::Instance< RPI::Shader > skinningShader)
 
void SubmitSkinningDispatchItems (RHI::CommandList *commandList, uint32_t startIndex, uint32_t endIndex)
 
void SetupSkinningScope (RHI::FrameGraphInterface frameGraph)
 
Data::Instance< RPI::ShaderGetMorphTargetShader () const
 
void SubmitMorphTargetDispatchItems (RHI::CommandList *commandList, uint32_t startIndex, uint32_t endIndex)
 
void SetupMorphTargetScope (RHI::FrameGraphInterface frameGraph)
 
- Public Member Functions inherited from AZ::Render::SkinnedMeshFeatureProcessorInterface
 AZ_RTTI (AZ::Render::SkinnedMeshFeatureProcessorInterface, "{6BE6D9D7-FFD7-4C35-9A84-4EFDE730F06B}", AZ::RPI::FeatureProcessor)
 
virtual SkinnedMeshHandle AcquireSkinnedMesh (const SkinnedMeshHandleDescriptor &desc)=0
 Given a descriptor of the input and output for skinning, acquire a handle to the instance that will be skinned.
 
virtual bool ReleaseSkinnedMesh (SkinnedMeshHandle &handle)=0
 Releases the skinned mesh handle.
 
virtual void SetSkinningMatrices (const SkinnedMeshHandle &handle, const AZStd::vector< float > &data)=0
 Updates the data for the skinning transforms of a given skinned mesh handle.
 
virtual void SetMorphTargetWeights (const SkinnedMeshHandle &handle, uint32_t lodIndex, const AZStd::vector< float > &weights)=0
 
virtual void EnableSkinning (const SkinnedMeshHandle &handle, uint32_t lodIndex, uint32_t meshIndex)=0
 Enable skinning for a given mesh and lod of a skinned mesh handle.
 
virtual void DisableSkinning (const SkinnedMeshHandle &handle, uint32_t lodIndex, uint32_t meshIndex)=0
 Disable skinning for a given mesh and lod of a skinned mesh handle.
 
- Public Member Functions inherited from AZ::RPI::FeatureProcessor
 AZ_RTTI (FeatureProcessor, "{B8027170-C65C-4237-964D-B557FC9D7575}")
 
 AZ_CLASS_ALLOCATOR (FeatureProcessor, AZ::SystemAllocator)
 
SceneGetParentScene () const
 
virtual void Activate ()
 Perform any necessary activation and gives access to owning Scene.
 
virtual void Deactivate ()
 Perform any necessary deactivation.
 
virtual void ApplyRenderPipelineChange (RenderPipeline *pipeline)
 
virtual void AddRenderPasses (RenderPipeline *pipeline)
 
virtual void PrepareViews (const PrepareViewsPacket &, AZStd::vector< AZStd::pair< PipelineViewTag, ViewPtr > > &)
 
virtual void Simulate (const SimulatePacket &)
 
virtual void Render (const RenderPacket &)
 
virtual void OnEndCulling (const RenderPacket &)
 
virtual void OnRenderEnd ()
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 

Friends

class SkinnedMeshStatsCollector
 

Additional Inherited Members

- Public Types inherited from AZ::Render::SkinnedMeshFeatureProcessorInterface
using SkinnedMeshHandle = StableDynamicArrayHandle< SkinnedMeshRenderProxy >
 
- Protected Member Functions inherited from AZ::RPI::FeatureProcessor
void EnableSceneNotification ()
 
void DisableSceneNotification ()
 

Member Function Documentation

◆ AcquireSkinnedMesh()

SkinnedMeshHandle AZ::Render::SkinnedMeshFeatureProcessor::AcquireSkinnedMesh ( const SkinnedMeshHandleDescriptor desc)
overridevirtual

Given a descriptor of the input and output for skinning, acquire a handle to the instance that will be skinned.

Implements AZ::Render::SkinnedMeshFeatureProcessorInterface.

◆ Activate()

void AZ::Render::SkinnedMeshFeatureProcessor::Activate ( )
overridevirtual

Perform any necessary activation and gives access to owning Scene.

Reimplemented from AZ::RPI::FeatureProcessor.

◆ Deactivate()

void AZ::Render::SkinnedMeshFeatureProcessor::Deactivate ( )
overridevirtual

Perform any necessary deactivation.

Reimplemented from AZ::RPI::FeatureProcessor.

◆ DisableSkinning()

void AZ::Render::SkinnedMeshFeatureProcessor::DisableSkinning ( const SkinnedMeshHandle handle,
uint32_t  lodIndex,
uint32_t  meshIndex 
)
overridevirtual

Disable skinning for a given mesh and lod of a skinned mesh handle.

Implements AZ::Render::SkinnedMeshFeatureProcessorInterface.

◆ EnableSkinning()

void AZ::Render::SkinnedMeshFeatureProcessor::EnableSkinning ( const SkinnedMeshHandle handle,
uint32_t  lodIndex,
uint32_t  meshIndex 
)
overridevirtual

Enable skinning for a given mesh and lod of a skinned mesh handle.

Implements AZ::Render::SkinnedMeshFeatureProcessorInterface.

◆ OnRenderEnd()

void AZ::Render::SkinnedMeshFeatureProcessor::OnRenderEnd ( )
overridevirtual

The feature processor may do clean up when the current render frame is finished

  • This is called every RPI::RenderTick.

Reimplemented from AZ::RPI::FeatureProcessor.

◆ ReleaseSkinnedMesh()

bool AZ::Render::SkinnedMeshFeatureProcessor::ReleaseSkinnedMesh ( SkinnedMeshHandle handle)
overridevirtual

Releases the skinned mesh handle.

Implements AZ::Render::SkinnedMeshFeatureProcessorInterface.

◆ SetMorphTargetWeights()

void AZ::Render::SkinnedMeshFeatureProcessor::SetMorphTargetWeights ( const SkinnedMeshHandle handle,
uint32_t  lodIndex,
const AZStd::vector< float > &  weights 
)
overridevirtual

Updates the morph target weights for all meshes of a given lod of a skinned mesh handle The weights should be in the order that the morph targets were initially added to the SkinnedMeshInputBuffers for the handle

Implements AZ::Render::SkinnedMeshFeatureProcessorInterface.

◆ SetSkinningMatrices()

void AZ::Render::SkinnedMeshFeatureProcessor::SetSkinningMatrices ( const SkinnedMeshHandle handle,
const AZStd::vector< float > &  data 
)
overridevirtual

Updates the data for the skinning transforms of a given skinned mesh handle.

Implements AZ::Render::SkinnedMeshFeatureProcessorInterface.


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