fix frequency issues

This commit is contained in:
dfsek
2021-02-17 01:40:31 -07:00
parent 5ff016ea1f
commit 393a92730f
13 changed files with 42 additions and 24 deletions

View File

@@ -211,7 +211,7 @@ public class CellularSampler extends NoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
int xr = fastRound(x);
int yr = fastRound(y);
@@ -363,7 +363,7 @@ public class CellularSampler extends NoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
int xr = fastRound(x);
int yr = fastRound(y);
int zr = fastRound(z);

View File

@@ -12,12 +12,12 @@ public class ConstantSampler extends NoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
return constant;
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
return constant;
}
}

View File

@@ -87,11 +87,25 @@ public abstract class NoiseFunction implements NoiseSampler {
@Override
public double getNoise(double x, double y) {
return getNoiseSeeded(seed, x * frequency, y * frequency);
return getNoiseSeeded(seed, x, y);
}
@Override
public double getNoise(double x, double y, double z) {
return getNoiseSeeded(seed, x * frequency, y * frequency, z * frequency);
return getNoiseSeeded(seed, x, y, z);
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
return getNoiseRaw(seed, x * frequency, y * frequency);
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
return getNoiseRaw(seed, x * frequency, y * frequency, z * frequency);
}
public abstract double getNoiseRaw(int seed, double x, double y);
public abstract double getNoiseRaw(int seed, double x, double y, double z);
}

View File

@@ -8,7 +8,7 @@ public class WhiteNoiseSampler extends NoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
long hashX = Double.doubleToRawLongBits(x) ^ seed;
long hashZ = Double.doubleToRawLongBits(y) ^ seed;
long hash = ((hashX ^ (hashX >>> 32)) + ((hashZ ^ (hashZ >>> 32)) << 32)) ^ seed;
@@ -18,7 +18,7 @@ public class WhiteNoiseSampler extends NoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
long hashX = Double.doubleToRawLongBits(x) ^ seed;
long hashZ = Double.doubleToRawLongBits(y) ^ seed;
long hash = (((hashX ^ (hashX >>> 32)) + ((hashZ ^ (hashZ >>> 32)) << 32)) ^ seed) + Double.doubleToRawLongBits(z);

View File

@@ -8,7 +8,7 @@ public class BrownianMotionSampler extends FractalNoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
double sum = 0;
double amp = fractalBounding;
@@ -26,7 +26,7 @@ public class BrownianMotionSampler extends FractalNoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
double sum = 0;
double amp = fractalBounding;

View File

@@ -20,7 +20,7 @@ public class PingPongSampler extends FractalNoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
double sum = 0;
double amp = fractalBounding;
@@ -38,7 +38,7 @@ public class PingPongSampler extends FractalNoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
double sum = 0;
double amp = fractalBounding;

View File

@@ -9,7 +9,7 @@ public class RidgedFractalSampler extends FractalNoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
double sum = 0;
double amp = fractalBounding;
@@ -27,7 +27,7 @@ public class RidgedFractalSampler extends FractalNoiseFunction {
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
double sum = 0;
double amp = fractalBounding;

View File

@@ -7,7 +7,7 @@ public class OpenSimplex2SSampler extends SimplexStyleSampler {
@Override
@SuppressWarnings("NumericOverflow")
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
// 2D OpenSimplex2S case is a modified 2D simplex noise.
final double SQRT3 = 1.7320508075688772935274463415059;
@@ -114,7 +114,7 @@ public class OpenSimplex2SSampler extends SimplexStyleSampler {
@Override
@SuppressWarnings("NumericOverflow")
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
// 3D OpenSimplex2S case uses two offset rotated cube grids.
final double R3 = (2.0 / 3.0);
double r = (x + y + z) * R3; // Rotation, not skew

View File

@@ -8,7 +8,7 @@ public class OpenSimplex2Sampler extends SimplexStyleSampler {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
// 2D OpenSimplex2 case uses the same algorithm as ordinary Simplex.
final double G2 = (3 - SQRT3) / 6;
@@ -68,7 +68,7 @@ public class OpenSimplex2Sampler extends SimplexStyleSampler {
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
// 3D OpenSimplex2Sampler case uses two offset rotated cube grids.
final double R3 = (2.0 / 3.0);
double r = (x + y + z) * R3; // Rotation, not skew

View File

@@ -6,7 +6,7 @@ public class PerlinSampler extends SimplexStyleSampler {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
int x0 = fastFloor(x);
int y0 = fastFloor(y);
@@ -30,7 +30,7 @@ public class PerlinSampler extends SimplexStyleSampler {
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
int x0 = fastFloor(x);
int y0 = fastFloor(y);
int z0 = fastFloor(z);

View File

@@ -6,7 +6,7 @@ public class ValueCubicSampler extends ValueStyleNoise {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
int x1 = fastFloor(x);
int y1 = fastFloor(y);
@@ -35,7 +35,7 @@ public class ValueCubicSampler extends ValueStyleNoise {
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
int x1 = fastFloor(x);
int y1 = fastFloor(y);
int z1 = fastFloor(z);

View File

@@ -6,7 +6,7 @@ public class ValueSampler extends ValueStyleNoise {
}
@Override
public double getNoiseSeeded(int seed, double x, double y) {
public double getNoiseRaw(int seed, double x, double y) {
int x0 = fastFloor(x);
int y0 = fastFloor(y);
@@ -25,7 +25,7 @@ public class ValueSampler extends ValueStyleNoise {
}
@Override
public double getNoiseSeeded(int seed, double x, double y, double z) {
public double getNoiseRaw(int seed, double x, double y, double z) {
int x0 = fastFloor(x);
int y0 = fastFloor(y);
int z0 = fastFloor(z);

View File

@@ -25,4 +25,8 @@ public abstract class FractalTemplate<T extends FractalNoiseFunction> extends No
@Value("function")
protected NoiseSeeded function;
public FractalTemplate() {
frequency = 1; // Fractal default freq = 1.
}
}