Godot 3.0 GPU 2D and 3D Simplex Noise

An asset by curly-brace
The page banner background of a mountain and forest
Godot 3.0 GPU 2D and 3D Simplex Noise hero image

Quick Information

0 ratings
Godot 3.0 GPU 2D and 3D Simplex Noise icon image
curly-brace
Godot 3.0 GPU 2D and 3D Simplex Noise

This is an example on how to use Simplex Noise, that is generated on GPU (and that is why it is extremely fast).There are three scenes:First one is 2d example which just shows Sprite with noise texture, generated by 2d noise shader.Second on is 3d example that uses another shader, that has a 3d noise implementation and uses vertex shader to deform simple plane mesh.Third (and main) example shows how to read values from the sprite node (which uses 2d noise shader) and use this data to modify y positions of objects on the scene.

Supported Engine Version
3.0
Version String
1.0
License Version
MIT
Support Level
community
Modified Date
6 years ago
Git URL
Issue URL

Simplex Noise Shaders For Godot Engine 3.0

In test_3d scene there were artifacts in sampled values (but Sprite itself was fine tho), like inverted steps. Fixed this by setting Viewport to 3d mode (!). Now everything works (but not as easy as expected).

Actually i've came with temp solution. To use simplex for your needs, you have to assign viewport's texture first to another Spite and then sample ITS texture for values. So test_3d scene shows how to use simplex to create a field with MultiMeshInstance (that is a bunch of cubes actually, unlike a plane, distorted by vertex shader)

WARNING!!! test_3d scene does not work due to the current bugs with ViewportTexture (i think so). And i have no idea how to sample Sprite node in different way.

2dsimplex.tres - is a 2d simplex shader (canvas_item), i was going to use as a fast simplex generator using a Sprite node and sampling it for different tasks like terrain generation.

vert_simplex.tres - is a 3d simplex (spatial) which uses vertex shader to transform vertexes of the mesh depending on 3d simplex noise function (up is animated using TIME)

README screenshot3 README screenshot1 README screenshot2

This is an example on how to use Simplex Noise, that is generated on GPU (and that is why it is extremely fast).

There are three scenes:

First one is 2d example which just shows Sprite with noise texture, generated by 2d noise shader.

Second on is 3d example that uses another shader, that has a 3d noise implementation and uses vertex shader to deform simple plane mesh.

Third (and main) example shows how to read values from the sprite node (which uses 2d noise shader) and use this data to modify y positions of objects on the scene.

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Godot 3.0 GPU 2D and 3D Simplex Noise icon image
curly-brace
Godot 3.0 GPU 2D and 3D Simplex Noise

This is an example on how to use Simplex Noise, that is generated on GPU (and that is why it is extremely fast).There are three scenes:First one is 2d example which just shows Sprite with noise texture, generated by 2d noise shader.Second on is 3d example that uses another shader, that has a 3d noise implementation and uses vertex shader to deform simple plane mesh.Third (and main) example shows how to read values from the sprite node (which uses 2d noise shader) and use this data to modify y positions of objects on the scene.

Supported Engine Version
3.0
Version String
1.0
License Version
MIT
Support Level
community
Modified Date
6 years ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers