Files
UnrealEngine/Engine/Source/Runtime/Renderer/Private/BlueNoise.h
2025-05-18 13:04:45 +08:00

33 lines
1.5 KiB
C

// Copyright Epic Games, Inc. All Rights Reserved.
/*=============================================================================
BlueNoise.h: Resources for Blue-Noise vectors on the GPU.
=============================================================================*/
#pragma once
#include "Math/IntVector.h"
#include "ShaderParameterMacros.h"
BEGIN_SHADER_PARAMETER_STRUCT(FBlueNoiseParameters, RENDERER_API)
SHADER_PARAMETER(FIntVector, Dimensions)
SHADER_PARAMETER(FIntVector, ModuloMasks)
SHADER_PARAMETER_TEXTURE(Texture2D, ScalarTexture)
SHADER_PARAMETER_TEXTURE(Texture2D, Vec2Texture)
END_SHADER_PARAMETER_STRUCT()
BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT(FBlueNoise, RENDERER_API)
SHADER_PARAMETER_STRUCT_INCLUDE(FBlueNoiseParameters, BlueNoise)
END_GLOBAL_SHADER_PARAMETER_STRUCT()
// These GetBlueNoiseXXX functions should only be called from a rendering system, when this system make it possible
// to load the blue noise textures when calling GEngine->LoadBlueNoiseTexture from SceneRendering.cpp.
extern RENDERER_API FBlueNoise GetBlueNoiseGlobalParameters();
extern RENDERER_API FBlueNoiseParameters GetBlueNoiseParameters();
extern RENDERER_API FBlueNoiseParameters GetBlueNoiseDummyParameters();
// This function is for filling up the View blue noise parameters used for materials.
// Sometimes views are created for rendering without GSystemTextures initialised, e.g. HLOD baking, canvas DrawTile.
// So we have to rely on global default GPU resources in this case.
extern RENDERER_API FBlueNoiseParameters GetBlueNoiseParametersForView();