Skip to content

Commit 4063059

Browse files
author
Michael Nugent
committed
VectorTable should be static. Building a new (data huge) object every time we want to gradient isn't a good idea in Java. According to my runs through VisualVM, this small change speeds up the drawing time x1000. I'd be interested if others that have more complex requirements see a similar difference.
1 parent c9fe1b0 commit 4063059

File tree

2 files changed

+316
-313
lines changed

2 files changed

+316
-313
lines changed

src/libnoiseforjava/NoiseGen.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ public static double GradientNoise3D (double fx, double fy, double fz, int ix,
122122
int iy, int iz, int seed)
123123
{
124124

125-
VectorTable vectorTable = new VectorTable();
125+
//VectorTable vectorTable = new VectorTable();
126126
// Randomly generate a gradient vector given the integer coordinates of the
127127
// input value. This implementation generates a random number and uses it
128128
// as an index into a normalized-vector lookup table.
@@ -135,9 +135,12 @@ public static double GradientNoise3D (double fx, double fy, double fz, int ix,
135135
vectorIndex ^= (vectorIndex >> SHIFT_NOISE_GEN);
136136
vectorIndex &= 0xff;
137137

138-
double xvGradient = vectorTable.getRandomVectors(vectorIndex, 0);
139-
double yvGradient = vectorTable.getRandomVectors(vectorIndex, 1);
140-
double zvGradient = vectorTable.getRandomVectors(vectorIndex, 2);
138+
//double xvGradient = vectorTable.getRandomVectors(vectorIndex, 0);
139+
//double yvGradient = vectorTable.getRandomVectors(vectorIndex, 1);
140+
//double zvGradient = vectorTable.getRandomVectors(vectorIndex, 2);
141+
double xvGradient = VectorTable.getRandomVectors(vectorIndex, 0);
142+
double yvGradient = VectorTable.getRandomVectors(vectorIndex, 1);
143+
double zvGradient = VectorTable.getRandomVectors(vectorIndex, 2);
141144
// array size too large when using this original, changed to above for all 3
142145
// double zvGradient = vectorTable.getRandomVectors(vectorIndex << 2, 2);
143146

0 commit comments

Comments
 (0)