Konwersja 8-bitowego koloru na wartość RGB

Implementuję globalne oświetlenie w moim silniku gry za pomocą „odblaskowych map cieni”. RSM ma m.in. kolor tekstury. Aby zaoszczędzić pamięć. Pakuję wartość 24-bitową w wartość 8-bitową. Dobrze. Wiem, jak to spakować. Ale jak mogę go rozpakować? Miałem pomysł, aby utworzyć teksturę 1D z 8-bitową paletą, z 255 różnymi kolorami. Mój 8-bitowy kolor byłby indeksem piksela w tej fakturze. Nie wiem, jak wygenerować ten rodzaj tekstury. Czy są jakieś matematyczne sposoby konwersji wartości 8-bitowej na rgb?

@edit Kolor ma ten format:
RRR GGG BB

@ edit2: I pakuję mój kolor w ten sposób:

int packed = (red / 32 << 5) + (green / 32 << 2) + (blue / 64);
//the int is actually a byte, c# compiler is bitching if it's byte.

@ edit3:
W porządku, znalazłem sposób, żeby to zrobić. Powiedz mi, czy to źle.

@ edit4 Źle ...

int r = (packed >> 5) * 32;    
int g = ((packed >> 2) << 3) * 32;    
int b = (packed << 6) * 64;

questionAnswers(2)

yourAnswerToTheQuestion