我正在使用「反射陰影貼圖」在我的遊戲引擎中實現全局照明。 RSM有i.a.顏色紋理。爲了節省內存。我將24位值打包成8位值。好。我知道如何打包它。但是,我如何解開它?我有想法用8位調色板創建一維紋理,有255種不同的顏色。我的8位顏色將是該紋理中像素的索引。 我不知道如何生成這種紋理。 有沒有任何數學方法將8位值轉換爲rgb?將8位顏色轉換爲RGB值
@edit 顏色的格式如下:
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;