-1

我尝试在 android 应用程序中实现 3D 拾取。我使用 OpenGL ES2.0。

现在我想读取深度缓冲区(写在 FBO 中),但 glReadPixels 只返回 0。代码是正确的,因为我在调用 RenderInTexture 函数后尝试了相同的代码,它返回了正确的值。在 OnPick 函数中调用 RenderInTexture 而不是调用 glReadPixels 也返回 0。

问题是什么?是否可以在 OnPick 事件中读取帧缓冲区,或者我是否必须设置一些变量?

感谢帮助。

4

1 回答 1

0

OnPick 是否在主 (UI) 线程上调用?可能你有两个线程,opengl 渲染线程和发送事件的主应用程序线程。尝试将 onpick 坐标存储在 OnPick 方法中并在 opengl 线程中进行计算。

希望有帮助。

于 2012-12-18T09:59:06.837 回答