UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RayTracingGeometryManagerInterface.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
#pragma once
3
4
#include "
Containers/ArrayView.h
"
5
6
#include "
RHI.h
"
7
#include "
RHIResources.h
"
8
#include "
RHICommandList.h
"
9
10
#if RHI_RAYTRACING
11
12
class
FRayTracingGeometry
;
13
class
FRHIComputeCommandList
;
14
enum class
EAccelerationStructureBuildMode
;
15
enum class
ERTAccelerationStructureBuildPriority
:
uint8
;
16
17
namespace
RayTracing
18
{
19
using
FGeometryGroupHandle
=
int32
;
20
using
GeometryGroupHandle
UE_DEPRECATED
(5.6,
"Use FGeometryGroupHandle instead."
) =
FGeometryGroupHandle
;
21
}
22
23
class
IRayTracingGeometryManager
24
{
25
public
:
26
27
using
FBuildRequestIndex
=
int32
;
28
using
BuildRequestIndex
UE_DEPRECATED
(5.6,
"Use FBuildRequestIndex instead."
) =
FBuildRequestIndex
;
29
30
using
FGeometryHandle
=
int32
;
31
using
RayTracingGeometryHandle
UE_DEPRECATED
(5.6,
"Use FGeometryHandle instead."
) =
FGeometryHandle
;
32
33
virtual
~IRayTracingGeometryManager
() =
default
;
34
35
virtual
FBuildRequestIndex
RequestBuildAccelerationStructure
(
FRayTracingGeometry
*
InGeometry
,
ERTAccelerationStructureBuildPriority
InPriority
,
EAccelerationStructureBuildMode
InBuildMode
) = 0;
36
37
FBuildRequestIndex
RequestBuildAccelerationStructure
(
FRayTracingGeometry
*
InGeometry
,
ERTAccelerationStructureBuildPriority
InPriority
)
38
{
39
return
RequestBuildAccelerationStructure
(
InGeometry
,
InPriority
,
EAccelerationStructureBuildMode::Build
);
40
}
41
42
virtual
void
RemoveBuildRequest
(
FBuildRequestIndex
InRequestIndex) = 0;
43
virtual
void
BoostPriority(
FBuildRequestIndex
InRequestIndex,
float
InBoostValue
) = 0;
44
virtual
void
ForceBuildIfPending
(
FRHIComputeCommandList
&
InCmdList
,
const
TArrayView<const FRayTracingGeometry*>
InGeometries
) = 0;
45
virtual
void
ProcessBuildRequests
(
FRHIComputeCommandList
&
InCmdList
,
bool
bInBuildAll
=
false
) = 0;
46
47
virtual
FGeometryHandle
RegisterRayTracingGeometry
(
FRayTracingGeometry
*
InGeometry
) = 0;
48
virtual
void
ReleaseRayTracingGeometryHandle
(
FGeometryHandle
Handle
) = 0;
49
50
/*
51
* RayTracing::FGeometryGroupHandle is used to group multiple FRayTracingGeometry that are associated with the same asset.
52
* For example, the FRayTracingGeometry of all the LODs of UStaticMesh should use the same RayTracing::FGeometryGroupHandle.
53
* This grouping is useful to keep track which proxies need to be invalidated when a FRayTracingGeometry is built or made resident.
54
*/
55
virtual
RayTracing::FGeometryGroupHandle
RegisterRayTracingGeometryGroup
(
uint32
NumLODs,
uint32
CurrentFirstLODIdx = 0) = 0;
56
virtual
void
ReleaseRayTracingGeometryGroup
(
RayTracing::FGeometryGroupHandle
Handle
) = 0;
57
58
virtual
void
RequestUpdateCachedRenderState(
RayTracing::FGeometryGroupHandle
InRayTracingGeometryGroupHandle
) = 0;
59
60
virtual
void
RefreshRegisteredGeometry
(
FGeometryHandle
Handle
) = 0;
61
62
virtual
void
PreRender() = 0;
63
virtual
void
Tick
(
FRHICommandList
& RHICmdList) = 0;
64
65
virtual
bool
IsGeometryVisible
(
FGeometryHandle
GeometryHandle
)
const
= 0;
66
virtual
void
AddVisibleGeometry
(
FGeometryHandle
GeometryHandle
) = 0;
67
};
68
69
extern
RENDERCORE_API
IRayTracingGeometryManager
*
GRayTracingGeometryManager
;
70
71
#endif
// RHI_RAYTRACING
ArrayView.h
UE_DEPRECATED
#define UE_DEPRECATED(Version, Message)
Definition
CoreMiscDefines.h:302
int32
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition
Platform.h:1125
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
EUpdateClockSource::Tick
@ Tick
RHICommandList.h
EAccelerationStructureBuildMode
EAccelerationStructureBuildMode
Definition
RHIContext.h:579
EAccelerationStructureBuildMode::Build
@ Build
RHIResources.h
RHI.h
ERTAccelerationStructureBuildPriority
ERTAccelerationStructureBuildPriority
Definition
RayTracingGeometry.h:21
ESerializePropertyType::Handle
@ Handle
uint8
uint8_t uint8
Definition
binka_ue_file_header.h:8
uint32
uint32_t uint32
Definition
binka_ue_file_header.h:6
FRHICommandList
Definition
RHICommandList.h:3819
FRHIComputeCommandList
Definition
RHICommandList.h:2735
FRayTracingGeometry
Definition
RayTracingGeometry.h:31
TArrayView
Definition
ArrayView.h:139
RayTracing
Definition
SceneManagement.h:73
RayTracing::FGeometryGroupHandle
int32 FGeometryGroupHandle
Definition
SceneManagement.h:74
Engine
Source
Runtime
RenderCore
Public
RayTracingGeometryManagerInterface.h
Generated by
1.9.8