在我的iOS应用程序中,我有一个纹理应用于在OpenGLES1中呈现的球体。用户可以旋转球体。如何跟踪给定点在任何时候的2D空间中的位置?
例如,给定一张1000px x 1000px的纹理上的点(200, 200),我想在我的OpenGL视图上方放置一个UIButton来跟踪该点,当球体被操作时,按钮也会移动。
做到这一点的最佳方法是什么?
在第一次尝试中,我尝试使用颜色拾取技术,在屏幕外的帧缓冲区中使用黑色纹理和在点(200,200)处有一个红色正方形的单独球体。然后,我使用
作为OpenGL新手,我需要指导。是否有更好的解决方案?谢谢!
例如,给定一张1000px x 1000px的纹理上的点(200, 200),我想在我的OpenGL视图上方放置一个UIButton来跟踪该点,当球体被操作时,按钮也会移动。
做到这一点的最佳方法是什么?
在第一次尝试中,我尝试使用颜色拾取技术,在屏幕外的帧缓冲区中使用黑色纹理和在点(200,200)处有一个红色正方形的单独球体。然后,我使用
glReadPixels()
跟踪红色正方形的位置,并相应地移动我的按钮。不幸的是,由于明显的性能原因,抓取所有像素数据并对其进行60次迭代是不可能的。我尝试了许多优化此黑客的方法(例如:只迭代红色像素,每4个迭代一个红色像素等),但没有证明是可靠的。作为OpenGL新手,我需要指导。是否有更好的解决方案?谢谢!