ezEngine  Release 25.03
ezParticleTypeTrail Class Referencefinal
Inheritance diagram for ezParticleTypeTrail:

Classes

struct  TrailData
 

Public Member Functions

virtual void CreateRequiredStreams () override
 
virtual void ExtractTypeRenderData (ezMsgExtractRenderData &ref_msg, const ezTransform &instanceTransform) const override
 
virtual float GetMaxParticleRadius (float fParticleSize) const override
 
- Public Member Functions inherited from ezParticleModule
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)
 Override this to cache world module pointers for later (through ezParticleWorldModule::GetCachedWorldModule()).
 
- 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.
 

Static Public Member Functions

static ezUInt16 ComputeTrailPointBucketSize (ezUInt16 uiMaxTrailPoints)
 
- Static Public Member Functions inherited from ezNoBase
static const ezRTTIGetStaticRTTI ()
 

Public Attributes

ezEnum< ezParticleTypeRenderModem_RenderMode
 
ezUInt16 m_uiMaxPoints
 
ezTime m_UpdateDiff
 
ezTexture2DResourceHandle m_hTexture
 
ezEnum< ezParticleTextureAtlasTypem_TextureAtlasType
 
ezUInt8 m_uiNumSpritesX = 1
 
ezUInt8 m_uiNumSpritesY = 1
 
ezTempHashedString m_sTintColorParameter
 
ezTexture2DResourceHandle m_hDistortionTexture
 
float m_fDistortionStrength = 0
 
ezEnum< ezParticleLightingModem_LightingMode
 
float m_fNormalCurvature = 0.5f
 
float m_fLightDirectionality = 0.5f
 
- Public Attributes inherited from ezProcessingStreamProcessor
float m_fPriority = 0.0f
 Used for sorting processors, to ensure a certain order. Lower priority == executed first.
 

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 Process (ezUInt64 uiNumElements) override
 The actual method which processes the data, will be called with the number of elements to process.
 
void OnParticleDeath (const ezStreamGroupElementRemovedEvent &e)
 
ezUInt16 GetIndexForTrailPoints ()
 
const ezVec4GetTrailPointsPositions (ezUInt32 index) const
 
ezVec4GetTrailPointsPositions (ezUInt32 index)
 
- Protected Member Functions inherited from ezParticleType
virtual void StepParticleSystem (const ezTime &tDiff, ezUInt32 uiNumNewParticles)
 
- Protected Member Functions inherited from ezParticleModule
virtual void OnReset ()
 Called by Reset()
 
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 Attributes

ezProcessingStreamm_pStreamLifeTime = nullptr
 
ezProcessingStreamm_pStreamPosition = nullptr
 
ezProcessingStreamm_pStreamSize = nullptr
 
ezProcessingStreamm_pStreamColor = nullptr
 
ezProcessingStreamm_pStreamTrailData = nullptr
 
ezProcessingStreamm_pStreamVariation = nullptr
 
ezTime m_LastSnapshot
 
ezUInt8 m_uiCurFirstIndex = 0
 
float m_fSnapshotFraction
 
ezArrayPtr< ezBaseParticleShaderData > m_BaseParticleData
 
ezArrayPtr< ezTrailParticleShaderData > m_TrailParticleData
 
ezArrayPtr< ezVec4m_TrailPointsShared
 
ezDynamicArray< ezTrailParticlePointsData64, ezAlignedAllocatorWrapperm_TrailPoints64
 
ezDynamicArray< ezUInt16 > m_FreeTrailData
 
- Protected Attributes inherited from ezParticleType
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 ezParticleTypeTrailFactory
 

Additional Inherited Members

- Static Protected Member Functions inherited from ezParticleType
static ezUInt32 ComputeSortingKey (ezParticleTypeRenderMode::Enum mode, ezUInt64 uiTextureHash)
 

Member Function Documentation

◆ ExtractTypeRenderData()

void ezParticleTypeTrail::ExtractTypeRenderData ( ezMsgExtractRenderData ref_msg,
const ezTransform instanceTransform 
) const
overridevirtual
Todo:
This loop could be done without a condition

Implements ezParticleType.

◆ GetMaxParticleRadius()

virtual float ezParticleTypeTrail::GetMaxParticleRadius ( float  fParticleSize) const
inlineoverridevirtual
Todo:
This is a hacky guess, one would actually need to inspect the trail positions

Reimplemented from ezParticleType.

Member Data Documentation

◆ m_TrailPoints64

ezDynamicArray<ezTrailParticlePointsData64, ezAlignedAllocatorWrapper> ezParticleTypeTrail::m_TrailPoints64
protected
Todo:
Use a shared freelist across effects instead

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