Umwandlung von 8-Bit-Farben in RGB-Werte

Ich implementiere die globale Beleuchtung in meiner Game-Engine mit "Reflective Shadow Maps". RSM hat u.a. Farbtextur. Speicher sparen. Ich packe 24-Bit-Wert in 8-Bit-Wert. OK. Ich weiß, wie man es packt. Aber wie packe ich es aus? Ich hatte die Idee, eine 1D-Textur mit 8-Bit-Palette und 255 verschiedenen Farben zu erstellen. Meine 8-Bit-Farbe wäre der Pixelindex in dieser Textur. Ich bin mir nicht sicher, wie ich diese Art von Textur erzeugen soll. Gibt es mathematische Möglichkeiten, 8-Bit-Werte in RGB umzuwandeln?

@edit Die Farbe hat folgendes Format:
RRR GGG BB

@ edit2: Und ich packe meine Farbe so:

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:
Okay, ich habe einen Weg gefunden, das zu tun, denke ich. Sag mir, ob es falsch ist.

@ edit4 Es ist falsch ...

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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage