我正在努力实现我正在为Android编写的OpenGL游戏的选择。它使用“独特颜色”方法将每个可触摸对象绘制为每个对象独有的纯色。然后,用户输入在触摸位置读取glReadPixels()。我已经完成了着色工作,并且glReadPixels工作,但我无法将“颜色”渲染与主实际渲染分开,这使glReadPixels的使用变得复杂。
据说使用它的技巧是将第二个场景(用于输入)渲染到屏幕外缓冲区,但这似乎有点问题。我已经调查过使用OpenGL ES1.1 FBO作为屏幕外缓冲区,但似乎我的手机(三星Galaxy S Vibrant(2.2))不支持FBO。我不知道如何正确渲染这个场景(并在其上运行glReadPixels)而没有用户见证它。
任何关于如何进行此类屏幕外渲染的想法都可以吗?
答案 0 :(得分:4)
如果不支持FBO,您可以随时使用渲染到正常的后台缓冲区。
典型用法是:
第二个清除将确保拣选代码不会显示在最终图像上。