FParticleSystemSceneProxy

Scene Proxies

Windows
MacOS
Linux

Inheritance Hierarchy

FPrimitiveSceneProxy

FParticleSystemSceneProxy

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Public/ParticleHelper.h

Include

#include "ParticleHelper.h"

Syntax

class FParticleSystemSceneProxy : public FPrimitiveSceneProxy

Remarks

Scene Proxies

Variables

Name Description

Protected variable

uint8: 1

 

bCastShadow

Protected variable

uint8: 1

 

bManagingSignificance

Protected variable

uint8: 1

 

bVertexFactoriesDirty

Protected variable

FColoredMateria...

 

DeselectedWireframeMaterialInstance

Protected variable

FParticleDynami...

 

DynamicData

Protected variable

TArray< FDynami...

 

DynamicDataForThisFrame

Protected variable

TArray< FPartic...

 

EmitterVertexFactoryArray

Vertex factories for all emitters

Protected variable

TEnumAsByte< ER...

 

FeatureLevel

Protected variable

int32

 

FirstFreeMeshBatch

Protected variable

FParticleDynami...

 

LastDynamicData

Protected variable

int32

 

LastFramePreRendered

From ViewFamily.FrameNumber

Protected variable

int32

 

LODMethod

Protected variable

FMaterialReleva...

 

MaterialRelevance

Protected variable

TIndirectArray<...

 

MeshBatchPool

Pool for holding FMeshBatches to reduce allocations.

Public variable

TArray< int32 >

 

MeshEmitterLODIndices

Persistent proxy storage for mesh emitter LODs; need to store these here, because GDME needs to calc the index, but VF needs to be init'ed with the correct LOD, and DynamicData goes away every frame

Protected variable

AActor *

 

Owner

Protected variable

float

 

PendingLODDistance

Protected variable

int32

 

VisualizeLODIndex

Protected variable

TUniformBuffer<...

 

WorldSpacePrimitiveUniformBuffer

The primitive's uniform buffer. Mutable because it is cached state during GetDynamicMeshElements.

Constructors

Name Description

Public function

FParticleSystemSceneProxy

(
    const UParticleSystemComponent*...,
    FParticleDynamicData* InDynami...,
    bool bCanBeOccluded
)

Initialization constructor.

Destructors

Name Description

Public function Virtual

~FParticleSystemSceneProxy()

Functions

Name Description

Public function Const

void

 

AddEmitterVertexFactory

(
    FDynamicEmitterDataBase* InDyn...
)

Public function Const

void

 

ClearEmitterVertexFactoryIfDirty

(
    uint32 EmitterIndex
)

Public function Const

void

 

ClearVertexFactories()

Public function Const

void

 

ClearVertexFactoriesIfDirty()

Protected function

void

 

CreateRenderThreadResourcesForEmitterData()

Allows dynamic emitter data to create render thread resources.

Public function

void

 

DetermineLODDistance

(
    const FSceneView* View,
    int32 FrameNumber
)

Public function Const

uint32

 

GetAllocatedSize()

Public function Const

bool

 

GetCastShadow()

Public function Const

const FColor...

 

GetDeselectedWireframeMatInst()

Public function

FParticleDyn...

 

GetDynamicData()

Public function Const

ERHIFeatureL...

 

GetFeatureLevel()

Public function

FParticleDyn...

 

GetLastDynamicData()

Public function Const

const FMater...

 

GetMaterialRelevance()

Public function Const

void

 

GetObjectPositionAndScale

(
    const FSceneView& View,
    FVector2D& ObjectNDCPosition,
    FVector2D& ObjectMacroUVScales
)

Object position in post projection space.

Public function Const

float

 

GetPendingLODDistance()

Public function

FMeshBatch &...

 

GetPooledMeshBatch()

Gets a mesh batch from the pool.

Public function Const

int32

 

GetVisualizeLODIndex()

Public function Const

FRHIUniformB...

 

GetWorldSpacePrimitiveUniformBuffer()

Public function Const

FMatrix

 

GetWorldToLocal()

While this isn't good OO design, access to everything is made public.

Public function Const

void

 

MarkEmitterVertexFactoryDirty

(
    uint32 EmitterIndex
)

Public function

void

 

MarkVertexFactoriesDirty()

Public function

void

 

QueueVertexFactoryCreation

(
    FDynamicEmitterDataBase* InDyn...
)

Public function Virtual

void

 

ReleaseRenderThreadResources()

Called when the rendering thread removes the dynamic data from the scene.

Protected function

void

 

ReleaseRenderThreadResourcesForEmitterData()

Allows dynamic emitter data to release render thread resources.

Public function

void

 

SetLastDynamicData

(
    FParticleDynamicData* InLastDy...
)

Public function

void

 

SetVisualizeLODIndex

(
    int32 InVisualizeLODIndex
)

Public function

void

 

UpdateData

(
    FParticleDynamicData* NewDynam...
)

Public function

void

 

UpdateData_RenderThread

(
    FParticleDynamicData* NewDynam...
)

Public function Const

void

 

UpdateVertexFactories()

Public function Const

void

 

UpdateWorldSpacePrimitiveUniformBuffer()

Called by dynamic emitter data during initialization to make sure the world space primitive uniform buffer is up-to-date.

Overridden from FPrimitiveSceneProxy

Name Description

Public function Virtual Const

bool

 

CanBeOccluded()

Public function Virtual

void

 

CreateRenderThreadResources()

Called when the rendering thread adds the proxy to the scene.

Public function Virtual Const

void

 

GatherSimpleLights

(
    const FSceneViewFamily& ViewFamily,
    FSimpleLightArray& OutParticleLigh...
)

Gathers simple lights for this emitter.

Public function Virtual Const

FBoxSphereBo...

 

GetCustomOcclusionBounds()

Return the custom occlusion bounds for this scene proxy.

Public function Virtual Const

void

 

GetDynamicMeshElements

(
    const TArray< const FSceneView*...,
    const FSceneViewFamily& ViewFamily,
    uint32 VisibilityMap,
    FMeshElementCollector& Collector
)

Gathers the primitive's dynamic mesh elements.

Public function Virtual Const

uint32

 

GetMemoryFootprint()

Every derived class should override these functions

Public function Virtual Const

SIZE_T

 

GetTypeHash()

Return a type (or subtype) specific hash for sorting purposes

Public function Virtual Const

FPrimitiveVi...

 

GetViewRelevance

(
    const FSceneView* View
)

Determines the relevance of this primitive's elements to the given view.

Public function Virtual Const

bool

 

HasCustomOcclusionBounds()

Returns whether the proxy utilizes custom occlusion bounds or not

Public function Virtual

void

 

OnTransformChanged()

Called to notify the proxy when its transform has been updated.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback