我正在使用“反射阴影贴图”在我的游戏引擎中实现全局照明。 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;