Преобразование 8-битного цвета в значение RGB

Я реализую глобальное освещение в своем игровом движке с "отражающими теневыми картами". РСМ имеет в т.ч. цвет текстуры Для экономии памяти. Я упаковываю 24-битное значение в 8-битное значение. Хорошо. Я знаю, как упаковать это. Но как мне его распаковать? У меня была идея создать 1D текстуру с 8-битной палитрой, с 255 различными цветами. Мой 8-битный цвет будет индексом пикселя в этой текстуре. Я не уверен, как создать такую текстуру. Есть ли математические способы конвертировать 8-битное значение в RGB?

@редактировать Цвет в этом формате:
RRR GGG BB

@ Edit2: И я упаковываю свой цвет так:

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:
Хорошо, я нашел способ сделать это, я думаю. Скажите, если это не так.

@ edit4 Это неправильно ...

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

Ответы на вопрос(2)

Ваш ответ на вопрос