From 4a1a6b80a66b26aa154df717366c5d292eff123c Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Mon, 23 Dec 2024 23:36:25 +0100 Subject: [PATCH] minor performance increase --- .../volmit/iris/util/interpolation/IrisInterpolation.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java b/core/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java index 41b34a0ea..3ca6ba520 100644 --- a/core/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java +++ b/core/src/main/java/com/volmit/iris/util/interpolation/IrisInterpolation.java @@ -997,7 +997,12 @@ public class IrisInterpolation { return getNoise3D(method, x, y, z, rad, rad, rad, n); } - public static double getNoise(InterpolationMethod method, int x, int z, double h, NoiseProvider n) { + private record Key(double x, double z) {} + + public static double getNoise(InterpolationMethod method, int x, int z, double h, NoiseProvider noise) { + HashMap cache = new HashMap<>(64); + NoiseProvider n = (x1, z1) -> cache.computeIfAbsent(new Key(x1, z1), k -> noise.noise(k.x, k.z)); + if (method.equals(InterpolationMethod.BILINEAR)) { return getBilinearNoise(x, z, h, n); } else if (method.equals(InterpolationMethod.STARCAST_3)) {