我正在使用 android ndk 编写游戏。我正在使用pick来选择opengl中的对象。为此,我有一个屏幕外帧缓冲区对象,我在其中渲染并使用 glReadPixels() 从 FBO 获取颜色。然后颜色对单击对象的 id 进行编码。
问题是 glReadPixels() 不起作用。它只是不读取任何颜色值。有什么我必须做的,让它工作吗?
GLubyte pixel[4] = {0,0,0,0};
glReadPixels(x, y , 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, (void *)pixel);
这就是我尝试使用 readpixels 的方式。但结果始终是 (0,0,0,0)。我检查了坐标(x,y)。他们很好。根据 opengl 文档,任何 opengl es 2.0 实现也应该支持 GL_RGBA、GL_UNSIGNED_BYTE 组合。
我已经阅读了一些关于我必须在 android 清单中设置的权限的内容。我试图添加这样的权限:
<uses-permission android:name="android.permission.READ_FRAME_BUFFER"/>
但它也没有用。
有谁知道解决方案可能是什么?或者我可以在哪里看?