Android 如何在 OpenGL ES 2.0 中检查上传的纹理?

How to check an uploaded texture in OpenGL ES 2.0 in Android?

我在 Android 应用程序中使用 OpenGL ES 2.0 来 上传纹理图集 ,它的尺寸可能相当大(比如 4096x4096)。 (我正在使用 texSubImage2D() 函数上传较小的相应位图数据。)

完成后,我想检查我刚上传完的纹理。我想在开发环境中执行此操作 - 以类似的方式,您可以在调试时从 Android Studio 检查 Bitmap,当它显示 Bitmap 的内容时图片。

这可能吗?我该怎么做?

我不知道 Android IDE 中是否有任何功能可以执行此操作,因为调试器看不到图形内存。

一些特定于图形的工具将支持查看纹理数据 - 例如,如果您使用的是 Mali GPU,则使用 Mali Graphics Debugger - 但老实说,将纹理绑定为帧缓冲区对象的颜色附件可能更容易,并且然后调用 glReadPixels() 读回颜色数据。如果你想减小尺寸因为 4kx4k 太大,那么在读回之前通过 FBO 将它缩小到第二个纹理

我认为(基于 this screenshot) that Google's open source GAPID (Graphics API Debugger) 应该可以做到这一点。(显然它曾经是 Android Studio 的一部分,但现在不是了 - 现在是独立应用程序。)1.0 版于 2017 年 12 月发布。

不幸的是,有一个尚未修复的 issue 阻止我在我的应用程序中使用它(它在启动后立即退出),但希望它应该尽快修复。