Noise vertex displacement

Basic vertex displacement shader that uses an OpenSimplexNoise to randomly displace vertices on a plane.

Instructions

  1. Add a new MeshInstance and make it a Plane mesh in the Inspector.
  2. Subdivide the plane by setting Subdivide width and Subdivide depth to 32.
  3. Add a new NoiseTexture to the Displacement shader parameter and add a new OpenSimplexNoise to Noise.
  4. Edit the height with Height Scale.
Shader code
shader_type spatial;

uniform float height_scale = 0.5;
uniform sampler2D displacement;

varying vec2 tex_position;

void vertex() {
  tex_position = VERTEX.xz / 2.0 + 0.5;
  float height = texture(displacement, tex_position).x;
  VERTEX.y += height * height_scale;
}
Tags
displacement, noise, openSimplexNoise, vertex
The shader code and all code snippets in this post are under CC0 license and can be used freely without the author's permission. Images and videos, and assets depicted in those, do not fall under this license. For more info, see our License terms.

More from godotshaders

Pixelate

Fireworks

Realistic Water

Related shaders

Vertex Displacement/Height Material

global vertex snapping with 3dresolution scaling

PSX Shader with Vertex Colors and Corruption Slider

Subscribe
Notify of
guest

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
SamWise
3 years ago

This help a lot thanks 🙂 also… do you know how to apply color/texture to this?