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

◆ pnoise3d_raw()

fl::i32 fl::perlin_s16x16::pnoise3d_raw ( fl::i32 fx_raw,
fl::i32 fy_raw,
fl::i32 fz_raw,
const fl::i32 * fade_lut,
const fl::u8 * perm )
static

Definition at line 103 of file perlin_s16x16.cpp.hpp.

105 {
106 int X, Y, Z;
107 fl::i32 x, y, z;
108 floor_frac(fx_raw, X, x);
109 floor_frac(fy_raw, Y, y);
110 floor_frac(fz_raw, Z, z);
111 X &= 255;
112 Y &= 255;
113 Z &= 255;
114
115 fl::i32 u = fade(x, fade_lut);
116 fl::i32 v = fade(y, fade_lut);
117 fl::i32 w = fade(z, fade_lut);
118
119 int A = perm[X & 255] + Y;
120 int AA = perm[A & 255] + Z;
121 int AB = perm[(A + 1) & 255] + Z;
122 int B = perm[(X + 1) & 255] + Y;
123 int BA = perm[B & 255] + Z;
124 int BB = perm[(B + 1) & 255] + Z;
125
126 fl::i32 result = lerp(w,
127 lerp(v,
128 lerp(u, grad3d(perm[AA & 255], x, y, z),
129 grad3d(perm[BA & 255], x - HP_ONE, y, z)),
130 lerp(u, grad3d(perm[AB & 255], x, y - HP_ONE, z),
131 grad3d(perm[BB & 255], x - HP_ONE, y - HP_ONE, z))),
132 lerp(v,
133 lerp(u, grad3d(perm[(AA + 1) & 255], x, y, z - HP_ONE),
134 grad3d(perm[(BA + 1) & 255], x - HP_ONE, y, z - HP_ONE)),
135 lerp(u, grad3d(perm[(AB + 1) & 255], x, y - HP_ONE, z - HP_ONE),
136 grad3d(perm[(BB + 1) & 255], x - HP_ONE, y - HP_ONE, z - HP_ONE))));
137
139}
uint32_t z[NUM_LAYERS]
Definition Fire2023.h:93
static constexpr int FRAC_BITS
Definition s16x16.h:24
expected< T, E > result
Alias for expected (Rust-style naming)
Definition result.h:31
static fl::i32 grad3d(int hash, fl::i32 x, fl::i32 y, fl::i32 z) FL_NO_EXCEPT
static void floor_frac(fl::i32 fp16, int &ifloor, fl::i32 &frac24) FL_NO_EXCEPT
static constexpr fl::i32 HP_ONE
static fl::i32 fade(fl::i32 t, const fl::i32 *table) FL_NO_EXCEPT
static constexpr int HP_BITS
static fl::i32 lerp(fl::i32 t, fl::i32 a, fl::i32 b) FL_NO_EXCEPT

References fl::B, fl::fade(), fl::FL_NO_EXCEPT, floor_frac(), fl::s16x16::FRAC_BITS, grad3d(), HP_BITS, HP_ONE, fl::lerp(), fl::x, fl::y, and z.

Referenced by pnoise3d(), and fl::render_value_fp().

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