我想加载一个包含 RGBA 8888 格式纹理的字节数组。
The OpenGL ES docs提供 4 个要使用的常量:GL_UNSIGNED_BYTE、GL_UNSIGNED_SHORT_5_6_5、GL_UNSIGNED_SHORT_4_4_4_4 和 GL_UNSIGNED_SHORT_5_5_5_1。
在 regular OpenGL ,有一个值 GL_UNSIGNED_INT_8_8_8_8 满足我的需要——并且数字是这样解释的:
For example, if internalFormat is GL_R3_G3_B2, you are asking that texels be 3 bits of red, 3 bits of green, and 2 bits of blue.
所以 GL_UNSIGNED_INT_8_8_8_8 必须是 R 的 8 位,G 的 8 位和 B 的 8 位和 A 的 8 位。
但是 GL_UNSIGNED_BYTE 在 ES 平台上是什么意思,又会如何解释呢? (R、G、B 和 A 分别是多少位?)
最佳答案
GL_UNSIGNED_BYTE 应该与格式 GL_RGBA 一起使用,为每个组件提供 8 位。
关于opengl-es - GL_UNSIGNED_BYTE 对 glTexImage2D 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4191310/