mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-06-17 14:21:08 +00:00
Move pseudoerosion to NoiseFunction
This commit is contained in:
+10
-3
@@ -3,12 +3,12 @@ package com.dfsek.terra.addons.noise.config.templates.noise;
|
|||||||
import com.dfsek.tectonic.api.config.template.annotations.Default;
|
import com.dfsek.tectonic.api.config.template.annotations.Default;
|
||||||
import com.dfsek.tectonic.api.config.template.annotations.Value;
|
import com.dfsek.tectonic.api.config.template.annotations.Value;
|
||||||
|
|
||||||
import com.dfsek.terra.addons.noise.config.templates.SamplerTemplate;
|
|
||||||
import com.dfsek.terra.addons.noise.samplers.noise.simplex.PseudoErosion;
|
import com.dfsek.terra.addons.noise.samplers.noise.simplex.PseudoErosion;
|
||||||
|
import com.dfsek.terra.api.config.meta.Meta;
|
||||||
import com.dfsek.terra.api.noise.DerivativeNoiseSampler;
|
import com.dfsek.terra.api.noise.DerivativeNoiseSampler;
|
||||||
|
|
||||||
|
|
||||||
public class PseudoErosionTemplate extends SamplerTemplate<PseudoErosion> {
|
public class PseudoErosionTemplate extends NoiseTemplate<PseudoErosion> {
|
||||||
|
|
||||||
@Value("octaves")
|
@Value("octaves")
|
||||||
@Default
|
@Default
|
||||||
@@ -61,10 +61,17 @@ public class PseudoErosionTemplate extends SamplerTemplate<PseudoErosion> {
|
|||||||
@Default
|
@Default
|
||||||
private boolean averageErosionImpulses = true;
|
private boolean averageErosionImpulses = true;
|
||||||
|
|
||||||
|
@Value("frequency")
|
||||||
|
@Default
|
||||||
|
protected @Meta double frequency = 1d;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PseudoErosion get() {
|
public PseudoErosion get() {
|
||||||
return new PseudoErosion(octaves, gain, lacunarity,
|
PseudoErosion pseudoErosion = new PseudoErosion(octaves, gain, lacunarity,
|
||||||
slopeStrength, branchStrength, strength,
|
slopeStrength, branchStrength, strength,
|
||||||
erosionFrequency, heightSampler, slopeMask, slopeMaskFull, slopeMaskNone, jitterModifier, averageErosionImpulses);
|
erosionFrequency, heightSampler, slopeMask, slopeMaskFull, slopeMaskNone, jitterModifier, averageErosionImpulses);
|
||||||
|
pseudoErosion.setFrequency(frequency);
|
||||||
|
pseudoErosion.setSalt(salt);
|
||||||
|
return pseudoErosion;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-9
@@ -1,12 +1,13 @@
|
|||||||
package com.dfsek.terra.addons.noise.samplers.noise.simplex;
|
package com.dfsek.terra.addons.noise.samplers.noise.simplex;
|
||||||
|
|
||||||
|
|
||||||
|
import com.dfsek.terra.addons.noise.samplers.noise.NoiseFunction;
|
||||||
import com.dfsek.terra.api.noise.DerivativeNoiseSampler;
|
import com.dfsek.terra.api.noise.DerivativeNoiseSampler;
|
||||||
import com.dfsek.terra.api.noise.NoiseSampler;
|
import com.dfsek.terra.api.noise.NoiseSampler;
|
||||||
import com.dfsek.terra.api.util.MathUtil;
|
import com.dfsek.terra.api.util.MathUtil;
|
||||||
|
|
||||||
|
|
||||||
public class PseudoErosion implements NoiseSampler {
|
public class PseudoErosion extends NoiseFunction {
|
||||||
public static final float TAU = (float) (2.0 * Math.PI);
|
public static final float TAU = (float) (2.0 * Math.PI);
|
||||||
private static final float HASH_X = 0.3183099f;
|
private static final float HASH_X = 0.3183099f;
|
||||||
private static final float HASH_Y = 0.3678794f;
|
private static final float HASH_Y = 0.3678794f;
|
||||||
@@ -106,11 +107,6 @@ public class PseudoErosion implements NoiseSampler {
|
|||||||
return new float[] {noise, dirOutX, dirOutY};
|
return new float[] {noise, dirOutX, dirOutY};
|
||||||
}
|
}
|
||||||
|
|
||||||
public static double exp(double val) {
|
|
||||||
final long tmp = (long) (1512775 * val + 1072632447);
|
|
||||||
return Double.longBitsToDouble(tmp << 32);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static float smoothstep(float edge0, float edge1, float x) {
|
public static float smoothstep(float edge0, float edge1, float x) {
|
||||||
// Scale, bias and saturate x to 0..1 range
|
// Scale, bias and saturate x to 0..1 range
|
||||||
x = clamp((x - edge0) / (edge1 - edge0), 0.0f, 1.0f);
|
x = clamp((x - edge0) / (edge1 - edge0), 0.0f, 1.0f);
|
||||||
@@ -176,12 +172,12 @@ public class PseudoErosion implements NoiseSampler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double noise(long seed, double x, double y) {
|
public double getNoiseRaw(long seed, double x, double y) {
|
||||||
return heightMap(seed, (float) x, (float) y);
|
return heightMap(seed, (float) x, (float) y);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double noise(long seed, double x, double y, double z) {
|
public double getNoiseRaw(long seed, double x, double y, double z) {
|
||||||
return noise(seed, x, z);
|
return getNoiseRaw(seed, x, z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user