UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
InstanceCullingOcclusionQuery.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "RenderGraphFwd.h"
8#include "Containers/Array.h"
10
11class FRDGBuilder;
12class FGPUScene;
13class FViewInfo;
16
21{
22public:
23
28 uint32 Render(FRDGBuilder& GraphBuilder, FGPUScene& GPUScene, FViewInfo& View);
29
33 void RenderDebug(FRDGBuilder& GraphBuilder, FGPUScene& GPUScene, const FViewInfo& View, const FIntRect& ViewRect, FRDGTextureRef SceneColor, FRDGTextureRef SceneDepth);
34
41
46 void EndFrame(FRDGBuilder& GraphBuilder);
47
54
55 /*
56 * Format that should be used to create views for InstanceOcclusionQueryBuffer.
57 * May be R8_UINT or R32_UINT, basd on current hardware capability.
58 */
60
61 /*
62 * Returns true if per-instance occlusion queries can be rendered for the view.
63 */
64 bool IsCompatibleWithView(const FViewInfo& View);
65
66private:
67
73 uint32 FindOrAddViewSlot(const FViewInfo& View);
74
75 FRDGBufferRef CurrentInstanceOcclusionQueryBuffer = {};
76
77 static constexpr uint32 MaxViews = 8; // Visibility mask is stored as uint8
78 TArray<uint32> CurrentRenderedViewIDs;
79
80 uint32 AllocatedNumInstances = 0;
81};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EPixelFormat
Definition PixelFormat.h:16
@ PF_Unknown
Definition PixelFormat.h:17
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GPUScene.h:217
Definition InstanceCullingOcclusionQuery.h:21
EPixelFormat InstanceOcclusionQueryBufferFormat
Definition InstanceCullingOcclusionQuery.h:59
void RenderDebug(FRDGBuilder &GraphBuilder, FGPUScene &GPUScene, const FViewInfo &View, const FIntRect &ViewRect, FRDGTextureRef SceneColor, FRDGTextureRef SceneDepth)
Definition InstanceCullingOcclusionQuery.cpp:915
TRefCountPtr< FRDGPooledBuffer > InstanceOcclusionQueryBuffer
Definition InstanceCullingOcclusionQuery.h:53
bool IsCompatibleWithView(const FViewInfo &View)
Definition InstanceCullingOcclusionQuery.cpp:808
void MarkInstancesVisible(FRDGBuilder &GraphBuilder, TConstArrayView< FGPUSceneInstanceRange > Ranges)
Definition InstanceCullingOcclusionQuery.cpp:754
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:571
Definition SceneRendering.h:1132
Definition Array.h:670
Definition RefCounting.h:454
Definition GPUScene.h:204
Definition RendererInterface.h:494