A 3D terrain generator in Android based on OpenSimplex Noise.
Add JitPack in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Add the dependency
dependencies {
implementation 'com.github.MarcoCiaramella:OpenSimplexTerrain:x.x.x'
}
OpenSimplexTerrain generates terrains by mixing 8 weighted noises together.
The weights are set by their relative setter methods setOct1, setOct2, setOct4, setOct8, setOct16 and setOct32.
The weight value must range from 0.0 to 1.0.
Class OpenSimplexPlane generates plane terrains. The shape of the grid can be controlled by setting a resolution value with setResolution.
A lower resolution generates a more squared shape.
Class OpenSimplexSphere generates terrains in sphere shape like planet. The resolution of the sphere is controlled by its size parameter.
OpenSimplexPlane openSimplexPlane = new OpenSimplexPlane();
openSimplexPlane.setColors(
new Color(0x4db1db,0f,0f),
new Color(0x35b537, 0f, 0.5f),
new Color(0x6e4319, 0.5f, 0.7f),
new Color(0x828282, 0.7f, 0.8f),
new Color(0xffffff, 0.8f, 1f)
);
openSimplexPlane.setSize(64);
openSimplexPlane.setSeed(43);
openSimplexPlane.setOct1(0.8f);
openSimplexPlane.setOct4(0.3f);
openSimplexPlane.setOct16(0.1f);
openSimplexPlane.setExp(4.0);
openSimplexPlane.create();
float[] vertexPositions = openSimplexPlane.getVertexPositions();
float[] vertexNormals = openSimplexPlane.getVertexNormals();
int[] indices = openSimplexPlane.getIndices();
OpenSimplexSphere openSimplexSphere = new OpenSimplexSphere(16);
openSimplexSphere.setColors(
new Color(0x4db1db,0f,0f),
new Color(0x35b537, 0f, 0.5f),
new Color(0x6e4319, 0.5f, 0.7f),
new Color(0x828282, 0.7f, 0.8f),
new Color(0xffffff, 0.8f, 1f)
);
openSimplexSphere.setSize(128);
openSimplexSphere.setSeed(43);
openSimplexSphere.setOct1(0.8f);
openSimplexSphere.setOct4(0.3f);
openSimplexSphere.setOct16(0.1f);
openSimplexSphere.setExp(4.0);
openSimplexSphere.create();
float[] vertexPositions = openSimplexSphere.getVertexPositions();
float[] vertexNormals = openSimplexSphere.getVertexNormals();
int[] indices = openSimplexSphere.getIndices();
