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

标签 iphone opengl-es textures pixel

我试图用谷歌搜索标题中提到的内容,但不知何故找不到它。这应该不难,不是吗?

我正在寻找一种在 iPhone 上访问 OpenGL ES 纹理的方法,以及一种使用它获取/设置像素的方法。我正在寻找哪些 OpenGL ES 函数?

最佳答案

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

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

虽然 glReadPixels 可用,但很少有情况需要将它用于交互式应用程序(例如屏幕捕获)。它绝对会破坏性能。并且仍然不会返回原始纹理,而是返回一个帧缓冲区 block 。

不知道你想要什么样的效果。但是,如果您的目标设备支持像素着色器,那么自定义像素着色器也许可以满足您的需求。

当然,我正在假设您并不是指屏幕坐标中的像素。

关于iphone - 如何在 iPhone 上的 OpenGL ES 中设置/获取纹理上的像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2305508/

相关文章:

iphone - 如何在 OpenGL ES for iphone 中加载和显示图像

iphone - 如何从 iPhone 上的 caf 文件访问/提取原始( headless )音频数据?

ios - 将颜色应用于片段着色器中的 OpenGL ES 2.0 点 Sprite 纹理?

android - gluProject 函数如何工作?我不明白

java - OpenGL ES 2.0 中的立方体不绘制给定的纹理

c++ - 加载PVR,纹理问题

iphone - 如何在原型(prototype) iPhone 应用程序上测试 iAds?

iphone - Parse 中的 REST API 与 iOS 应用程序交互

iphone - 如何检查 UIImageView 是否超出了 UIScrollView 的可见区域?

android - 不同设备上的 openGL ES 版本