![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#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) |
|
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})
| 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. |
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