Fourier Transform and Complex Numbers
The Problem Currently, Geometry Nodes is incredibly powerful for spatial manipulation, but it lacks tools for frequency-domain operations. While artists can hack together "fake" waves using sine/cosine combinations, they cannot perform global frequency analysis or manipulation. This makes tasks like realistic ocean synthesis, advanced signal processing, and certain types of procedural pattern generation (like Gabor noise or complex fractals) computationally expensive or impossible.
The Solution Introduce a native Complex Number socket type and a suite of Fourier Transform (FFT) nodes capable of 1D, 2D, and maybe 3D operations.
- New Data Type & Math Nodes
- To support FFT, we first need the underlying math.Complex Number Socket: A new socket type (represented as a + bi). Internally, this is a 2D vector, but with specific math rules.
-
Complex Math Node: Operations including:
- Add/Subtract/Multiply/Divide (using complex algebraic rules).
- Conjugate: Flips the imaginary sign.
- Magnitude & Phase: Essential for converting frequency data back into visible heightmaps or displacements.
- Euler’s Form: Convert from Cartesian (a + bi) to Polar (re^{i\theta}).
- The Fourier Transform Nodes
These nodes would allow the conversion of spatial data (like a grid’s Z-position) into a frequency spectrum. Also integrated for grid nodes.
1 Comment
Gabor noise is included with blender, with the Gabor Texture node.