From c4d2e16433780adf35db751f4ab9c96d9e57db34 Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Wed, 15 Jan 2020 03:02:01 -0500 Subject: [PATCH] Sample radii & Remove ridges --- .../java/ninja/bytecode/iris/Settings.java | 5 +- .../iris/generator/IrisGenerator.java | 71 ++++++++---- .../iris/generator/layer/GenLayerBase.java | 101 ------------------ .../iris/generator/layer/GenLayerCarving.java | 2 +- .../iris/generator/layer/GenLayerCaverns.java | 2 +- .../generator/layer/GenLayerFracture.java | 49 --------- .../iris/generator/layer/GenLayerRidge.java | 56 ---------- .../bytecode/iris/util/InterpolationType.java | 1 - .../bytecode/iris/util/IrisInterpolation.java | 41 ++++--- 9 files changed, 72 insertions(+), 256 deletions(-) delete mode 100644 src/main/java/ninja/bytecode/iris/generator/layer/GenLayerBase.java delete mode 100644 src/main/java/ninja/bytecode/iris/generator/layer/GenLayerFracture.java delete mode 100644 src/main/java/ninja/bytecode/iris/generator/layer/GenLayerRidge.java diff --git a/src/main/java/ninja/bytecode/iris/Settings.java b/src/main/java/ninja/bytecode/iris/Settings.java index cd014e595..04ab42c28 100644 --- a/src/main/java/ninja/bytecode/iris/Settings.java +++ b/src/main/java/ninja/bytecode/iris/Settings.java @@ -28,7 +28,10 @@ public class Settings public InterpolationType trilinearFunction = InterpolationType.BEZIER; public double linearSampleFractureMultiplier = 11.4; public double linearSampleFractureScale = 0.21; - public double horizontalZoom = 0.525; // 0.525 + public int linearSampleRadius = 29; + public int bilinearSampleRadius = 1; + public int trilinearSampleRadius = 6; + public double horizontalZoom = 1; public double heightFracture = 155; public double beachScale = 76; public double landScale = 0.325; diff --git a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java index 153259bc0..606c6eda4 100644 --- a/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java +++ b/src/main/java/ninja/bytecode/iris/generator/IrisGenerator.java @@ -13,13 +13,11 @@ import ninja.bytecode.iris.Iris; import ninja.bytecode.iris.controller.PackController; import ninja.bytecode.iris.generator.genobject.GenObjectDecorator; import ninja.bytecode.iris.generator.genobject.GenObjectGroup; -import ninja.bytecode.iris.generator.layer.GenLayerBase; import ninja.bytecode.iris.generator.layer.GenLayerBiome; import ninja.bytecode.iris.generator.layer.GenLayerCarving; import ninja.bytecode.iris.generator.layer.GenLayerCaverns; import ninja.bytecode.iris.generator.layer.GenLayerCaves; import ninja.bytecode.iris.generator.layer.GenLayerLayeredNoise; -import ninja.bytecode.iris.generator.layer.GenLayerRidge; import ninja.bytecode.iris.generator.layer.GenLayerSnow; import ninja.bytecode.iris.pack.CompiledDimension; import ninja.bytecode.iris.pack.IrisBiome; @@ -54,14 +52,15 @@ public class IrisGenerator extends ParallelChunkGenerator MB.of(Material.SMOOTH_BRICK, 2), MB.of(Material.SMOOTH_BRICK, 3), }); - public GMap biomeCache = new GMap<>(); //@done + + private double[][][] scatterCache; + private CNG scatter; + public GMap biomeCache = new GMap<>(); private MB WATER = new MB(Material.STATIONARY_WATER); private MB BEDROCK = new MB(Material.BEDROCK); private GList internal; - private GenLayerBase glBase; private GenLayerLayeredNoise glLNoise; - private GenLayerRidge glRidge; private GenLayerBiome glBiome; private GenLayerCaves glCaves; private GenLayerCarving glCarving; @@ -104,6 +103,21 @@ public class IrisGenerator extends ParallelChunkGenerator } } + public int scatterInt(int x, int y, int z, int bound) + { + return (int) (scatter(x, y, z) * (double) (bound - 1)); + } + + public double scatter(int x, int y, int z) + { + return scatterCache[Math.abs(x) % 16][Math.abs(y) % 16][Math.abs(z) % 16]; + } + + public boolean scatterChance(int x, int y, int z, double chance) + { + return scatter(x, y, z) > chance; + } + public GList getLoadedBiomes() { return internal; @@ -115,14 +129,29 @@ public class IrisGenerator extends ParallelChunkGenerator this.world = world; rTerrain = new RNG(world.getSeed() + 1024); lerpf = new CNG(rTerrain.nextParallelRNG(-10000), 1D, 2).scale(Iris.settings.gen.linearSampleFractureScale); - glBase = new GenLayerBase(this, world, random, rTerrain.nextParallelRNG(1)); glLNoise = new GenLayerLayeredNoise(this, world, random, rTerrain.nextParallelRNG(2)); - glRidge = new GenLayerRidge(this, world, random, rTerrain.nextParallelRNG(3)); glBiome = new GenLayerBiome(this, world, random, rTerrain.nextParallelRNG(4), dim.getBiomes()); glCaves = new GenLayerCaves(this, world, random, rTerrain.nextParallelRNG(-1)); glCarving = new GenLayerCarving(this, world, random, rTerrain.nextParallelRNG(-2)); glCaverns = new GenLayerCaverns(this, world, random, rTerrain.nextParallelRNG(-3)); glSnow = new GenLayerSnow(this, world, random, rTerrain.nextParallelRNG(5)); + scatterCache = new double[16][][]; + scatter = new CNG(rTerrain.nextParallelRNG(52), 1, 1).scale(10); + + for(int i = 0; i < 16; i++) + { + scatterCache[i] = new double[16][]; + + for(int j = 0; j < 16; j++) + { + scatterCache[i][j] = new double[16]; + + for(int k = 0; k < 16; k++) + { + scatterCache[i][j][k] = scatter.noise(i, j, k); + } + } + } } @Override @@ -133,8 +162,8 @@ public class IrisGenerator extends ParallelChunkGenerator public IrisBiome getBiome(int wxx, int wzx) { - double wx = Math.round((double) wxx * Iris.settings.gen.horizontalZoom); - double wz = Math.round((double) wzx * Iris.settings.gen.horizontalZoom); + double wx = Math.round((double) wxx * (Iris.settings.gen.horizontalZoom / 1.90476190476)); + double wz = Math.round((double) wzx * (Iris.settings.gen.horizontalZoom / 1.90476190476)); return glBiome.getBiome(wx * Iris.settings.gen.biomeScale, wz * Iris.settings.gen.biomeScale); } @@ -149,17 +178,19 @@ public class IrisGenerator extends ParallelChunkGenerator //@builder int highest = 0; int seaLevel = Iris.settings.gen.seaLevel; - double wx = Math.round((double) wxx * Iris.settings.gen.horizontalZoom); - double wz = Math.round((double) wzx * Iris.settings.gen.horizontalZoom); + double wx = Math.round((double) wxx * (Iris.settings.gen.horizontalZoom / 1.90476190476)); + double wz = Math.round((double) wzx * (Iris.settings.gen.horizontalZoom / 1.90476190476)); IrisBiome biome = getBiome(wxx, wzx); double hv = IrisInterpolation.getNoise(wxx, wzx, + Iris.settings.gen.linearSampleRadius, + Iris.settings.gen.bilinearSampleRadius, + Iris.settings.gen.trilinearSampleRadius, (xf, zf) -> getBiomedHeight((int) Math.round(xf), (int) Math.round(zf), plan), (a, b) -> lerpf.noise(a, b), Iris.settings.gen.linearFunction, Iris.settings.gen.bilinearFunction, Iris.settings.gen.trilinearFunction); hv += glLNoise.generateLayer(hv * Iris.settings.gen.roughness * 215, wxx * Iris.settings.gen.roughness * 0.82, wzx * Iris.settings.gen.roughness * 0.82) * (1.6918 * (hv * 2.35)); - hv -= glRidge.generateLayer(hv, wxx, wzx); int height = (int) Math.round(M.clip(hv, 0D, 1D) * 253); int max = Math.max(height, seaLevel); IrisBiome override = null; @@ -190,7 +221,7 @@ public class IrisGenerator extends ParallelChunkGenerator for(int i = 0; i < max; i++) { - MB mb = ROCK.get(glBase.scatterInt(wzx, i, wxx, ROCK.size())); + MB mb = ROCK.get(scatterInt(wzx, i, wxx, ROCK.size())); boolean underwater = i >= height && i < seaLevel; boolean underground = i < height; @@ -199,7 +230,7 @@ public class IrisGenerator extends ParallelChunkGenerator mb = WATER; } - if(underground && (height - 1) - i < glBase.scatterInt(x, i, z, 4) + 2) + if(underground && (height - 1) - i < scatterInt(x, i, z, 4) + 2) { mb = biome.getDirtRNG(); } @@ -247,7 +278,7 @@ public class IrisGenerator extends ParallelChunkGenerator mb = BEDROCK; } - if(!Iris.settings.gen.flatBedrock ? i <= 2 : i < glBase.scatterInt(x, i, z, 3)) + if(!Iris.settings.gen.flatBedrock ? i <= 2 : i < scatterInt(x, i, z, 3)) { mb = BEDROCK; } @@ -294,11 +325,10 @@ public class IrisGenerator extends ParallelChunkGenerator if(xh == -1) { - int wx = (int) Math.round((double) x * Iris.settings.gen.horizontalZoom); - int wz = (int) Math.round((double) z * Iris.settings.gen.horizontalZoom); + int wx = (int) Math.round((double) x * (Iris.settings.gen.horizontalZoom / 1.90476190476)); + int wz = (int) Math.round((double) z * (Iris.settings.gen.horizontalZoom / 1.90476190476)); IrisBiome biome = glBiome.getBiome(wx * Iris.settings.gen.biomeScale, wz * Iris.settings.gen.biomeScale); double h = Iris.settings.gen.baseHeight + biome.getHeight(); - h += (glBase.getHeight(wx, wz) * 0.5) - (0.33 * 0.5); plan.setHeight(x, z, h); return h; @@ -327,11 +357,6 @@ public class IrisGenerator extends ParallelChunkGenerator return rTerrain; } - public GenLayerBase getGlBase() - { - return glBase; - } - public CompiledDimension getDimension() { return dim; diff --git a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerBase.java b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerBase.java deleted file mode 100644 index 0deed0f35..000000000 --- a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerBase.java +++ /dev/null @@ -1,101 +0,0 @@ -package ninja.bytecode.iris.generator.layer; - -import java.util.Random; - -import org.bukkit.World; - -import ninja.bytecode.iris.Iris; -import ninja.bytecode.iris.generator.IrisGenerator; -import ninja.bytecode.iris.util.GenLayer; -import ninja.bytecode.shuriken.math.CNG; -import ninja.bytecode.shuriken.math.M; -import ninja.bytecode.shuriken.math.RNG; - -public class GenLayerBase extends GenLayer -{ - private double[][][] scatterCache; - private CNG gen; - private CNG fracture; - private CNG hfracture; - private CNG height; - private CNG superheight; - - public GenLayerBase(IrisGenerator iris, World world, Random random, RNG rng) - { - //@builder - super(iris, world, random, rng); - scatterCache = new double[16][][]; - CNG scatter = new CNG(rng.nextParallelRNG(5), 1, 1) - .scale(10); - hfracture = new CNG(rng.nextParallelRNG(6), 1, 2) - .scale(0.0124); - gen = new CNG(rng.nextParallelRNG(7), 0.19D, 7) - .scale(0.012) - .amp(0.5) - .freq(1.1) - .fractureWith(new CNG(rng.nextParallelRNG(8), 1, 6) - .scale(0.018) - .injectWith(CNG.MULTIPLY) - .child(new CNG(rng.nextParallelRNG(9), 0.745, 2) - .scale(0.1)), 44); - height = new CNG(rng.nextParallelRNG(10), 1, 8) - .scale(0.0017601 * Iris.settings.gen.heightScale) - .fractureWith(new CNG(rng.nextParallelRNG(11), 1, 6) - .scale(0.0174) - .fractureWith(new CNG(rng.nextParallelRNG(12), 1, 1) - .scale(0.0034), 31) - .scale(0.066), 58); - superheight = new CNG(rng.nextParallelRNG(13), 1, 6) - .scale(0.0025 * Iris.settings.gen.superHeightScale) - .fractureWith(new CNG(rng.nextParallelRNG(14), 1, 1) - .scale(0.021), 250); - fracture = new CNG(rng.nextParallelRNG(15), 0.6D, 4) - .scale(0.118); - //@done - - for(int i = 0; i < 16; i++) - { - scatterCache[i] = new double[16][]; - - for(int j = 0; j < 16; j++) - { - scatterCache[i][j] = new double[16]; - - for(int k = 0; k < 16; k++) - { - scatterCache[i][j][k] = scatter.noise(i, j, k); - } - } - } - } - - public double getHeight(double x, double z) - { - return M.clip(Math.pow(height.noise(x + (hfracture.noise(x, z) * Iris.settings.gen.heightFracture), z + (hfracture.noise(z, x) * Iris.settings.gen.heightFracture)), Iris.settings.gen.heightExponentBase + (superheight.noise(x, z) * Iris.settings.gen.heightExponentMultiplier)) * Iris.settings.gen.heightMultiplier, 0D, 1D); - } - - public int scatterInt(int x, int y, int z, int bound) - { - return (int) (scatter(x, y, z) * (double) (bound - 1)); - } - - public double scatter(int x, int y, int z) - { - return scatterCache[Math.abs(x) % 16][Math.abs(y) % 16][Math.abs(z) % 16]; - } - - public boolean scatterChance(int x, int y, int z, double chance) - { - return scatter(x, y, z) > chance; - } - - @Override - public double generateLayer(double gnoise, double dx, double dz) - { - double noise = gnoise + getHeight(dx, dz); - double fnoise = fracture.noise(dx, dz); - dx += (fnoise * 44); - dz -= (fnoise * 44); - return ((noise * 0.185) + (gen.noise(dx, dz) * (0.15 + (noise * 0.65)))); - } -} diff --git a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCarving.java b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCarving.java index 0a748c52e..09d92ccdf 100644 --- a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCarving.java +++ b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCarving.java @@ -146,7 +146,7 @@ public class GenLayerCarving extends GenLayer } } - else if(hit > 1 && hit < g.getGlBase().scatterInt(x, i, z, 4) + 3) + else if(hit > 1 && hit < g.scatterInt(x, i, z, 4) + 3) { if(!fail) { diff --git a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaverns.java b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaverns.java index 2fca49f73..26bd717ee 100644 --- a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaverns.java +++ b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerCaverns.java @@ -146,7 +146,7 @@ public class GenLayerCaverns extends GenLayer } } - else if(hit > 1 && hit < g.getGlBase().scatterInt(x, i, z, 4) + 3) + else if(hit > 1 && hit < g.scatterInt(x, i, z, 4) + 3) { if(!fail) { diff --git a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerFracture.java b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerFracture.java deleted file mode 100644 index 11dbaa028..000000000 --- a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerFracture.java +++ /dev/null @@ -1,49 +0,0 @@ -package ninja.bytecode.iris.generator.layer; - -import java.util.Random; - -import org.bukkit.World; - -import ninja.bytecode.iris.generator.IrisGenerator; -import ninja.bytecode.iris.util.GenLayer; -import ninja.bytecode.shuriken.math.CNG; -import ninja.bytecode.shuriken.math.M; -import ninja.bytecode.shuriken.math.RNG; - -public class GenLayerFracture extends GenLayer -{ - private CNG gen; - private CNG cond; - private double shootHeight = 0.963; - - public GenLayerFracture(IrisGenerator iris, World world, Random random, RNG rng) - { - //@builder - super(iris, world, random, rng); - gen = new CNG(rng.nextParallelRNG(40), 1D, 2) - .scale(0.023) - .fractureWith(new CNG(rng.nextParallelRNG(41), 1D, 1) - .scale(0.05), 333); - cond = new CNG(rng.nextParallelRNG(42), 1D, 2) - .scale(0.038) - .fractureWith(new CNG(rng.nextParallelRNG(43), 1D, 1) - .scale(0.025), 299); - //@done - } - - @Override - public double generateLayer(double noise, double dx, double dz) - { - double shootHeight = this.shootHeight + (cond.noise(dx, dz) * 0.035); - - if(noise >= shootHeight) - { - double multiplier = M.rangeScale(0, 0.055, this.shootHeight, 1D, cond.noise(-dx, -dz)); - double on = gen.noise(dx, dz) * multiplier; - - return noise + on; - } - - return noise; - } -} diff --git a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerRidge.java b/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerRidge.java deleted file mode 100644 index cd53897dd..000000000 --- a/src/main/java/ninja/bytecode/iris/generator/layer/GenLayerRidge.java +++ /dev/null @@ -1,56 +0,0 @@ -package ninja.bytecode.iris.generator.layer; - -import java.util.Random; - -import org.bukkit.World; - -import ninja.bytecode.iris.generator.IrisGenerator; -import ninja.bytecode.iris.util.GenLayer; -import ninja.bytecode.shuriken.math.CNG; -import ninja.bytecode.shuriken.math.RNG; - -public class GenLayerRidge extends GenLayer -{ - private CNG gen; - private CNG fract; - private CNG g; - private CNG q; - - public GenLayerRidge(IrisGenerator iris, World world, Random random, RNG rng) - { - //@builder - super(iris, world, random, rng); - q = new CNG(rng.nextParallelRNG(21), 1D, 2).scale(0.0211); - g = new CNG(rng.nextParallelRNG(22), 1D, 2).scale(0.0011); - fract = new CNG(rng.nextParallelRNG(23), 1D, 5).scale(0.0011); - gen = new CNG(rng.nextParallelRNG(24), 0.19D, 16) - .scale(0.012) - .injectWith(CNG.MAX) - .amp(0.5) - .freq(1.1) - .fractureWith(new CNG(rng.nextParallelRNG(25), 1, 6) - .scale(0.018) - .child(new CNG(rng.nextParallelRNG(26), 0.745, 2) - .scale(0.1)) - .fractureWith(new CNG(rng.nextParallelRNG(27), 1, 3) - .scale(0.15), 24), 44); - } - - public double getHeight(double x, double z) - { - return gen.noise(x, z); - } - - @Override - public double generateLayer(double gnoise, double dx, double dz) - { - double d = gen.noise(gnoise, dx + (fract.noise(gnoise, dx, dz) * 1555), dz - (fract.noise(dz, dx, gnoise) * 1555)); - - if(d > g.noise(dx, dz) / 8D) - { - return q.noise(dx, dz, d) * (d / (7D * (g.noise(dz, dx, gnoise) + 0.1))) * (Math.PI / 2.78); - } - - return 0; - } -} diff --git a/src/main/java/ninja/bytecode/iris/util/InterpolationType.java b/src/main/java/ninja/bytecode/iris/util/InterpolationType.java index f23dec5c3..2b88c0a38 100644 --- a/src/main/java/ninja/bytecode/iris/util/InterpolationType.java +++ b/src/main/java/ninja/bytecode/iris/util/InterpolationType.java @@ -5,7 +5,6 @@ public enum InterpolationType LINEAR, PARAMETRIC_2, PARAMETRIC_4, - PARAMETRIC_NH, BEZIER, NONE; } diff --git a/src/main/java/ninja/bytecode/iris/util/IrisInterpolation.java b/src/main/java/ninja/bytecode/iris/util/IrisInterpolation.java index 1c0c85c23..56444fa3e 100644 --- a/src/main/java/ninja/bytecode/iris/util/IrisInterpolation.java +++ b/src/main/java/ninja/bytecode/iris/util/IrisInterpolation.java @@ -58,11 +58,6 @@ public class IrisInterpolation return blerpParametric(a, b, c, d, tx, ty, 4); } - if(type.equals(InterpolationType.PARAMETRIC_NH)) - { - return blerpParametric(a, b, c, d, tx, ty, -0.5); - } - return 0; } @@ -76,9 +71,9 @@ public class IrisInterpolation return lerpParametric(lerpParametric(a, b, tx, v), lerpParametric(c, d, tx, v), ty, v); } - public static double getLinearNoise(int x, int z, NoiseProvider n, NoiseProvider f, InterpolationType type) + public static double getLinearNoise(int x, int z, int rad, NoiseProvider n, NoiseProvider f, InterpolationType type) { - int h = 29; + int h = rad; int xa = x - h; int za = z - h; int xb = x + h; @@ -95,45 +90,45 @@ public class IrisInterpolation return blerp(na, nc, nb, nd, px, pz, type); } - public static double getBilinearNoise(int x, int z, NoiseProvider n, NoiseProvider f, InterpolationType linear, InterpolationType bilinear) + public static double getBilinearNoise(int x, int z, int lrad, int birad, NoiseProvider n, NoiseProvider f, InterpolationType linear, InterpolationType bilinear) { - int h = 1; + int h = birad; int fx = x >> h; int fz = z >> h; int xa = (fx << h) - 15; int za = (fz << h) - 15; int xb = ((fx + 1) << h) + 15; int zb = ((fz + 1) << h) + 15; - double na = getLinearNoise(xa, za, n, f, linear); - double nb = getLinearNoise(xa, zb, n, f, linear); - double nc = getLinearNoise(xb, za, n, f, linear); - double nd = getLinearNoise(xb, zb, n, f, linear); + double na = getLinearNoise(xa, za, lrad, n, f, linear); + double nb = getLinearNoise(xa, zb, lrad, n, f, linear); + double nc = getLinearNoise(xb, za, lrad, n, f, linear); + double nd = getLinearNoise(xb, zb, lrad, n, f, linear); double px = M.rangeScale(0, 1, xa, xb, x); double pz = M.rangeScale(0, 1, za, zb, z); return blerp(na, nc, nb, nd, px, pz, bilinear); } - public static double getTrilinearNoise(int x, int z, NoiseProvider n, NoiseProvider f, InterpolationType linear, InterpolationType bilinear, InterpolationType trilinear) + public static double getTrilinearNoise(int x, int z, int lrad, int birad, int trirad, NoiseProvider n, NoiseProvider f, InterpolationType linear, InterpolationType bilinear, InterpolationType trilinear) { - int h = 6; + int h = trirad; int fx = x >> h; int fz = z >> h; int xa = (fx << h); int za = (fz << h); int xb = ((fx + 1) << h); int zb = ((fz + 1) << h); - double na = getBilinearNoise(xa, za, n, f, linear, bilinear); - double nb = getBilinearNoise(xa, zb, n, f, linear, bilinear); - double nc = getBilinearNoise(xb, za, n, f, linear, bilinear); - double nd = getBilinearNoise(xb, zb, n, f, linear, bilinear); + double na = getBilinearNoise(xa, za, lrad, birad, n, f, linear, bilinear); + double nb = getBilinearNoise(xa, zb, lrad, birad, n, f, linear, bilinear); + double nc = getBilinearNoise(xb, za, lrad, birad, n, f, linear, bilinear); + double nd = getBilinearNoise(xb, zb, lrad, birad, n, f, linear, bilinear); double px = M.rangeScale(0, 1, xa, xb, x); double pz = M.rangeScale(0, 1, za, zb, z); return blerp(na, nc, nb, nd, px, pz, trilinear); } - public static double getNoise(int x, int z, NoiseProvider n, NoiseProvider fli, InterpolationType linear, InterpolationType bilinear, InterpolationType trilinear) + public static double getNoise(int x, int z, int lrad, int birad, int trirad, NoiseProvider n, NoiseProvider fli, InterpolationType linear, InterpolationType bilinear, InterpolationType trilinear) { if(linear.equals(InterpolationType.NONE)) { @@ -142,17 +137,17 @@ public class IrisInterpolation else if(bilinear.equals(InterpolationType.NONE)) { - return getLinearNoise(x, z, n, fli, linear); + return getLinearNoise(x, z, lrad, n, fli, linear); } else if(trilinear.equals(InterpolationType.NONE)) { - return getBilinearNoise(x, z, n, fli, linear, bilinear); + return getBilinearNoise(x, z, lrad, birad, n, fli, linear, bilinear); } else { - return getTrilinearNoise(x, z, n, fli, linear, bilinear, trilinear); + return getTrilinearNoise(x, z, lrad, birad, trirad, n, fli, linear, bilinear, trilinear); } } }