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

◆ fill_raw_2dnoise16into8() [1/2]

void fill_raw_2dnoise16into8 ( fl::u8 * pData,
int width,
int height,
fl::u8 octaves,
fl::q44 freq44,
fract8 amplitude,
int skip,
fl::u32 x,
fl::i32 scalex,
fl::u32 y,
fl::i32 scaley,
fl::u32 time )

Fill a 2D 8-bit buffer with noise, using inoise16()

Parameters
freq44starting octave frequency
amplitudenoise amplitude
skiphow many noise maps to skip over, incremented recursively per octave

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

794 {
795 if(octaves > 1) {
796 fill_raw_2dnoise16into8(pData, width, height, octaves-1, freq44, amplitude, skip+1, x*freq44, scalex *freq44, y*freq44, scaley * freq44, time);
797 } else {
798 // amplitude is always 255 on the lowest level
799 amplitude=255;
800 }
801
802 scalex *= skip;
803 scaley *= skip;
804 fl::u32 xx;
805 fract8 invamp = 255-amplitude;
806 for(int i = 0; i < height; i+=skip, y+=scaley) {
807 fl::u8 *pRow = pData + (i*width);
808 xx = x;
809 for(int j = 0; j < width; j+=skip, xx+=scalex) {
810 fl::u16 noise_base = inoise16(xx,y,time);
811 noise_base = (0x8000 & noise_base) ? noise_base - (32767) : 32767 - noise_base;
812 noise_base = scale8(noise_base>>7,amplitude);
813 if(skip==1) {
814 pRow[j] = qadd8(scale8(pRow[j],invamp),noise_base);
815 } else {
816 for(int ii = i; ii<(i+skip) && ii<height; ++ii) {
817 fl::u8 *pRow = pData + (ii*width);
818 for(int jj=j; jj<(j+skip) && jj<width; ++jj) {
819 pRow[jj] = scale8(pRow[jj],invamp) + noise_base;
820 }
821 }
822 }
823 }
824 }
825}
int y
Definition simple.h:93
int x
Definition simple.h:92
uint8_t octaves
void fill_raw_2dnoise16into8(fl::u8 *pData, int width, int height, fl::u8 octaves, fl::q44 freq44, fract8 amplitude, int skip, fl::u32 x, fl::i32 scalex, fl::u32 y, fl::i32 scaley, fl::u32 time)
Fill a 2D 8-bit buffer with noise, using inoise16()
fl::u16 inoise16(fl::u32 x, fl::u32 y, fl::u32 z, fl::u32 t)
u8 fract8
Fixed-Point Fractional Types.
Definition s16x16x4.h:161
unsigned char u8
Definition stdint.h:131
u8 u8 height
Definition blur.h:186
u8 width
Definition blur.h:186

References fill_raw_2dnoise16into8(), inoise16(), octaves, x, and y.

Referenced by fill_2dnoise16(), fill_raw_2dnoise16into8(), and fill_raw_2dnoise16into8().

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