FastLED 3.10.8
Loading...
Searching...
No Matches

◆ pnoise()

FASTLED_FORCE_INLINE float fl::pnoise ( float x,
float y,
float z )

Definition at line 66 of file perlin_float.h.

66 {
67 int X = (int)fl::floorf(x) & 255, /* FIND UNIT CUBE THAT */
68 Y = (int)fl::floorf(y) & 255, /* CONTAINS POINT. */
69 Z = (int)fl::floorf(z) & 255;
70 x -= fl::floorf(x); /* FIND RELATIVE X,Y,Z */
71 y -= fl::floorf(y); /* OF POINT IN CUBE. */
72 z -= fl::floorf(z);
73 float u = fade(x), /* COMPUTE FADE CURVES */
74 v = fade(y), /* FOR EACH OF X,Y,Z. */
75 w = fade(z);
76 int A = P(X) + Y, AA = P(A) + Z,
77 AB = P(A + 1) + Z, /* HASH COORDINATES OF */
78 B = P(X + 1) + Y, BA = P(B) + Z,
79 BB = P(B + 1) + Z; /* THE 8 CUBE CORNERS, */
80
81 return lerp(w,
82 lerp(v,
83 lerp(u, grad(P(AA), x, y, z), /* AND ADD */
84 grad(P(BA), x - 1, y, z)), /* BLENDED */
85 lerp(u, grad(P(AB), x, y - 1, z), /* RESULTS */
86 grad(P(BB), x - 1, y - 1, z))), /* FROM 8 */
87 lerp(v,
88 lerp(u, grad(P(AA + 1), x, y, z - 1), /* CORNERS */
89 grad(P(BA + 1), x - 1, y, z - 1)), /* OF CUBE */
90 lerp(u, grad(P(AB + 1), x, y - 1, z - 1),
91 grad(P(BB + 1), x - 1, y - 1, z - 1))));
92}
uint32_t z[NUM_LAYERS]
Definition Fire2023.h:93
FASTLED_FORCE_INLINE float lerp(float t, float a, float b) FL_NO_EXCEPT
FASTLED_FORCE_INLINE fl::u8 P(fl::u8 x) FL_NO_EXCEPT
FASTLED_FORCE_INLINE float grad(int hash, float x, float y, float z) FL_NO_EXCEPT
FASTLED_FORCE_INLINE float fade(float t) FL_NO_EXCEPT
float floorf(float value) FL_NO_EXCEPT
Definition math.h:312

References B, fade(), FASTLED_FORCE_INLINE, FL_NO_EXCEPT, floorf(), grad(), lerp(), P(), x, y, and z.

Referenced by calculate_oscillators(), render_value(), and autoresearch::animartrix_check::runPerlinBenchmark().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: