Experimentation with drainage on proceduraly generated terrain

So i’ve made many, many small tweaks over the last few weeks.
Some highlights:

  • I’ve stopped trees form appearing in the middle of rivers.
  • I did some work on the noise generation that seeds the landscape, tree locations, etc. You probably won’t notice from a single map but in general i think the terrain looks better.
  • I also created a task scheduler so computationally expensive functions don’t hog all the CPU. It doesn’t really make much difference once the terrain is loaded but it is less chunky while loading or adjusting the various sliders.

Known issues:

  • Occasionally a beach is very close to horizontal and you see z-fighting with the surface of the sea.
    I’m not sure what to do about this. Tweaking the camera clipping distance will help but i think it will always happen occasionally.
    I /could/ cheat and hack the terrain generation so there is always extra slope on terrain at the water’s edge. I don’t really like that option…
  • Waves still appear along lee shores. I want to make wave height a function of how far down wind of a shoreline the area of sea is. Also have them break on shores. White water, etc.
  • If you really follow the rivers, occasionally you will catch one taking a noticeable shortcut over a bit of higher ground. It flows up, over a bit of higher ground. This is due to the cheat i do to make the rivers look more curved.
    I /could/ add more code to flatten the ground whenever a river takes one of these shortcuts but i’m not going to bother just now. I might change my mind if i ever actually use these maps for anything.

Other things that are eating my time:

  • I got a new spindle for the CNC machine i’ve been building. I can now mill steel. It is very satisfying to be able to cut steel to any shape i can program.
  • I want to get back to Improve experience of camera control - #19 by Deltakosh . I have some partially complete code based on the camera controls i use in this project so i really should clean them up and submit them to the main project.