Is it possible to add more than 2 types of blocks to substrate noise?

Tagging @lucadeltodecso but also leaving this open to the community in case anyone else has an answer.

In filming episode 9 of the boundless world builder bite sized series I showed how to use remap to take heightmap noises and turn them into black/white noises for use in substrate. In my test I had one portion be sand and the inverse was set for all three rock variants. Only two of the rock variants showed up within the inverse. And I just realized this is only because the seeds weren’t deleted.

Is there a way to allow for more block types to be included within the same noise? It looks like the max for using different seeds within the same noise is 2 blocks. To get three would I need a new noise attached to the third substrate? I’m guessing the game would then set the first substrate (in this example sand) first, then the second, then the third but since the inverse noise of the first would cause the rest of the map to be filled up there wouldn’t be room?

The use case I’m thinking about here would be something like having sand fill up a desert but then having rock outcroppings made of the different rock types and gravel where these outcroppings match the heightmap noise/seed.

Edit: I haven’t gotten too deep into strata yet but is this basically where strata would come into play within the layers of the rock outcroppings while the top of the outcroppings is just restricted to two block types?

Thanks for any help you can offer!

1 Like

the substrate will stack one ontop of the other (though the order is fixed as was the only sane way to allow blending of biomes, eg sand will go ontop of rock no matter what)

in this particular case, you can make a substrate of rock that has no holes in it, and if you make sand be “patchy” the patches of sand will go ontop of the rock (or rather the rock will sink deeper below to make space for the sand to go ontop)

1 Like

Is there a way then to include all 3 different types of rock within the substrate layer? And for the use case of rock outcroppings in a desert would you just make sure the noise for the rock outcropping (raised via heightmap) has the same holes in the sand noise?

sounds fine… Alternatively you could try and use sub-biomes to achieve it so that you have the sandy biome, and a rock-outcrop biome and use the sub-biome system to get the rocky outcrops to be scattered around instead.

1 Like

just add them? am I missing something?

1 Like

I think I answered my own question after looking at the crater field premade biome. Looks like in order to have multiple blocks in a substrate you need a noise like this one:

and then you invert everything and split out the noise into two seperate noises from there so that you can fill in the black bits like so:

image
and the inverse:
image

In my experimentation I just wasn’t getting that complex but I totally get it now.

I haven’t toyed around with sub-biomes yet but I’ll try to get to that soon because that sounds awesome!

Thank you so much for all your help with my learning Luca!

2 Likes

This world builder sounds amazing; reading this thread makes me want to take a swing at “interpereting” large-area geological phenomenon (see Central Washington State College geology lectures on youtube for the gist of the scope) to whatever degree I can with the available tools. I just have to get a VM or something running on my Mac… can these sit on a game host server?

I don’t think you can actually build true Boundless worlds with the program. You can load the biome visualization but that still only really gives you a square to run around in and there’s no resource or ore generated and if you break any blocks while looking at things the server crashes :sob:

I think you can generate custom world in the creative mode. Never did it, but if it used the planet template JSON from the world builder it should works.

1 Like

Great point, I haven’t messed with the prototype creative mode at all.

I did try this but didn’t get it to work. If anyone else has had success with getting this to work please let us know because I’m sure it’s probably more to my lack of technical skills than it not being possible.