Navigation
API > API/Runtime > API/Runtime/Renderer
Inheritance Hierarchy
- FDeferredCleanupInterface
- FPrimitiveSceneInfo
References
| Module | Renderer |
| Header | /Engine/Source/Runtime/Renderer/Public/PrimitiveSceneInfo.h |
| Include | #include "PrimitiveSceneInfo.h" |
Syntax
class FPrimitiveSceneInfo : public FDeferredCleanupInterface
Remarks
The renderer's internal state for a single UPrimitiveComponent. This has a one to one mapping with FPrimitiveSceneProxy, which is in the engine module.
Variables
| Type | Name | Description | |
|---|---|---|---|
| bool: 1 | bNeedsCachedReflectionCaptureUpdate | Whether the primitive is newly registered or moved and CachedReflectionCaptureProxy needs to be updated on the next render. | |
| bool: 1 | bShouldRenderInMainPass | Set to true for the primitive to be rendered in the main pass to be visible in a view. | |
| bool: 1 | bVisibleInRealTimeSkyCapture | Set to true for the primitive to be rendered into the real-time sky light reflection capture. | |
| const FPlanarReflectionSceneProxy * | CachedPlanarReflectionProxy | Planar reflection that was closest to this primitive, used for forward reflections. | |
| const FReflectionCaptureProxy *[MaxCachedReflectionCaptureProxies] | CachedReflectionCaptureProxies | ||
| const FReflectionCaptureProxy * | CachedReflectionCaptureProxy | Reflection capture proxy that was closest to this primitive, used for the forward shading rendering path. | |
| HHitProxy * | DefaultDynamicHitProxy | The hit proxy which is used to represent the primitive's dynamic elements. | |
| FHitProxyId | DefaultDynamicHitProxyId | The ID of the hit proxy which is used to represent the primitive's dynamic elements. | |
| TArray< int32, TInlineAllocator< 1 > > | DistanceFieldInstanceIndices | Mapping from instance index in this primitive to index in the global distance field object buffers. | |
| float | GpuLodInstanceRadius | The sphere radius to use for per instance GPU Lodding. | |
| TArray< TRefCountPtr< HHitProxy > > | HitProxies | The hit proxies used by the primitive. | |
| const FIndirectLightingCacheAllocation * | IndirectLightingCacheAllocation | Caches the primitive's indirect lighting cache allocation. | |
| TUniformBufferRef< FIndirectLightingCacheUniformParameters > | IndirectLightingCacheUniformBuffer | The uniform buffer holding precomputed lighting parameters for the indirect lighting cache allocation. | |
| float | LastRenderTime | Last render time in seconds since level started play. | |
| FPrimitiveComponentId | LightingAttachmentRoot | The root attachment component id for use with lighting, if valid. | |
| FLightPrimitiveInteraction * | LightList | The list of lights affecting this primitive. | |
| FPrimitiveComponentId | LODParentComponentId | The component id of the LOD parent if valid. | |
| TArray< int32, TInlineAllocator< 1 > > | LumenPrimitiveGroupIndices | Mapping from instance index in this primitive to index in the LumenPrimitiveGroup array. | |
| TArray< FNaniteCommandInfo >[ENaniteMeshPass::Num] | NaniteCommandInfos | ||
| TArray< FNaniteMaterialSlot >[ENaniteMeshPass::Num] | NaniteMaterialSlots | ||
| TArray< FNaniteRasterBin >[ENaniteMeshPass::Num] | NaniteRasterBins | ||
| TArray< FNaniteShadingBin >[ENaniteMeshPass::Num] | NaniteShadingBins | ||
| int32 | NumMobileDynamicLocalLights | The number of local lights with dynamic lighting for mobile | |
| FOctreeElementId2 | OctreeId | The identifier for the primitive in Scene->PrimitiveOctree. | |
| FPrimitiveComponentId | PrimitiveComponentId | Id for the component this primitive belongs to. | |
| FPrimitiveSceneProxy * | Proxy | The render proxy for the primitive. | |
| int32 | RegistrationSerialNumber | Number assigned to this component when it was registered with the world. | |
| FScene * | Scene | The scene the primitive is in. | |
| TArray< class FCachedMeshDrawCommandInfo > | StaticMeshCommandInfos | The primitive's cached mesh draw commands infos for all static meshes. | |
| TArray< class FStaticMeshBatch > | StaticMeshes | The primitive's static meshes. | |
| TArray< class FStaticMeshBatchRelevance > | StaticMeshRelevances | The primitive's static mesh relevances. |
Constructors
| Type | Name | Description | |
|---|---|---|---|
FPrimitiveSceneInfo
(
UPrimitiveComponent* InPrimitive, |
Initialization constructor. | ||
FPrimitiveSceneInfo
(
FPrimitiveSceneDesc* InPrimitiveSceneDesc, |
Destructors
| Type | Name | Description | |
|---|---|---|---|
| Destructor. |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddStaticMeshes
(
FRHICommandListBase& RHICmdList, |
Adds the primitive's static meshes to the scene. | |
| void | AddToScene
(
FScene* Scene, |
Adds the primitive to the scene. | |
| void | AllocateGPUSceneInstances
(
FScene* Scene, |
Allocate/Free slots for instance data in GPU-Scene | |
| void | ApplyWorldOffset
(
FRHICommandListBase& RHICmdList, |
Shifts primitive position and all relevant data by an arbitrary delta. | |
| void | |||
| void | |||
| void | Cache per-primitive reflection captures used for mobile/forward rendering. | ||
| void | ConditionalUpdateUniformBuffer
(
FRHICommandListImmediate& RHICmdList |
||
| void | Mark the runtime virtual textures covered by this primitive as dirty. | ||
| void | |||
| void | GatherLightingAttachmentGroupPrimitives
(
TArray< FPrimitiveSceneInfo*, SceneRenderingAllocator >& OutChildSceneInfos |
Builds an array of all primitive scene info's in this primitive's attachment group. | |
| void | GatherLightingAttachmentGroupPrimitives
(
TArray< const FPrimitiveSceneInfo*, SceneRenderingAllocator >& OutChildSceneInfos |
||
| FBoxSphereBounds | Builds a cumulative bounding box of this primitive and all the primitives in the same attachment group. | ||
| const UPrimitiveComponent * | |||
| const IPrimitiveComponent * | |||
| FString | Return primitive fullname (for debugging only). | ||
| int32 | GetIndex () |
Retrieves the index of the primitive in the scene's primitives array. | |
| const int32 * | Retrieves the address of the primitives index into in the scene's primitives array. | ||
| FInstanceDataBufferHeader | Returns the updated header data in the InstanceDataUpdateTaskInfo without blocking. | ||
| int32 | |||
| int32 | |||
| const FInstanceSceneDataBuffers * | Waits for (potential) instance update to produce the data, to avoid a sync, use GetInstanceDataHeader(). | ||
| int32 | |||
| int32 | |||
| FMeshDrawCommandPrimitiveIdInfo | GetMDCIdInfo () |
||
| uint32 | Size this class uses in bytes | ||
| const FMeshBatch * | GetMeshBatch
(
int8 InLODIndex |
Will output the FMeshBatch associated with the specified LODIndex. | |
| int32 | |||
| int32 | |||
| FString | Return primitive Owner actor name (for debugging only). | ||
| FPersistentPrimitiveIndex | Persistent index of the primitive in the range [0, FScene::GetMaxPersistentPrimitiveIndex() ). | ||
| FPrimitiveVirtualTextureFlags | Get the cached runtime virtual texture flags for this primitive. | ||
| const FPrimitiveSceneInfoData * | GetSceneData () |
Returns the primitive scene data for this proxy. | |
| void | GetStaticMeshesLODRange
(
int8& OutMinLOD, |
Will output the LOD ranges of the static meshes used with this primitive. | |
| bool | |||
| bool | IsIndexValid () |
Simple comparison against the invalid values used before/after scene add/remove. | |
| void | Adds the primitive to the scene's attachment groups. | ||
| void | Set LOD Parent primitive information to the scene. | ||
| void | MarkGPUStateDirty
(
EPrimitiveDirtyState PrimitiveDirtyState |
Marks the primitive UB as needing updated and requests a GPU scene update | |
| void | |||
| bool | Return true if we need to call LazyUpdateForRendering | ||
| bool | Returns whether the primitive needs to call CacheReflectionCaptures. | ||
| bool | |||
| bool | |||
| void | ReallocateGPUSceneInstances
(
FScene* Scene, |
||
| void | Refreshes a primitive's references to raster bins. | ||
| void | Nulls out the cached per-primitive reflection captures. | ||
| void | RemoveFromScene
(
bool bUpdateStaticDrawLists |
Removes the primitive from the scene. | |
| void | Removes the primitive's static meshes from the scene. | ||
| bool | RequestGPUSceneUpdate
(
EPrimitiveDirtyState PrimitiveDirtyState |
Adds a request to update GPU scene representation. | |
| void | Sets a flag to update the primitive's static meshes before it is next rendered. | ||
| bool | Sets a flag to update the primitive's uniform buffer before it is next rendered. | ||
| void | SetNeedsUniformBufferUpdate
(
bool bInNeedsUniformBufferUpdate |
||
| bool | |||
| void | Removes the primitive from the scene's attachment groups. | ||
| void | Clear LOD parent primitive information from the scene. | ||
| void | UpdateComponentLastRenderTime
(
float CurrentWorldTime, |
Helper function for writing out to the last render times to the game thread | |
| void | UpdateIndirectLightingCacheBuffer
(
FRHICommandListBase& RHICmdList |
||
| void | Update the cached runtime virtual texture flags for this primitive. | ||
| int32 | Updates static lighting uniform buffer, returns the number of entries needed for GPUScene | ||
| void | UpdateStaticMeshes
(
FScene* Scene, |
Updates the primitive's static meshes in the scene. | |
| void | UpdateUniformBuffer
(
FRHICommandListImmediate& RHICmdList |
Typedefs
| Name | Description |
|---|---|
| FPrimitiveSceneInfoEvent |