2012-12-17 88 views
-1

我嘗試在android應用程序中實現3D拾取。我使用OpenGL ES2.0。glReadPixel在OnPick函數中不起作用

現在我想要讀取深度緩衝區(寫在FBO中),但glReadPixels只返回0. 代碼是正確的,因爲我在調用RenderInTexture函數後嘗試了相同的代碼並返回正確的值。 在OnPick函數中調用RenderInTexture並調用glReadPixels也返回0.

問題是什麼? 是不是可以在OnPick事件中讀取framebuffer,還是必須設置一些變量?

感謝您的幫助。

回答

0

OnPick是否在主(UI)線程上調用?可能你有兩個線程,opengl渲染線程和發送事件的主應用程序線程。嘗試在您的OnPick方法中存儲onpick座標並在opengl線程中執行計算。

希望有所幫助。