Do trilinear interpolation of colors.
{
GLuint k;
#if CHAN_TYPE == GL_FLOAT
for (k = 0; k < 4; k++) {
result[k] = lerp_3d(a, b, c, t000[k], t100[k], t010[k], t110[k],
t001[k], t101[k], t011[k], t111[k]);
}
#elif CHAN_TYPE == GL_UNSIGNED_SHORT
for (k = 0; k < 4; k++) {
result[k] = (GLchan)(lerp_3d(a, b, c,
t000[k], t100[k], t010[k], t110[k],
t001[k], t101[k], t011[k], t111[k]) + 0.5F);
}
#else
GLint ia = IROUND_POS(a * ILERP_SCALE);
GLint ib = IROUND_POS(b * ILERP_SCALE);
GLint ic = IROUND_POS(c * ILERP_SCALE);
for (k = 0; k < 4; k++) {
result[k] = ilerp_3d(ia, ib, ic, t000[k], t100[k], t010[k], t110[k],
t001[k], t101[k], t011[k], t111[k]);
}
#endif
}