procedural generation
128 subscribers
5.38K photos
1.8K videos
7 files
11.4K links
Created by @r_channels
Download Telegram
remember his name, but it was a great tutorial on generating tiles, and calculating the height map using perlin noise.

however, the fact that it used octaves made me think even further. actually, I don't think that people are really thinking of noise octaves in the right manner. from my perspective, what people call octaves in noise generation, I prefer to thing of as timbre.

timbre is a thing in music that gives each instrument its unique noise wave that allows you to hear them as a different musical instrument. that's why oboes, and clarinets have different sounds to them. However, the way that those sound waves differ from one another, even though they're playing the same notes is how the overtones (which I guess you could call octaves in a manner of speaking) resonate on top of the pitch which is mostly heard. I guess the wave with the most amplitude.

anyway, this entire thing where the guy starts explaining his tutorial gets me on my war path with terrain generation. mainly, my idea is to now create an entire earth sized planet game. The tiles are generated with the radius of the earth's distance away from the origin of the 3d space, and the gravity falls towards that point in space for your character. using the optimization tricks, you can fully actualized that ideal world creation to a T. There's just one problem.

Perlin noise sucks. Perlin noise sucks in genral if it's used by itself, and it also sucks when you put "octaves," on top of it. you can polish a turd, but a turd is still a turd. Anyway, the fact of the matter is, I wanted erosion. I wanted fast erosion. I wanted erosion that didn't crap on performance, and I wanted erosion that also looked amazing.

That's when I discovered runevision's erosion technique. All of a sudden, I was knocking on the door to something incredible. Runevision's erosion technique really gave me inside on some ideas for how to generate mountains in a way that wasn't just fast, but really good to look at. The mountains look great, the ideal erosion technique was finalized right?

well yes, and no.

to give credit where credit is due, runevision's erosion technique goes far and beyond anything that really was able to create erosion to a level that really started to express real live erosion.

At the same time it was lacking something that I couldn't overlook. While it was able to create the perlin mountains that we had before, it couldn't create mountains that felt like they had real life structure to them. So I started going a little bit too deep into this. The problem. The real problem to solve. part of the problem is rivers. drainage. the whole shibang, but I needed something to start out with.

https://preview.redd.it/8k8n7j4bncbh1.png?width=612&format=png&auto=webp&s=f4f591c7bb8a1851ab0ae02e5bb6a954ce16e676

what we're looking at here is a map of the canadian rockies. My idea was to start studying them to try and find patterns in them that gave me a little bit more insight into what is going on.

a little bit of an aside, I tried creating a world generator before this that actually introduced me to the concept of voronoi noise. The generator stopped working after a while, and I couldn't get the faces of the voronoi noise to render, so I gave up on that project.

However, because I had an idea of voronoi noise, and I started looking top down on this portion of mountains I started seeing the pattern.

https://preview.redd.it/pe41jsl4ocbh1.png?width=460&format=png&auto=webp&s=a67ceec26681e3593d6c08b70f1a3ad82a37b1df

in red is something called the rocky mountain trench. It's a geological phenomenon created by the suturing of 2 landmasses together. This crack that is highlighted in the picture is probably going to be something that eventually helps split the next super continent apart. right now it's just lifting up from the movement of the north american plate.

(While I understand that it was also at one point another slip fault where the other plate was moving north, it definitely has terrain there that stopped moving to the north while the north
american plate moved west.)

anyway, back to my point. as you can see, every ridge is lined up with this trench, or at least has some kind of deformation that has to do with this trench. This started making me look at all of the other trenches in the picture.

https://preview.redd.it/c8obxz8bqcbh1.png?width=609&format=png&auto=webp&s=8a7cd195eca288ed47eb4f489eb085ae35da8432

if you can't see it yet, I'm going to show it to you in the next picture. but what I started to notice was that all of the mountains could be divided up into cells.

https://preview.redd.it/2l3eb54qrcbh1.png?width=614&format=png&auto=webp&s=a8f5e3e562776a26cc8111e58724738d0947b1e6

So while I was able to see the cells, I also thought of a pretty simple solution to trying to see if something like this would work.

step 1: calculate voronoi cells on the macro level of the formation of mountains.


step 2: randomly combine the voronoi cells that are aligned perpendicular to the direction the plate underneath is moving.


step 3: calculate a gradient from black at the edges of the newly combined cells, to white in the middle of the newly combined cells.


step 4: add perlin noise inside of each cell so that the perlin noise is just a bit of timbre on top of the voronoi gradient.

step 5: add runevision's erosion as even more of some timbre in order to generate the best looking mountains.

and while this worked, it wasn't perfect. or rather, in the real world, there are mountains that look exactly like what I just said, however, there's something that doesn't look exactly like what I just said.

the picture above does it even more service if you were to look up close at the mountains themselves. there's something that cuts into the mountains that can't be replicated by runevision's erosion alone. Something that was carved out of those mountains starting around 250 thousand years ago. What carved that out?

Glaciers

When I had started working on this, I had started to think that there's going to be a lot of different types of erosion that goes into the concept.

this all culminated in the idea: use the same method you used to increase the height of the mountains, but this time use the method to decrease the height of the mountains.

step 1: inside the larger cells of voronoi noise, create new voronoi cells.

step 2: calculate which cells of voronoi noise has the highest height

step 3: combine all of the cells linearly towards the edge of the cell while not combining the highest cell.

step 4: cut out the glacial valleys from the mountain to the edges of the large cells by inverting the gradient by using black on the inside of the cells, and white on the outside of the cells.

add this layer as a mask on top of the original height map. and you definitely have a lot of things cut out.

https://preview.redd.it/y1xe9zuevcbh1.png?width=297&format=png&auto=webp&s=632aec713eed3193d217a77d3c150adbe4a6e220

as of right now, this is what I was able to generate, but it definitely has a lot of issues with it.

While it does give a lot of uniquely great glacial erosion for it cutting into the landscape, I was not able to figure out why it would cut into the top of the mountain, for some of the parts, it has something like bowls that are a bit difficult to look at, and another problem is that the glacial mask raises the height towards the lower part because of the gradient continuing on all edges of the smaller cells of the voronoi noise.

as you can see there are a lot of green pixels inside of the brown areas of the cells, and that's partly due to the erosion filter from runevision's being applied a little bit too strongly here, but at the same time, part of me also thinks that some things like that actually do happen. I'm just unsure if I'm okay with letting that occur.

one thing that helps a lot with these are actually the cell deformation. random cell deformation actually helps a lot with the valleys being curved while also not being so curved that they lose their alignment. while I did make the chance of it a percent chance of the large
cells merging on the y axis, there are some caveats with how you could calculate the actual direction you want it to deform.

anyway. while I have an artistic mind, I'm not without my faults. All that I will say is that my project continues today without stop. I'm just going to keep working on it until I die. but for all of you out there seeing this or reading this, I hope that you create something better, and can put me in my place someday.

https://redd.it/1unv7a5
@proceduralgeneration
This media is not supported in your browser
VIEW IN TELEGRAM
Stochastic Geomorphological Transport for Terrain Erosion Simulation [Paper + Code]

https://redd.it/1uo5wze
@proceduralgeneration
What is a good Pipeline for a realistic Worldgen? Im not happy with mine right now and since im wether an expert nor have had any feedback on my current progress, what do you think of this? Is there a proper way to go about things?

The Goal is for a realistic World mostly in the form of a continent or big Island/s.



1. World Seed + Settings
2. Plate Graph / Macro Regions
3. Plate Motion + Boundary Classification
4. Uplift / Subsidence / Fault Maps
5. Base Heightmap:
\- continents
\- ocean basins
\- shelves
\- mountain chains
\- rifts
\- basins

6. Rock / Soil / Erodibility Map
7. First Climate Pass:
\- temperature
\- precipitation
\- wind
\- rain shadow
\- evaporation
\- snowline

8. Initial Hydrology:
\- depression handling
\- flow direction
\- flow accumulation
\- basins
\- first river candidates
\- lake candidates

9. Erosion Loop:
repeat 2–8 times:
flow accumulation
fluvial incision
sediment transport
deposition
thermal erosion
optional glacial erosion

10. Recalculate Final Hydrology:
\- rivers
\- lakes
\- wetlands
\- deltas
\- waterfalls/rapids
\- floodplains

11. Detail Terrain:
\- ridge detail
\- ravines
\- local noise
\- cliffs
\- river meanders
\- beaches
\- scree
\- caves optional

12. Biomes:
\- temperature
\- precipitation
\- height
\- soil
\- drainage
\- distance to coast
\- river/lake proximity

13. Gameplay Layer:
\- resources
\- settlement candidates
\- road passes
\- river ports
\- trade chokepoints
\- danger/civilization score
\- faction territories

https://redd.it/1uo6v7d
@proceduralgeneration
This media is not supported in your browser
VIEW IN TELEGRAM
A 3D Earth generated entirely from open datasets - terrain from elevation, lights from population, no satellite imagery

https://redd.it/1uokba0
@proceduralgeneration