6 for (i = 0; i < 256; i ++)
8 float in =
data[i], diff =
data[i+256];
14 val = (in < 0x1000) ? (u32)in : 0xFFF;
26 val2 |= (diff < 0x800) ? (u32)diff : 0x7FF;
29 lut->data[i] = val | (val2 << 12);
38 int min = negative ? (-128) : 0;
39 int max = negative ? 128 : 256;
40 for (i = min; i <= max; i ++)
42 float x = (float)i/max;
43 float val = func(x, param);
44 int idx = negative ? (i & 0xFF) : i;
53void LightLutDA_Create(C3D_LightLutDA* lut, C3D_LightLutFuncDA func,
float from,
float to,
float arg0,
float arg1)
58 float range = to-from;
59 lut->scale = 1.0f / range;
60 lut->bias = -from*lut->scale;
62 for (i = 0; i <= 256; i ++)
64 float x = from + range*i/256.0f;
65 float val = func(x, arg0, arg1);
void LightLut_FromFunc(C3D_LightLut *lut, C3D_LightLutFunc func, float param, bool negative)
void LightLut_FromArray(C3D_LightLut *lut, float *data)
void LightLutDA_Create(C3D_LightLutDA *lut, C3D_LightLutFuncDA func, float from, float to, float arg0, float arg1)