procedural generation
129 subscribers
5.34K photos
1.79K videos
7 files
11.3K links
Created by @r_channels
Download Telegram
Media is too big
VIEW IN TELEGRAM
New song "So Come On" generated by my TuneStar computer program

https://redd.it/12ezihl
@proceduralgeneration
Problems with river formation and erosion/deposition using an Eulerian frame: Is it just a matter of fine-tuning a bunch of constants until I get it right?

I have been experimenting with river formation and erosion using three different approaches, two Eulerian ones and a (pseudo-)Lagrangian one. I am using the two terms slightly incorrectly from the physics point of view, so let me elaborate:

By "(pseudo-)Lagrangian" I mean something like the approach of [RanmanTaru's Water Erosion on Heightmap Terrain](http://ranmantaru.com/blog/2011/10/08/water-erosion-on-heightmap-terrain/). I start with a single raindrop on a random location, and then follow that raindrop downhill calculating sediment erosion and deposition until it disappears (by reaching the sea or the edge of the map or dying at a local minimum and deposing all the sediment it has). Stir and repeat. This works fine and is relatively efficient, but it does not account correctly for the interaction between raindrops dropped at different places on the map: No lake formation, and evaporation is unrealistic.

In the Eulerian approach, I did something like the first approach in Dandrino's "Terrain Erosion Three Ways". The algorithm is a loop of:

1. Precipitation (everywhere on the map using a climate model that gives me a rainfall map).
2. Flow downhill one cell/step according to one of two methods, (a) and (b) below.
3. Erosion/deposition.
4. Evaporation.
5. Back to (1).

I am encountering difficulties particularly on step (2). I have tried two approaches to determine where water will flow to:

(a) Determine flow direction using terrain elevation only. Water will flow downhill regardless of how much water is already present in the downhill direction. In most cases I get decent river formation. However, I have unreasonable amounts of water pooling in local minima until erosion/deposition smooths minima out, which can take a long time. Even after local minima are taken care of, I cannot obtain lakes.

(b) Determine flow direction using terrain elevation + water depth: Water depth in the adjacent location will be taken into account, and water will flow in the direction that has the lowest total water level. This is the more realistic approach, since water will not pool at a single location and it will form lakes where necessary... But I do not really obtain rivers, just huge lakes that slowly flow downhill with very little or no erosion or deposition and little to no sign of proper rivers forming.

Is making (b) work just a matter of fine-tuning a half dozen or more equations and constants, like waterDepthElevationRatio, depositionRate, erosionRate, minSlopeForSedimentCapacity, and so on? Or is there something fundamental I am missing?



----

Edit: I guess my fundamental underlying question is, I cannot find a simulation approach that naturally creates both rivers and lakes. It seems everything I try is only able to create one or the other.

https://redd.it/12fijpd
@proceduralgeneration
Media is too big
VIEW IN TELEGRAM
New song "So Come On" generated by my TuneStar computer program

https://redd.it/12fm6gp
@proceduralgeneration
Media is too big
VIEW IN TELEGRAM
New 80's sounding song generated by my TuneStar program. Not Bad Bunny. Please give improvement feedback if you don't like.

https://redd.it/12frawe
@proceduralgeneration
How to generate random 2D dungeon array? (Javascript/Phaser)

I am trying to generate a 2D dungeon array where char=1 is walls and char=0 is the floor. Im not sure how to implement code that will do this though. Are there any good tutorials on this or sample code I can look at?

(Im using phaser for the second time and im not sure how to do this)

https://redd.it/12fyq05
@proceduralgeneration
Parallel wave function collapse?

I remember reading a blog post that went over parallel wave function collapse, but I can't seem to find it via google. It had something to do with alternating generating of tilesets (you'd generate one corner of a quad at once, so you'd need 4 passes I think? plus some other stuff?)

It might be in this person's blog posts, but I can't seem to find it there https://www.boristhebrave.com/ I do vaguely remember seeing their blog posts around the same time.

Can someone point me in the right direction?

https://redd.it/12ga48z
@proceduralgeneration
This media is not supported in your browser
VIEW IN TELEGRAM
[Flash Warning] Binary Star-System + Heat-Death (designs using cellular-automata)

https://redd.it/12gam92
@proceduralgeneration
Any idea for snoring edges between different biomes in person noise chunks
https://redd.it/12gdq6r
@proceduralgeneration