
我正在为我为Android编写的OpenGL游戏实现选择.它使用“唯一颜色”方法将每个可触摸对象绘制为每个对象唯一的纯色.然后,用户输入会在触摸位置读取glreadPixels().我已经完成了着色工作,而glreadPixels工作了,但是我无法将“颜色”渲染与主要的实际渲染分开,这使glreadPixels的使用变得复杂.
大概,解决这个问题的技巧是将第二个场景(用于输入)渲染到屏幕外的缓冲区中,但这似乎有点问题.我已经研究过使用OpenGL ES1.1 FBO充当屏幕外缓冲区,但是看来我的手机(三星galaxy S Vibrant(2.2))不支持FBO.我对如何正确呈现此场景(并在其上运行glreadPixels)而用户没有看到它不知所措.
有什么想法可以完成这种屏幕外渲染吗?
解决方法:
如果不支持FBO,则始终可以使用常规后备缓冲区进行渲染.
典型用法是:
>清除后台缓冲区
>绘制“ color-as-ID”对象
>清除后台缓冲区
>绘制法线
>交换缓冲区
第二次清除将确保选择代码不会出现在最终图像上.
总结以上是内存溢出为你收集整理的使用OpenGL ES 1.0在Android上进行屏幕外渲染的选项吗?全部内容,希望文章能够帮你解决使用OpenGL ES 1.0在Android上进行屏幕外渲染的选项吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)