UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GPUFFT::ConvolutionWithTextureImage1D 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 TransformedKernel, FRDGTextureRef DstTexture)
 

Member Function Documentation

◆ MultiPass()

void GPUFFT::ConvolutionWithTextureImage1D::MultiPass ( FRDGBuilder GraphBuilder,
const FGlobalShaderMap ShaderMap,
const FFTDescription FFTDesc,
FRDGTextureSRVRef  SrcTexture,
const FIntRect SrcWindow,
FRDGTextureRef  TransformedKernel,
FRDGTextureRef  DstTexture 
)
static

One Dimensional convolution against a pre-convolved texture: does two complex signals at once.

The each scanline of the float4 buffer is interpreted as two complex signals (x+iy and z + iw).

---------------—Breakdown of the convolution---------------------------------— On input: Each scanline (length N) of the SrcTexture contains 2 interlaced signals float4(a,b,c,d) = {z_n, q_n} where z_n = a_n + i b_n and q_n = c_n + i d_n

       Each scanline (length N) of the TransformedKernel contains 2 interlaced, pre-transformed
       signals  float4( TK1, TK2)

This function transforms the Src scanline to give two interlaced frequency signals float4(Z_k, Q_k)

The convolution is affected as a multiplication in frequency space: float4( ComplexMult(Z_k, TK1_k), ComplexMult(Q_k, TK2_k))

And inverse transform is applied to bring the result back to the input space.

Parameters
Context- RHI and ShadersMap
FFTDesc- Defines the scanline direction and count and transform type
TransformedKernel- A texture that contains a transformed convolution kernel.
SrcTexture- The two dimensional float4 input buffer to transform
SrcWindow- Location of the data in the SrcTexture to be transformed. Zero values pad the data to fit the FFTDesc TrasformExtent.
DstBuffer- The buffer to be populated by the result of the transform.
TmpBuffer- A temporary buffer used in the multi-pass formulation.
Returns
- True on success. Will only fail if the buffer is too large for supported transform method

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: