Whats the standard way to create a 3D mesh from a noise texture?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Oian


  1. I have a simple MeshInstance3D in the shape of a plane that has been subdivided a bunch of times, so i can displace it later:

  2. I have a NoiseTexture that represents the heightmap of the terrain i want to create:

  3. So now, what is the simplest / easiest way of applying the heightmap to my plane to make it deform? So basically i want to make something like this:

There are a few tutorials on procedural terrain generation out there but most of them either focus on 2D or use stuff from Godot 3.x and the ones that dont fall into those categories seem way too complicated for this (pretty much code only). Like, there has to be an easy way right? I can imagine just dropping the noise texture in some resource input field of the plane mesh in the editor, but that doesnt seem to be the case here.

Anyway, before i follow one of those complicated ways, i just wanted to make sure. Is there an easy way to displace a mesh inside godot 4 with a noise texture?


:bust_in_silhouette: Reply From: Wakatta

Sure with a Shader
Like the very first example in the docs

I thought about using shaders, but how would i add collisions?

Oian | 2023-03-09 09:06

Creating a 2D array of heights is the most efficient way.
The next option you have is to use SurfaceTool to deform your mesh directly

Wakatta | 2023-03-09 09:29