Noise Texture Generator: Perlin, Worley, Godot .tres
Pick a noise type, tune frequency, octaves and seed, and download a seamless noise texture as a PNG for shaders, dissolve effects, clouds or terrain. You also get a Godot 4 NoiseTexture2D resource with the closest FastNoiseLite settings, so you can keep tweaking the noise inside the editor. Everything runs in your browser.
How to use it
- Choose a noise type: Value, Perlin, Fractal Perlin (fBm), Ridged or Worley (cellular), and press Next.
- Set Frequency, and for Fractal Perlin or Ridged also Octaves, Lacunarity and Gain. Change the Seed or press New seed for a different pattern, and keep Seamless ticked for a tiling texture.
- Pick a size and Grayscale or Two colors, then press Generate noise.
- Check the 2x2 tiled preview, then press Download PNG or Download Godot .tres.
What each noise setting does
Frequency here is how many noise features fit across the texture: 4 gives about four blobs or cells from edge to edge, 16 gives fine grain. Godot's FastNoiseLite measures frequency per pixel instead, so the .tres uses this number divided by the texture width (4 across 256 pixels becomes frequency = 0.015625).
Octaves stack copies of the noise at finer and finer scales. Lacunarity is how much the frequency is multiplied for each octave (2 doubles it) and Gain is how much weaker each finer octave is (0.5 halves it). Godot's defaults are 5 octaves, lacunarity 2.0 and gain 0.5, a good starting point for clouds and terrain. Fewer octaves look smoother; a higher gain looks rougher.
Value noise blends random numbers on a grid and looks slightly blocky. Perlin blends random gradients and looks smoother. Ridged folds fractal Perlin so the zero crossings become sharp crests, good for mountain ridges, marble and cracks. Worley, also called cellular noise, is the distance to the nearest random point, which draws cells, scales and caustics.
Using the noise texture in Godot 4
The PNG works anywhere: drop it in your project and assign it to a material or a shader uniform. In a shader, declare it as uniform sampler2D noise_tex : repeat_enable; so UVs outside 0 to 1 keep tiling, and read one channel, for example texture(noise_tex, UV).r, for masks and dissolve thresholds.
The .tres is a NoiseTexture2D resource with a FastNoiseLite noise. Godot generates the pixels itself when the resource loads, so you can change noise_type, frequency, fractal_octaves, seed and the rest in the Inspector and see the result live. Noise types map to FastNoiseLite as TYPE_VALUE, TYPE_PERLIN and TYPE_CELLULAR, with fractal_type set to FRACTAL_FBM for Fractal Perlin, FRACTAL_RIDGED for Ridged and FRACTAL_NONE for the rest.
FastNoiseLite uses its own hashing, so Godot's texture has the same kind and scale of noise as your PNG but not identical pixels. Godot's docs note that its seamless option blends the edges and can lower the contrast; raise seamless_blend_skirt if a seam still shows.
Frequently asked questions
How do I make a seamless noise texture?
What is the difference between Perlin noise and fractal Perlin noise?
Can I use the .tres file in Godot 3?
Why does Godot show a different pattern than the PNG?
Which size should a noise texture be?
More free game dev tools
- Seamless Texture Generator: Make your own texture tileable for free, or generate a seamless one with AI.
- Normal Map Generator: Turn a sprite or texture into a normal map and preview the lighting live.
- Godot Shader Generator: Pick a 2D effect, tune its uniforms with a live preview and download a Godot 4 .gdshader.