3D World Generation #2 (Perlin Noise)

preview_player
Показать описание
3D World Generation (Perlin Noise)

This is the second in a series of 3d world generation tutorials, covering topics in procedural terrain generation like 2d perlin noise and simplex noise, and computing fractional brownian motion (fbm).

What's covered:
* What is Perlin Noise?
Cover how gradient noise differs from value noise, what perlin and simplex noise are and how they differ.

* Perlin/Simplex/OpenSimplex Noise
Which should you use?

* What is Fractional Brownian Motion?
How this relates to noise and how it's computed.

* Perlin Noise Terrain Generation
How to modify the previous tutorial's mesh generation code to incorporate the noise generation.

In the future:
This is intended to be part 2 in a series of tutorials on the topic of 3d world generation. I intend to explore the topic more deeply, looking at how to extend our terrain generator to include LOD's, and infinite terrain generation.

Full source code for the project is available, so if you're interested in fiddling with the code, playing around with the parameters or extending the noise functions, feel free.

#proceduralterrain #gamedevelopment
Рекомендации по теме
Комментарии
Автор

I love the from scratch approach, with source code available, but summarized in the video as not to overwhelm the viewer. Great job!

ezequielgarrido
Автор

So nice to see development tutorials from a practitioner that understands the underlying reasons and cares to explain these to the audience. A very refreshing change from the standard webdev "do as I do, but don't ask me why (cos I don't know either)" tut style that dominates much of youtube. Thank you for making this quality content - you're doing a fantastic service for all the aspiring devs out there!

af.tatchell
Автор

Again an awesome video. You cover topics very fast by bringing them perfectly on a simple level with a voice having just the right relaxed tempo to follow and to accept the simplicity. With this video today I implemented my variation of this FBM heightmap, awesome, thanks.

nils
Автор

Practically speaking, perlin noise tende to align features with the x and z axis more than openSimplex noise, so if you dncountrr that and it seems like a problem, you might want to switch. Otherwise theyre nearly indistinguishable

julians.
Автор

thanks for the formula! I tried creating a noise function based on overlapping sins and cos's multiplied by a perlin noise but it didn't really look good and I couldn't for life of me iron out a flat diagonal running the corners. definitely going back and implementing this in my game....

brianstrigel
Автор

Ken Perlin won an Oscar for Perlin Noise.

chaosordeal
Автор

Just discovered this channel and the video was absolutely amazing. Explaination was very nice. When you talked about the Frequency getting doubled with less impact i thought of the Fourier-Series, as it approximates it finer and finer until the endstate is reached. Don't think they are related tho. Will definitely try to implement this into my Minecraft Terrain Generation ( and then add Caves when everything is done). Thx and have a great day.

crynesssruns
Автор

love your tutorials, thank you so much!

chloesun
Автор

I was just looking for something like this. Now to try and use it in Unity.

Chadderbox
Автор

Still, I can't believe what I'm seeing. How did you learn these things, Simon? It's unbelievable! now I can understand how building a map on stronghold game was working :))))

simpleprogramming
Автор

Is there a video explaining how the coloring works?

phule
Автор

You forgot the main reason to use (Open)Simplex instead of Perlin: Perlin has visible grid alignment, which (Open)Simplex avoids. Picking one over the other shouldn't take more time than it's worth, just look at what libs are available and what options they include for noise.

kjpg
Автор

What coding language was used in the code here?(Java, C#, C++, etc.)

sirgaming
Автор

Loving your channel. Do you freelance?

movingshapes
Автор

Git repo in the description only has a license file. No source code.

SketchpunkLabs
Автор

Interesting stuff. How long have you been learning Game Dev for?

indieprogress
Автор

Your demos all look pretty cool and informative, but I've had very little luck getting your github code to work. So far I've downloaded 5 projects (3d world gen 1-4 and l-system simple) and the only one to work without me touching the code is the simple l-system (there I had to adjust the canvas height). The others just show black screens in the browser (chrome). Is it possible you uploaded broken code or incomplete code or code that hasn't been tested on more than 1 browser or tested on environments that might be missing some required plugin? Not sure at this point where to start in terms of making these work.

octaviusvanzandt
Автор

Hi, I follow this c++ and opengl. I see that your normals look way better than mine(I calculate them from heights), how do you calculate them?

DomainDrivenDavid
Автор

Fortunately the patent on 3D Simplex noise for graphics applications expired in 2022 IIRC.

petersmythe
Автор

Can I also make a suggestion. Instead of making a Repo for each lesson, try a single repo with a folders for each lesson as one big collection. Much easier to maintain and easier for the end user to grab it all in one go. Each folder can have its own readme file to give any info in relation to the lesson. If you want an example of what I'm talking about, heres how I organize the code for my tutorial series.

SketchpunkLabs