Преобразование 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;