ezEngine Release 26.3
Loading...
Searching...
No Matches
ezParticleType Class Referenceabstract

#include <ParticleType.h>

Inheritance diagram for ezParticleType:

Public Member Functions

virtual float GetMaxParticleRadius (float fParticleSize) const
 
virtual void ExtractTypeRenderData (ezMsgExtractRenderData &ref_msg, const ezTransform &instanceTransform) const =0
 
- Public Member Functions inherited from ezParticleModule
virtual void CreateRequiredStreams ()=0
 
virtual void QueryOptionalStreams ()
 
void Reset (ezParticleSystemInstance *pOwner)
 
virtual void OnFinalize ()
 Called after everything is set up.
 
ezParticleSystemInstanceGetOwnerSystem ()
 
const ezParticleSystemInstanceGetOwnerSystem () const
 
ezParticleEffectInstanceGetOwnerEffect () const
 
virtual void RequestRequiredWorldModulesForCache (ezParticleWorldModule *pParticleModule)
 
- Public Member Functions inherited from ezProcessingStreamProcessor
 ezProcessingStreamProcessor ()
 Base constructor.
 
virtual ~ezProcessingStreamProcessor ()
 Base destructor.
 
- Public Member Functions inherited from ezReflectedClass
virtual const ezRTTIGetDynamicRTTI () 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 InitializeElements (ezUInt64 uiStartIndex, ezUInt64 uiNumElements) override
 This method needs to be implemented in order to initialize new elements to specific values.
 
virtual void StepParticleSystem (const ezTime &tDiff, ezUInt32 uiNumNewParticles)
 
- Protected Member Functions inherited from ezParticleModule
virtual void OnReset ()
 Called by Reset() to perform custom cleanup.
 
void CreateStream (const char *szName, ezProcessingStream::DataType Type, ezProcessingStream **ppStream, bool bWillInitializeStream)
 
virtual ezResult UpdateStreamBindings () final override
 Internal method which needs to be implemented, gets the concrete stream bindings. This is called every time the streams are resized. Implementations should check that their required streams exist and are of the correct data types.
 
ezRandomGetRNG () const
 
- Protected Member Functions inherited from ezProcessingStreamProcessor
virtual void Process (ezUInt64 uiNumElements)=0
 The actual method which processes the data, will be called with the number of elements to process.
 

Static Protected Member Functions

static ezUInt32 ComputeSortingKey (ezParticleTypeRenderMode::Enum mode, ezUInt64 uiResource1Hash, ezUInt64 uiResource2Hash)
 

Protected Attributes

ezTime m_TimeDiff
 
ezUInt64 m_uiLastExtractedFrame
 
- Protected Attributes inherited from ezProcessingStreamProcessor
ezProcessingStreamGroupm_pStreamGroup = nullptr
 Back pointer to the stream group - will be set to the owner stream group when adding the stream processor to the group. Can be used to get stream pointers in UpdateStreamBindings();.
 

Friends

class ezParticleSystemInstance
 

Additional Inherited Members

- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 
- Public Attributes inherited from ezProcessingStreamProcessor
float m_fPriority = 0.0f
 Used for sorting processors, to ensure a certain order. Lower priority == executed first.
 

Detailed Description

Base class for particle types that define how particles are rendered.

Each particle type handles a specific rendering method such as billboards, trails, meshes, or lights. Types process particle data each frame and generate render data for the renderer.

Member Function Documentation

◆ ExtractTypeRenderData()

virtual void ezParticleType::ExtractTypeRenderData ( ezMsgExtractRenderData ref_msg,
const ezTransform instanceTransform 
) const
pure virtual

Generates render data for all active particles.

Called during render data extraction to create render objects for this particle type.

Implemented in ezParticleTypeEffect, ezParticleTypeLight, ezParticleTypeMesh, ezParticleTypePoint, ezParticleTypeQuad, and ezParticleTypeTrail.

◆ GetMaxParticleRadius()

virtual float ezParticleType::GetMaxParticleRadius ( float  fParticleSize) const
inlinevirtual

Returns the maximum radius a particle can occupy for culling purposes.

Used to compute bounding volumes for frustum culling. The default implementation returns half the particle size, assuming spherical particles.

Reimplemented in ezParticleTypeEffect, ezParticleTypeLight, ezParticleTypePoint, and ezParticleTypeTrail.

◆ InitializeElements()

virtual void ezParticleType::InitializeElements ( ezUInt64  uiStartIndex,
ezUInt64  uiNumElements 
)
inlineoverrideprotectedvirtual

This method needs to be implemented in order to initialize new elements to specific values.

Implements ezProcessingStreamProcessor.

Reimplemented in ezParticleTypeMesh, ezParticleTypeQuad, and ezParticleTypeTrail.


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