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

Inherited by AZ::Render::ModelDataInstance [private].

Classes

struct  PostCullingInstanceData
 

Public Types

using InstanceGroupHandle = StableDynamicArrayWeakHandle< MeshInstanceGroupData >
 
using PostCullingInstanceDataList = AZStd::vector< PostCullingInstanceData >
 
using MeshDrawPacketUpdatedEvent = Event< const ModelDataInstanceInterface &, uint32_t, uint32_t, const AZ::RPI::MeshDrawPacket & >
 

Public Member Functions

 AZ_RTTI (AZ::Render::ModelDataInstanceInterface, "{0B990760-AB5C-4357-A983-AD066EC9AC2E}")
 
virtual const TransformServiceFeatureProcessorInterface::ObjectId GetObjectId () const =0
 
virtual const Data::Instance< RPI::Model > & GetModel ()=0
 
virtual const Data::Asset< RPI::ModelAsset > & GetProductModelAsset ()=0
 
virtual const RPI::CullableGetCullable ()=0
 
virtual const uint32_t GetLightingChannelMask ()=0
 
virtual MeshInfoHandle GetMeshInfoHandle (size_t modelLodIndex, size_t meshIndex) const =0
 
virtual int32_t GetMeshInfoIndex (size_t modelLodIndex, size_t meshIndex) const =0
 
virtual const bool IsSkinnedMesh ()=0
 
virtual const AZ::Uuid & GetRayTracingUuid () const =0
 
virtual void HandleDrawPacketUpdate (uint32_t lodIndex, uint32_t meshIndex, RPI::MeshDrawPacket &meshDrawPacket)=0
 Internally called when a DrawPacket used by this ModelDataInstance was updated.
 
virtual void ConnectMeshDrawPacketUpdatedHandler (MeshDrawPacketUpdatedEvent::Handler &handler)=0
 
virtual CustomMaterialInfo GetCustomMaterialWithFallback (const CustomMaterialId &id) const =0
 

Friends

class MeshFeatureProcessor
 
class MeshLoader
 

Member Typedef Documentation

◆ MeshDrawPacketUpdatedEvent

Event that let's us know whenever one of the MeshDrawPackets has been updated. This event can occur on multiple threads. Provides the ModelDataInstance parent object that owns the MeshDrawPacket.

Member Function Documentation

◆ ConnectMeshDrawPacketUpdatedHandler()

virtual void AZ::Render::ModelDataInstanceInterface::ConnectMeshDrawPacketUpdatedHandler ( MeshDrawPacketUpdatedEvent::Handler &  handler)
pure virtual

Connects @handler to the MeshDrawPacketUpdatedEvent. One of the most common reasons a MeshDrawPacket gets updated is when a RenderPipeline is instantiated at runtime and it happens to contain a RasterPass with a DrawListTag that matches one of the Shaders of one of the Materials in a Mesh. Another scenario is when Shader assets or Material assets are reloaded.

Implemented in AZ::Render::ModelDataInstance.

◆ GetProductModelAsset()

virtual const Data::Asset< RPI::ModelAsset > & AZ::Render::ModelDataInstanceInterface::GetProductModelAsset ( )
pure virtual

If this is a skinned mesh, ProductModelAssetId is the asset-id of the original, non-animated asset. Returns a invalid Asset for non-skinned meshes.

Implemented in AZ::Render::ModelDataInstance.

◆ HandleDrawPacketUpdate()

virtual void AZ::Render::ModelDataInstanceInterface::HandleDrawPacketUpdate ( uint32_t  lodIndex,
uint32_t  meshIndex,
RPI::MeshDrawPacket meshDrawPacket 
)
pure virtual

Internally called when a DrawPacket used by this ModelDataInstance was updated.

Implemented in AZ::Render::ModelDataInstance.


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