【问题标题】:Android glCopyTexImage2D - Any Success?Android glCopyTexImage2D - 成功了吗?
【发布时间】:2009-11-23 06:09:38
【问题描述】:

我正在将一个 OpenGL 应用程序从 iPhone 移植到 Android,我需要 将 OpenGL 内容渲染到纹理。由于帧缓冲区不是 在 OpenGL 1.0 中可用,DROID 是唯一具有帧缓冲区 OpenGL 扩展的 Android 手机,我正在尝试使用 OpenGL 和 然后使用 glCopyTexImage2D 将结果复制到纹理中。然而, 我最初的发现并不好:

  1. glCopyTexImage2D 在 Android 模拟器 (OS v. 1.5) 中工作,但是 仅适用于 GL10.GL_RGB,不适用于 GL_RGBA。如果您尝试复制 alpha 数据 从场景到纹理,你会得到一个完全白色的 纹理。

  2. 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 一起正常工作。

标签: android opengl-es


【解决方案1】:

根据文档,glCopyTexImage2D 仅在 GL 版本为 1.1 或更高版本时可用。这意味着它在 Android 中不受保证。

【讨论】:

  • 也就是说,您可以在应用程序的清单中指定最低 OpenGL 版本。该应用不会出现在所有设备上,但会确保如果出现,则表明该设备支持 OpenGL 1.1。
  • 我对这个问题做了更多的研究,看起来某些设备只支持某些参数组合。很有趣... :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多