我正在创建一个iPhone应用程序,我正在使用OpenGL,我是新手。我必须改变像素位置,任何人都可以向我展示像素的功能吗?
可以理解用于说明该想法的一些示例源代码。
答案 0 :(得分:3)
我不是特别关注iPhone问题的专家,而且我是一名中级OpenGL程序员,所以请把它当作它的价值 -
OpenGL不鼓励直接像素操作,主要是因为在处理任何类型的硬件加速时它没有那么多意义。帧缓冲区通常直接存储在图形RAM中,虽然将位推送到图形存储器很快,但将信息拉回是一种罕见且未经优化的情况。 3-d卡经过优化,可以快速纹理化三角形而不是像素。
在过去的好时光中,当帧缓冲区位于主内存中时,这并不是什么大问题,但事情已经发生了变化。因此,虽然通常仍然可以窥视和查看单个像素,但通常可以通过将操作重新表达为本机OpenGL方法来显着提高速度。顺便说一句,你可以使用GL_POINTS写像素,但同样,它很慢。
但是,有一些效果可以在适当的位置操作像素 - 等离子体和火焰效果实际上无法以任何其他方式完成。为此,我建议你模拟一个帧缓冲区 - 分配你自己的帧缓冲区,并直接写入它。然后,当您需要显示它时,立即将整个块blit到屏幕。