3D World Generation: #4 (Planetary LOD): Generating Procedural Planets with Level-of-Detail!

preview_player
Показать описание
We tackle procedural worlds and level-of-detail in this project with a simple, easy to implement approach.

This is the 4th in a series of 3D world generation tutorials. In the previous tutorial we covered a quadtree implementation and infinite procedural terrain. We'll build on that, extending the terrain generator into a full planet scale LOD system.

There are numerous approaches you could take to this, I opted for a simple approach that works well and can serve as a jumping off point for your understanding of how to make procedural worlds in your own projects.

Full source code for the project is available, so if you're interested in fiddling with the code, screwing around with it, or improving it.

Clip Credits:
Рекомендации по теме
Комментарии
Автор

U are the most underrated coding YouTuber. Most of the biggest game dev channels are not even close to the amount of detail that your videos have. You actually show HOW you did it instead of most people showing what happened WHEN they did it. I really appreciate how much you go into detail on everything so that I can understand what is going on instead of just accepting it works. Thank you for everything, i watch pretty much all of your videos, keep doing what your doing!

photonpotato
Автор

I am liking how concise and simple these videos are. The concepts, such as meshes and 3-D translations, can be daunting, but whenever, say, I want to try and convey something that has a daunting level of complexity in it, I have a tendency to feel I need to go very thoroughly into these in order to make it simpler, when really that is the viewer's responsibility and doing this just makes for a heavier, piece-meal experience for everyone.

Instead, your explanation leaves these things where they belong, and I can tell that having a concise guide lends for a better baseline, since if it's too verbose, I am not going to absorb it. Your videos are short, and therefore something I feel can fit in my pocket, per-se, and then I can extrapolate what is necessary down the road

Oxxyjoe
Автор

This is incredibly useful, thank you so much for sharing!

forjaw
Автор

Great series, Simon. I find procedural generation very interesting, especially when your videos are so well put-together :).
Maybe after this series you could take a look at generating maps with overlapping terrain, using marching cubes or dual contouring, so that you can for example make caves.

nobo_dev
Автор

Nice! Best vid yet. Subs are jumping too. Wish i could keep up but man it's hard to find time.

ChrisTharpArt
Автор

I still don't understand how you have less subs than me. You legitimately make content that people find useful, and I just make half baked games.

Love this series.

Chadderbox
Автор

Very cool :) i did almost the same thing for a project of mine, i wanted to make an entire universe and then got stuck in calculations for a bit: say i am on the planet on one end of the universe but i also want to make the other planets move on the other side of the universe (move the entire thing) so i figured it would be impossible to run calculations all the time so i came up with a consept of global time and pre-deterministic universe. So i can basically set time and i know the locations. No need to calculate everything on every game tick just calculate surroundings based on time.

Now in pre deterministic universe i wanted interactions: say spawn a huge comet that collides with a planet. Now the entire future is different so i made consept of events in time that are included in calculation of any given time if they were in past and re-calculated to a "checkpoint" if you change the past to have less calculations of past running all the time :)

Hope you had a good read and inspiration here :) :)

Rssks
Автор

holy mother of god, this is awesome, keep it up!

austinknowles
Автор

Hey Simon! Fantastic video, thank you so much for sharing! Can I ask a stupid question, which of the repositories on your Github is this particular project?

billymalmstrom
Автор

Hi Simon, what a great tutorial, thanks a lot! I have a question regarding the problem of cracks at adjacent nodes of different detail depths. It seems that you do not split adjacent triangles at node boundaries to match the chunks of higher resolution. How do you avoid having gaps in your mesh at locations where two smaller triangles touch one side of a larger triangle? Do you use skirts, or do you ignore the gaps since they are far away from the camera?

norbertgrunwald
Автор

How do you add the water? Is there just a fixed height for sea-level?

And man I had so many issues implementing a quadtree for this - like the height gaps between face edges (as they are separate quadtrees) - in the end I just fixed the edges to a specific LOD / quadtree division so they are always equal along the edge.

jRsqILVOY
Автор

Couple of questions...I downloaded the ProceduralTerrain_Part4 and ran the index.html, but only get a black web page. How do I get it running to see what you see and 2. Did you incorp javascript in unreal engine to get this working?

rookie
Автор

Hi, awsemoe video!
I was wandering, how do you manage to update the quad trees now tht the player can move in 3d space, do you check if the distance between a quad and the player surpasses a certain treshold?
It seems pretty expensive to do on every frame.
Again, awesome video.

mauroabidalcarrer
Автор

You use planeGeometry or BoxGeometry to make the sphere?

diegomacias
Автор

would you consider doing a tutorial of this same 3d generation for Java or Unity?

innerrage
Автор

could you implement level steaming on these planets? so that you could make the planet have a high poly count? I think I'm asking correctly

lifelife
Автор

Is it just me, or does the source code on github only have a License file? 🤔

cedericprivat
Автор

What are the distance ratios for each level? I have no idea how to calculate the best distance values for each LOD level between minimum and maximum distances. How do you calculate the distance between the camera and the meshes?

Автор

could this system theoretically work well with the Directional Gravity plugin? I'm trying to find the best way to procedurally make a planet that multiple players can fly to, land on and walk around. Any tips or leads would be greatly appreciated. 🙂

Grimsikk
Автор

I'm a web developer. and admire the things you do. sell me a course please!

geelemo