glTexStorage2D 用于 OpenGL ES 3.0 中的 alpha 纹理?
glTexStorage2D for alpha texture in OpenGL ES 3.0?
在 OpenGL ES 2.0 中,当 GL_EXT_texture_storage 扩展可用时,我使用 glTexStorage2DEXT(GL_TEXTURE_2D, 1, ALPHA8_EXT, width, height)
为 alpha 遮罩纹理指定不可变存储。在 OpenGL ES 3.0 中,glTexStorage2D 已纳入核心规范,因此无需扩展。但看起来 OpenGL ES 3.0 中没有大小的内部 alpha 格式。
如何在新版本的 OpenGL 中执行此操作?
alpha 纹理只是一个 8 位 unorm,因此请使用 GL_R8
上传。这将通过着色器中的 "red" 通道加载,但我认为您的着色器逻辑可以处理。
在 OpenGL ES 2.0 中,当 GL_EXT_texture_storage 扩展可用时,我使用 glTexStorage2DEXT(GL_TEXTURE_2D, 1, ALPHA8_EXT, width, height)
为 alpha 遮罩纹理指定不可变存储。在 OpenGL ES 3.0 中,glTexStorage2D 已纳入核心规范,因此无需扩展。但看起来 OpenGL ES 3.0 中没有大小的内部 alpha 格式。
如何在新版本的 OpenGL 中执行此操作?
alpha 纹理只是一个 8 位 unorm,因此请使用 GL_R8
上传。这将通过着色器中的 "red" 通道加载,但我认为您的着色器逻辑可以处理。