UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneTextureReductions.h File Reference
#include "PixelFormat.h"
#include "RenderGraphFwd.h"
#include "RHIFwd.h"
#include "Math/Vector4.h"

Go to the source code of this file.

Classes

struct  FBuildHZBAsyncComputeParams
 
struct  FExtraParameters
 

Namespaces

namespace  Froxel
 

Functions

void BuildHZB (FRDGBuilder &GraphBuilder, FRDGTextureRef SceneDepth, FRDGTextureRef VisBufferTexture, const FIntRect ViewRect, ERHIFeatureLevel::Type FeatureLevel, EShaderPlatform ShaderPlatform, const TCHAR *ClosestHZBName, FRDGTextureRef *OutClosestHZBTexture, const TCHAR *FurthestHZBName, FRDGTextureRef *OutFurthestHZBTexture, EPixelFormat Format=BuildHZBDefaultPixelFormat, const FBuildHZBAsyncComputeParams *AsyncComputeParams=nullptr, const Froxel::FViewData *OutFroxelData=nullptr, FExtraParameters ExtraParameters={})
 
void BuildHZBFurthest (FRDGBuilder &GraphBuilder, FRDGTextureRef SceneDepth, FRDGTextureRef VisBufferTexture, const FIntRect ViewRect, ERHIFeatureLevel::Type FeatureLevel, EShaderPlatform ShaderPlatform, const TCHAR *FurthestHZBName, FRDGTextureRef *OutFurthestHZBTexture, EPixelFormat Format=BuildHZBDefaultPixelFormat, const FBuildHZBAsyncComputeParams *AsyncComputeParams=nullptr, FExtraParameters ExtraParameters={})
 

Function Documentation

◆ BuildHZB()

void BuildHZB ( FRDGBuilder GraphBuilder,
FRDGTextureRef  SceneDepth,
FRDGTextureRef  VisBufferTexture,
const FIntRect  ViewRect,
ERHIFeatureLevel::Type  FeatureLevel,
EShaderPlatform  ShaderPlatform,
const TCHAR ClosestHZBName,
FRDGTextureRef OutClosestHZBTexture,
const TCHAR FurthestHZBName,
FRDGTextureRef OutFurthestHZBTexture,
EPixelFormat  Format = BuildHZBDefaultPixelFormat,
const FBuildHZBAsyncComputeParams AsyncComputeParams = nullptr,
const Froxel::FViewData OutFroxelData = nullptr,
FExtraParameters  ExtraParameters = {} 
)

Closest and furthest HZB are intentionally in separate render target, because majority of the case you only one or the other. Keeping them separate avoid doubling the size in cache for this cases, to avoid performance regression.

◆ BuildHZBFurthest()

void BuildHZBFurthest ( FRDGBuilder GraphBuilder,
FRDGTextureRef  SceneDepth,
FRDGTextureRef  VisBufferTexture,
const FIntRect  ViewRect,
ERHIFeatureLevel::Type  FeatureLevel,
EShaderPlatform  ShaderPlatform,
const TCHAR FurthestHZBName,
FRDGTextureRef OutFurthestHZBTexture,
EPixelFormat  Format = BuildHZBDefaultPixelFormat,
const FBuildHZBAsyncComputeParams AsyncComputeParams = nullptr,
FExtraParameters  ExtraParameters = {} 
)