OpenGL ARGB与RGB和纹理压缩
问题描述:
我有一个颜色深度为32位的渲染上下文。我将使用一些alpha混合,但不多;所以对于大多数我需要的纹理使用24位图像将大大减少内存需求。我的问题是,我可以使用24位RGB纹理与32位渲染上下文,并期望与32位ARGB纹理相同的性能?我知道内部格式可能既不是开始,但RC的目标格式是32位ARGB。OpenGL ARGB与RGB和纹理压缩
此外,我正在计划使用某种形式的纹理压缩。该平台将独占Windows。哪个会提供最好的压缩和最广泛的兼容性?我也希望使用24位压缩纹理,因为我不会使用阿尔法位;但渲染上下文将保持32位。
答
有一个在所有使用任何纹理格式作为输入纹理渲染到32位时,渲染方面没有问题。纹理格式或者由平台支持或者不支持,就是这样,如果支持,你可以使用它而不考虑渲染上下文的格式。
要压缩24位纹理,可以看看在Windows PC上所有OpenGL实现都支持的DXT1 texture compression。请注意,取决于您的内容以及您想要获得的压缩质量,有一些“技巧”可以使用DXT压缩,替代色彩空间以及用于解码的着色器代码来提高图像质量,here is an example。
DXT5压缩alpha通道,这是OP所不需要的,DXT1会更适应。 – rotoglup 2011-01-19 06:54:46