如何在iPhone上的OpenGL ES中设置/获取纹理上的像素?

Kar*_*arl 4 iphone textures opengl-es pixel

我正在尝试谷歌我在标题中提到的,但不知怎的,我找不到它.这不应该那么难,不是吗?

我正在寻找的是一种在iPhone上访问OpenGL ES纹理的方法,以及一种获取/设置像素的方法.我正在寻找什么样的OpenGL ES功能?

Ste*_*ert 6

在OpenGL ES能够看到你的纹理之前,你应该已经将它加载到内存中,生成纹理名称(glGenTextures)并绑定它(glBindTexture).您的纹理数据只是内存中的一个大数组.

因此,如果要更改单个纹理元素,可以在内存中对其进行操作,然后再将其绑定.这种方法通常用于程序纹理生成.网上有许多可用的资源,例如:http://www.blumtnwerx.com/blog/2009/06/opengl-es-texture-mapping-for-iphone-oolong-powervr/

虽然glReadPixels可用,但在极少数情况下您需要将它用于交互式应用程序(屏幕捕获会浮现在脑海中).它绝对会破坏性能.并且仍然不会返回原始纹理,而是返回帧缓冲区的块.

我不知道你在寻找什么样的效果.但是,如果您的目标是支持像素着色器的设备,则自定义像素着色器可能会执行您想要的操作.

当然,我的工作假设你不是像屏幕坐标那样的像素.