UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GPUFFT::TwoForOneRealFFTImage1D Struct Reference

#include <GPUFastFourierTransform.h>

Static Public Member Functions

static void MultiPass (FRDGBuilder &GraphBuilder, const FGlobalShaderMap *ShaderMap, const FFTDescription &FFTDesc, FRDGTextureSRVRef SrcTexture, const FIntRect &SrcWindow, FRDGTextureRef DstTexture, const FIntRect &DstWindow, const FPreFilter &PreFilter=FPreFilter(TNumericLimits< float >::Max(), TNumericLimits< float >::Lowest(), 0.f), FRDGBufferRef PostFilterParameters=nullptr)
 

Member Function Documentation

◆ MultiPass()

void GPUFFT::TwoForOneRealFFTImage1D::MultiPass ( FRDGBuilder GraphBuilder,
const FGlobalShaderMap ShaderMap,
const FFTDescription FFTDesc,
FRDGTextureSRVRef  SrcTexture,
const FIntRect SrcWindow,
FRDGTextureRef  DstTexture,
const FIntRect DstWindow,
const FPreFilter PreFilter = FPreFilter(TNumericLimits<float>::Max(), TNumericLimits<float>::Lowest(), 0.f),
FRDGBufferRef  PostFilterParameters = nullptr 
)
static

One Dimensional Fast Fourier Transform of four real signals (rgba) in a two dimensional buffer. The each scanline of the float4 buffer is interpreted four distinct real signals.

On input a scanline (lenght N) contains 4 interlaced signals {r_n, g_n, b_n, a_n}. On output a scanline will be N + 2 elements long with the following data layout Entries i = [0, N/2] hold float4(R_i, B_i). Entries i = [N/2+1, N-1] hold float4(G_i, A_i) Entries i = N hold float4(G_N/2, A_N/2) Entry i = N + 1 hold float4(G_0, A_0)

Here R_k, G_k ,B_k, A_k are complex (float2) values representing the transforms of the real signals r,g,b,a

Note: Due to the fact that r,g,b,a are real signals, R_0, B_0, G_0, A_0 are real values. and will equal the sum of the signals , i.e. R_0 = sum(r_i, i=0..N-1).

Note if {x_n} is a real signal of length N, then the transfromed signal has the symmetry X_k = ComplexConjugate(X_{N-k})

Parameters
Context- RHI and ShadersMap
FFTDesc- Defines the scanline direction and power-of-two length and transform type
SrcWindow- Location of the data in the SrcTexture to be transformed. Zero values pad the data to fit the FFTDesc TrasformExtent.
SrcTexture- The two dimensional float4 input buffer to transform
DstBuffer- The buffer to be populated by the result of the transform.
TmpBuffer- A temporary target used in the multi-pass to ping-pong data.
PreFilter- Values use to boost the intensity of any pixels. Default value deactivates prefilter The prefilter is only applied in the forward direction.
Returns
- True on success. Will only fail if the buffer is too large for supported transform method.

Requirements: On a forward transform, the DstBuffer must accommodate Context.SignalLength + 2 in the transform direction. On inverse transform the DstBuffer must accommodate Context.SignalLength in the transform direction. NB: This function does not transition resources. That must be done by the calling scope


The documentation for this struct was generated from the following files: