Skip to content

Commit 0cf0ef9

Browse files
authored
Fix noise's bug when coord is negative (#39)
1 parent c83f8f7 commit 0cf0ef9

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/MineCase.Algorithm/Noise/PerlinNoise.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,10 @@ public void AddNoise(float[,,] noise, Vector3 offset, Vector3 scale, float noise
192192

193193
private static (int integer, float remainder) Split(float value)
194194
{
195+
value = value % 256;
196+
if (value < 0) value += 256;
195197
var integer = (int)value;
196198
var remainder = value - integer;
197-
integer %= 256;
198-
if (integer < 0) integer += 256;
199199
return (integer, remainder);
200200
}
201201

tests/UnitTest/NoiseTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void TestOctavedPerlinNoise3D()
5757
using (var file = File.OpenWrite(Path.Combine(RootDir, "OctavedPerlinNoise3D.bmp")))
5858
using (var image = new Image<ImageSharp.PixelFormats.Rgb24>(xExtent, yExtent))
5959
{
60-
var noise = new OctavedNoise<PerlinNoise>(new PerlinNoise(100), 8, 1);
60+
var noise = new OctavedNoise<PerlinNoise>(new PerlinNoise(100), 8, 0.25f);
6161
var noiseValue = new float[xExtent, yExtent, 1];
6262
noise.Noise(noiseValue, new Vector3(-10, 10, -10), new Vector3(0.1f, 0.1f, 0));
6363
for (int x = 0; x < xExtent; x++)

0 commit comments

Comments
 (0)