opengl-es - GL_UNSIGNED_BYTE 对 glTexImage2D 意味着什么?

标签 opengl-es textures

我想加载一个包含 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/

相关文章:

Android Studio 1.3 RC1 NDK 无法加载原生库

android - 从 GLSurfaceView 转换为 TextureView(通过 GLTextureView)

android - 在 C/C++ 中接收完整的 android unicode 输入

java - 为要绘制的每个项目调用 gluLookAt()?

javascript - WebGL texImage2D : Conversion requires pixel reformatting

c++ - glCreateShader 和 glCreateProgram 在 SDL 2 IOS 中返回 0

java - libgdx - 在内存中调整纹理大小

iphone - 异步纹理加载 iPhone OpenGL ES 2

ios - SpriteKit——SKTexture PreloadTextures EXC_BAD_ACCESS 崩溃

c++ - 为什么纹理绑定(bind)需要非常量设备指针?