【发布时间】:2009-11-23 06:09:38
【问题描述】:
我正在将一个 OpenGL 应用程序从 iPhone 移植到 Android,我需要 将 OpenGL 内容渲染到纹理。由于帧缓冲区不是 在 OpenGL 1.0 中可用,DROID 是唯一具有帧缓冲区 OpenGL 扩展的 Android 手机,我正在尝试使用 OpenGL 和 然后使用 glCopyTexImage2D 将结果复制到纹理中。然而, 我最初的发现并不好:
glCopyTexImage2D 在 Android 模拟器 (OS v. 1.5) 中工作,但是 仅适用于 GL10.GL_RGB,不适用于 GL_RGBA。如果您尝试复制 alpha 数据 从场景到纹理,你会得到一个完全白色的 纹理。
glCopyTexImage2D 似乎根本在 Android G1 上不起作用。 glCopyTexImage2D 不会抛出 UnsupportedOperationException, 但是在调用它之后,纹理是完全白色的。
有人在 Android 应用中成功使用 glCopyTexImage2D 吗?如果 那么,您能否发布一些您正在使用的代码,以及您的应用程序仅限于哪些设备?我怀疑它仅适用于特定设备上的特定参数,如果有的话。现在,我这样称呼它:
gl.glCopyTexImage2D(GL10.GL_TEXTURE_2D, 0, GL11.GL_RGBA, 0,0, 256,
256, 0);
【问题讨论】:
-
我知道这已经很长时间了,但我有类似的问题,想知道您是否找到了解决方案。在我的情况下,从 PBuffer 表面读取时,glCopyTexImage2D 不能与 GL_RGBA 一起正常工作。