Jarring edges between underground biomes
tomfulghum opened this issue ยท 6 comments
I get some really pronounced (and in my opinion quite ugly) walls at the edges between underground biomes, most commonly where a cave biome meets a large cavern biome.
The world seed is 7462823440804153335 if you want to check it out yourself.
Is this a bug and if not, is there a way to prevent this?
Hey tomfulghum, sorry to hear you don't like this. This behavior is, in fact, intended. It's a consequence of the algorithm I've devised for this mod. The mod separates cave/cavern types based on randomly generated Voronoi regions. As such, the boundary between cave/cavern biomes will be distinct. I personally like the look of it, but I can understand why you wouldn't.
There isn't too much to be done to prevent this, but there are some options you can experiment with to help reduce these walls. Take a look at the Cavern Biome Size option as well as the Cavern Frequency settings for each of the caverns. Upping the Cavern Biome Size will make the caverns bigger, and therefore the walls will be further away and less frequently encountered. If you don't want the caverns at all, you can set each of the Cavern frequencies to None. Alternatively, set the Cavern Frequencies to VeryCommon and the Cavern Biome Size to ExtraLarge if you want almost all caverns at the bottom (which would also prevent walls).
Since this is intended behavior, I'm going to close this issue, but feel free to continue to give your comments, criticism, and ideas here.
moonsquig - While the walls are supposed to be there, it looks like there is a jarring right angle in the middle of your picture. Such square-ish corners should not exist. If you could make a separate issue with additional pictures and your complete modpack list, that would be great.
Holy shit I think you're right. I can't believe I didn't notice this LMAO thanks so much for pointing it out. This would explain a few things I've noticed in the past when testing. I'm surprised simplex noise works as well as it does for sectioning off biomes.
Well, even though this hasn't really created any problems, I'll be messing around with the intended noise type now, lol. Again, thanks so much for pointing this out! I feel like such an idiot for not noticing.
The smooth Voronoi is interesting, and a great idea! I'll look into the kinds of transitions I can create between regions.
Could smoothing out your Voronoi regions (like this, for example) and interpolating between the different biomes work?
Off Topic (mostly): If I understand your code correctly (and please correct me if I'm wrong), you're actually using the default (Simplex) noise for choosing the biome type, since you never actually set the noise type of the FastNoise instances/biome controllers, only their cellular return type, which has no effect if the noise type is not set to Cellular.
So, I've decided to keep the simplex noise for the cavern biome controller, as I really like the way it can create caverns of various shapes. I went ahead and switched the cave biome controller and water biome controller to cellular noise.
The cavern biome controller now has smoothing along boundaries to eliminate almost all of the behavior exemplified by your images. This is done quite simply, thanks to the use of simplex noise for the controller. I pad the usual threshold for determining a given type of cavern with a "smoothing range." For example, if the threshold for floored caverns is 0.6 and above, I say its smoothing range is 0.45 to 0.6. Because of the continuous nature of simplex noise, this range is guaranteed to essentially form a ring around the cavern. If the noise is within this range for a given block, I determine how far into this range it is, and then convert that to a multiplier to reduce the noise threshold when mining blocks. Sounds complicated and kinda hard to explain, but check the code if you'd like - it's pretty straightforward.
Here's a little before and after:
Before:
After:
This does add a performance hit, but it doesn't seem to be too significant.
All of this will be available in v1.5 (uploading very soon). Hopefully you find it better than before!