FastLED 3.9.15
Loading...
Searching...
No Matches

◆ grad8() [3/3]

static fl::i8 grad8 ( fl::u8 hash,
fl::i8 x,
fl::i8 y,
fl::i8 z )
inlinestatic

Definition at line 192 of file noise.cpp.hpp.

192 {
193 // Industry-standard 3D Perlin noise gradient implementation
194 // Uses proper 12 edge vectors of a cube for maximum range coverage
195
196 switch(hash & 0xF) {
197 case 0: return fl::avg7( x, y); // (1,1,0)
198 case 1: return fl::avg7(-x, y); // (-1,1,0)
199 case 2: return fl::avg7( x, -y); // (1,-1,0)
200 case 3: return fl::avg7(-x, -y); // (-1,-1,0)
201 case 4: return fl::avg7( x, z); // (1,0,1)
202 case 5: return fl::avg7(-x, z); // (-1,0,1)
203 case 6: return fl::avg7( x, -z); // (1,0,-1)
204 case 7: return fl::avg7(-x, -z); // (-1,0,-1)
205 case 8: return fl::avg7( y, z); // (0,1,1)
206 case 9: return fl::avg7(-y, z); // (0,-1,1)
207 case 10: return fl::avg7( y, -z); // (0,1,-1)
208 case 11: return fl::avg7(-y, -z); // (0,-1,-1)
209 // Repeat first 4 for hash values 12-15 (proper wrap-around)
210 case 12: return fl::avg7( x, y); // (1,1,0)
211 case 13: return fl::avg7(-x, y); // (-1,1,0)
212 case 14: return fl::avg7( x, -y); // (1,-1,0)
213 case 15: return fl::avg7(-x, -y); // (-1,-1,0)
214 }
215 return 0; // Should never reach here
216}
int y
Definition simple.h:93
int x
Definition simple.h:92
uint32_t z[NUM_LAYERS]
Definition Fire2023.h:93

References x, y, and z.

Referenced by inoise8_raw(), inoise8_raw(), and inoise8_raw().

+ Here is the caller graph for this function: