UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GPUFFT::ComplexFFTImage1D 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, FRDGBufferRef PostFilterParameters=nullptr, const bool bScrubNaNs=false)
 

Member Function Documentation

◆ MultiPass()

void GPUFFT::ComplexFFTImage1D::MultiPass ( FRDGBuilder GraphBuilder,
const FGlobalShaderMap ShaderMap,
const FFTDescription FFTDesc,
FRDGTextureSRVRef  SrcTexture,
const FIntRect SrcWindow,
FRDGTextureRef  DstTexture,
FRDGBufferRef  PostFilterParameters = nullptr,
const bool  bScrubNaNs = false 
)
static

One Dimensional Fast Fourier Transform of two signals in a two dimensional buffer. The each scanline of the float4 buffer is interpreted as two complex signals (x+iy and z + iw).

On input a scanline (lenght N) contains 2 interlaced signals float4(r,g,b,a) = {z_n, q_n}. where z_n = r_n + i g_n and q_n = b_n + i a_n

On output a scanline will be N elements long with the following data layout Entries k = [0, N-1] hold float4(Z_k, Q_k) where the array {Z_k} is the transform of the signal {z_n}

Parameters
Context- RHI and ShadersMap
FFTDesc- Defines the scanline direction and count 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 buffer used when ping-ponging between iterations.
bScrubNaNs- A flag to replace NaNs and negative values with zero. This is for use when reading in real data as the first step in two-for-one multipass
Returns
- True on success. Will only fail if the scanline length is not a power of two. Not required to fit in group shared memory.

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: