使用OpenGL ES 1.0在Android上进行屏幕外渲染的选项吗?

使用OpenGL ES 1.0在Android上进行屏幕外渲染的选项吗?,第1张

概述我正在为我为Android编写的OpenGL游戏实现选择.它使用“唯一颜色”方法将每个可触摸对象绘制为每个对象唯一的纯色.然后,用户输入会在触摸位置读取glReadPixels().我已经完成了着色工作,而glReadPixels工作了,但是我无法将“颜色”渲染与主要的实际渲染分开,这使glReadPixels的使用

我正在为我为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上进行屏幕外渲染的选项吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1083703.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存