- Home /
How do I change terrain generation settings smoothly?
I have a project where I use a noise map to draw terrain around the player using three parameters: noise scale (how zoomed in to the noise map), noise multiplier (how much the noise affects the height of the terrain), cell size (how big the polygons that make up the terrain are). The vertices of the mesh have a height function that uses the values in the noisemap its all very standard stuff. Shown below is what this looks like.
https://cdn.discordapp.com/attachments/497521448496136269/692779772031271002/Screenshot_39.png
As the player moves forward the terrain generates correctly but if the parameters are changed (I want to do this for a biome system), as expected the terrain skips to the new configuration. The problem then lies in matching up the old terrain configuration with the new one. Shown below is the problem.
https://cdn.discordapp.com/attachments/497521448496136269/692779770441629727/Screenshot_40.png
My solution was incredibly botched and hardcoded, the only I found online people use a lerp function between one configuration and another to going the meshes up which can be seen below.
https://cdn.discordapp.com/attachments/497521448496136269/692780419128492042/Screenshot_41.png
The reason this is horrible is because I am artificially separating both terrains, then literally drawing a ramp between them, it always looks inorganic and forced no matter how similar the configurations are. It is also implemented only in the z axis and would need implementation and distinction between both axis so chunks would need a new identifier as "border" chunks.
The general direction I am going towards to solve this seems horrible right now, if anyone has engaged in this problem before I would really appreciate a more smart design solution. In terms of script I can provide any part if requested, but if you can help me you are probably already familiar with noise generation and can imagine what it looks like, it is really standard.
For reference, my starting point was this tutorial, which at the same time heavily uses a brackeys tutorial.
https://www.youtube.com/watch?v=f9uueg_AUZs&t=11s
Thanks in advance to anyone who can help me.
[1]: http://https://cdn.discordapp.com/attachments/497521448496136269/692779772031271002/Screenshot_39.png
[2]: http://https://cdn.discordapp.com/attachments/497521448496136269/692779770441629727/Screenshot_40.png
[3]: http://https://cdn.discordapp.com/attachments/497521448496136269/692780419128492042/Screenshot_41.png