diff --git a/src/main/java/ru/betterend/world/generator/IslandLayer.java b/src/main/java/ru/betterend/world/generator/IslandLayer.java index 644b4bf4..533e2d66 100644 --- a/src/main/java/ru/betterend/world/generator/IslandLayer.java +++ b/src/main/java/ru/betterend/world/generator/IslandLayer.java @@ -14,7 +14,6 @@ import ru.betterend.util.sdf.SDF; import ru.betterend.util.sdf.operator.SDFScale; import ru.betterend.util.sdf.operator.SDFSmoothUnion; import ru.betterend.util.sdf.operator.SDFTranslate; -import ru.betterend.util.sdf.operator.SDFUnion; import ru.betterend.util.sdf.primitive.SDFCappedCone; public class IslandLayer { @@ -123,8 +122,8 @@ public class IslandLayer { SDF cone3 = makeCone(0.5F, 0.45F, 0.03F, 0.0F); SDF cone4 = makeCone(0.45F, 0, 0.02F, 0.03F); - SDF coneBottom = new SDFUnion().setSourceA(cone1).setSourceB(cone2); - SDF coneTop = new SDFUnion().setSourceA(cone3).setSourceB(cone4); + SDF coneBottom = new SDFSmoothUnion().setRadius(0.02F).setSourceA(cone1).setSourceB(cone2); + SDF coneTop = new SDFSmoothUnion().setRadius(0.02F).setSourceA(cone3).setSourceB(cone4); ISLAND = new SDFSmoothUnion().setRadius(0.01F).setSourceA(coneTop).setSourceB(coneBottom); } diff --git a/src/main/java/ru/betterend/world/generator/TerrainGenerator.java b/src/main/java/ru/betterend/world/generator/TerrainGenerator.java index 8f19e421..741f990c 100644 --- a/src/main/java/ru/betterend/world/generator/TerrainGenerator.java +++ b/src/main/java/ru/betterend/world/generator/TerrainGenerator.java @@ -29,9 +29,9 @@ public class TerrainGenerator { public static void initNoise(long seed) { Random random = new Random(seed); - largeIslands = new IslandLayer(random.nextInt(), 300, 200, 63, 0); - mediumIslands = new IslandLayer(random.nextInt(), 150, 100, 63, 16); - smallIslands = new IslandLayer(random.nextInt(), 60, 50, 63, 32); + largeIslands = new IslandLayer(random.nextInt(), 300, 200, 70, 10); + mediumIslands = new IslandLayer(random.nextInt(), 150, 100, 70, 20); + smallIslands = new IslandLayer(random.nextInt(), 60, 50, 70, 30); noise1 = new OpenSimplexNoise(random.nextInt()); noise2 = new OpenSimplexNoise(random.nextInt()); } @@ -70,9 +70,9 @@ public class TerrainGenerator { dist = dist > 1 ? dist : MHelper.max(dist, mediumIslands.getDensity(px, py, pz)); dist = dist > 1 ? dist : MHelper.max(dist, smallIslands.getDensity(px, py, pz)); if (dist > -0.5F) { - dist += noise1.eval(px * 0.01, py * 0.01, pz * 0.01) * 0.04; - dist += noise2.eval(px * 0.05, py * 0.05, pz * 0.05) * 0.02; - dist += noise1.eval(px * 0.1, py * 0.1, pz * 0.1) * 0.01; + dist += noise1.eval(px * 0.01, py * 0.01, pz * 0.01) * 0.02 + 0.02; + dist += noise2.eval(px * 0.05, py * 0.05, pz * 0.05) * 0.01 + 0.01; + dist += noise1.eval(px * 0.1, py * 0.1, pz * 0.1) * 0.005 + 0.005; } buffer[y] = dist; }