|
@@ -118,6 +118,10 @@ class Perlin {
|
|
}
|
|
}
|
|
|
|
|
|
public function gradient( seed : Int, x : Float, y : Float ) {
|
|
public function gradient( seed : Int, x : Float, y : Float ) {
|
|
|
|
+ return inlineGradient(seed, x, y);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public inline function inlineGradient( seed : Int, x : Float, y : Float ) {
|
|
var ix = Std.int(x), xs = scurve(x - ix);
|
|
var ix = Std.int(x), xs = scurve(x - ix);
|
|
var iy = Std.int(y), ys = scurve(y - iy);
|
|
var iy = Std.int(y), ys = scurve(y - iy);
|
|
var ga = gradientAt(x, y, ix, iy, seed);
|
|
var ga = gradientAt(x, y, ix, iy, seed);
|
|
@@ -131,7 +135,7 @@ class Perlin {
|
|
var v = 0.;
|
|
var v = 0.;
|
|
var k = 1.;
|
|
var k = 1.;
|
|
for( i in 0...octaves ) {
|
|
for( i in 0...octaves ) {
|
|
- v += gradient(seed + i, x, y) * k;
|
|
|
|
|
|
+ v += inlineGradient(seed + i, x, y) * k;
|
|
k *= persist;
|
|
k *= persist;
|
|
x *= lacunarity;
|
|
x *= lacunarity;
|
|
y *= lacunarity;
|
|
y *= lacunarity;
|
|
@@ -146,7 +150,7 @@ class Perlin {
|
|
var weight = 1.;
|
|
var weight = 1.;
|
|
var tot = 0.;
|
|
var tot = 0.;
|
|
for( i in 0...octaves ) {
|
|
for( i in 0...octaves ) {
|
|
- var g = gradient(seed + i, x * s, y * s) * p;
|
|
|
|
|
|
+ var g = inlineGradient(seed + i, x * s, y * s) * p;
|
|
g = offset - hxd.Math.abs(g);
|
|
g = offset - hxd.Math.abs(g);
|
|
g *= g;
|
|
g *= g;
|
|
g *= weight;
|
|
g *= weight;
|