26 lines
1.0 KiB
C
26 lines
1.0 KiB
C
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
Functionality for capturing the scene into reflection capture cubemaps, and prefiltering
|
|
=============================================================================*/
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Math/SHMath.h"
|
|
#include "RHI.h"
|
|
#include "GlobalShader.h"
|
|
#include "RenderGraphDefinitions.h"
|
|
|
|
extern void ComputeDiffuseIrradiance(FRDGBuilder& GraphBuilder, FGlobalShaderMap* ShaderMap, FRDGTexture* LightingSource, FSHVectorRGB3* OutIrradianceEnvironmentMap);
|
|
|
|
FMatrix CalcCubeFaceViewRotationMatrix(ECubeFace Face);
|
|
FMatrix GetCubeProjectionMatrix(float HalfFovDeg, float CubeMapSize, float NearPlane);
|
|
|
|
inline uint32 GetNumMips(uint32 MipSize)
|
|
{
|
|
return FMath::CeilLogTwo(MipSize) + 1;
|
|
}
|
|
|
|
void ConvolveCubeMap(FRDGBuilder& GraphBuilder, FGlobalShaderMap* ShaderMap, uint32 CubeMipStart, uint32 CubeMipEnd, uint32 FaceStart, uint32 FaceCount, FRDGTexture* RDGSrcRenderTarget, FRDGTexture* RDGDstRenderTarget);
|