I'm creating a voxel (block, Minecraft like) game and I have different biomes (flatland, mountains, ect) and the problem is they are abrupt changes when biomes end /begin. I'm using 3d perlin noise, so I can't just "average out" the heights. So I thought to make rivers when biomes end /begin. Does anyone know how I could do this, or how it could work? With 3d noise I get very nice features, however the noise represents density rather than height, so I'm not sure how to go about doing "weight" and such. If not, how can I do blending with 3d perlin noise? Many thanks in advance. I'm also wondering of how Currently, for each chunk of the world I have a certain chunkGen set, and when the biome changes (randomly determined) the chunkGen changes. Even if I were to generate on a block by block basis, I'm not exactly too sure how that could help me as the 3d perlin value I'm getting is of density. I think my best bet would be using 2d perlin with 3d perlin, the 2d for height and the 3d for ridges but I have no idea of how to implement this. Would it also be possible to create a buffer terrain between the biomes? with the averages of the octaves, gain, frequency? EDIT: I've actually just tried buffer terrain but it doesn't work well, often enough it moves up randomly or happens in the middle of lakes.

  • \$\begingroup\$ Presumably you tried interpolating the density fields before thresholding? \$\endgroup\$
    – DMGregory
    Commented Jul 20, 2020 at 22:42
  • \$\begingroup\$ No, I havent... I'm not too sure about linear interpolation and such, how would I go about that? What would I interpolate, and how would that work? \$\endgroup\$ Commented Jul 20, 2020 at 22:54
  • \$\begingroup\$ If one biome says this voxel should have a density of 0.1 and the other biome says it should have a density of 2.3, and the voxel is halfway between the two, then it should have a density of 1.2 (just the average of the two density values) \$\endgroup\$
    – DMGregory
    Commented Jul 20, 2020 at 23:20
  • \$\begingroup\$ Biomes are generated by the chunk, so it will never be that one biome is saying this and the other is saying that... How would I generate by the block? \$\endgroup\$ Commented Jul 20, 2020 at 23:22
  • \$\begingroup\$ My entire world is generated by the chunk... Basically I have a chunk generator that I assign to the world, so when a new biome comes I just change the generator \$\endgroup\$ Commented Jul 20, 2020 at 23:23


You must log in to answer this question.

Browse other questions tagged .