Floating Islands

Author: Variable Argument

Welcome to my Floating Island tutorial. We are going to create this:

../../_images/1.png

First of all set up a new level, add whatever you like, fog, lights and all the usual. Then add a Voxel World.

../../_images/2.png

You may want to use a material of your choosing. I will use M_VoxelMaterial_Colors that comes with voxel plugin for now.

../../_images/3.png

Make a new Voxel Graph. Call it whatever you like, I called it VG_FloatingIslandTut. Set this as the world generator in the voxel world object, and open the Voxel Graph.

First we’ll make simple hills to test the general shape of the island.

../../_images/4.png

This will create what you see below

../../_images/5.png

To create the island we need a mask of some sort of edge. I based mine on a circle, but you can use other methods of you want. We want to add terrain inside the circle and not outside of it. So we will set everything outside the circle to a value of 1. The easiest way to do this is using the vector length node and an if function as shown below.

../../_images/6.png

This will result in this:

../../_images/7.png

Next we will need to have a bottom. So we will need to add noise based on Z. We can use another if function to add the noise on the height which we want. I decided to stay above 0. I will add inverted noise to the bottom. We will also need to add some amount to the Top Noise so that there is a certain thickness to noise without it overlapping.

../../_images/8.png ../../_images/9.png

We have just created a disc world. The edges are pretty dull though. So we will need to add some noise to them. We can change the shape mask to do this.

First we need to create noise with X and Y divided by some large amount to make large features. This will hide the circular mask a bit. We will get a -1 to 1 value. We also want noise on the edges and not in the center. So we have to use a lerp to only put noise on the outside of the circle.

Alter the shape mask like below

../../_images/10.png

We will end up with something like below:

../../_images/11.png

The edges are still a straight which you may prefer or you may now. I do not so I added 3d noise to the shape mask as seen below.

../../_images/12.png

The Result:

../../_images/13.png ../../_images/14.png

Now we have the issue of seeing the roundness once more. The solution is to make the circular mask smaller by dividing it as seen below.

../../_images/15.png ../../_images/16.png

We are starting to get interesting shapes but it is too random for my taste.

To make it more irregular add another lerp between the circular map and 1 use the current shape as alpha. The island will be smaller so you may want to increase the size and the 2d noise size (X and Y / 60 in precious images. I increased it to 120)

../../_images/17.png ../../_images/18.png

Now it is just a question of playing around with the noise nodes, adding octaves and noise scale until you get something you like. You can also add noise nodes to get more interesting shapes. You can also swap noise nodes for other interesting effects. In order to warp the shape a little you can divide X and Y on the Vector length by some amount. This will increase the island size on X or Y direction.

../../_images/19.png ../../_images/20.png

The top still looks a bit boring, as does the bottom. This setup however, allows to freely change the top and bottom noise as we see fit. Macro’s play a nice role in this also. You can create different kind of Macros and combine them using a mask. I made mask macro which looks as follows

../../_images/21.png

You can use this mask to mix and match features an biomes.

../../_images/22.png

The result for all my tweaks is the following:

../../_images/23.png ../../_images/24.png ../../_images/25.png

Have fun! Be creative!