Iphone 关于为openGLES渲染快速交换纹理

Iphone 关于为openGLES渲染快速交换纹理,iphone,opengl-es,Iphone,Opengl Es,在我的openglES环境中,我想为一个纹理设置动画,但是这个纹理的数据可能每秒改变很多时间(就像视频帧一样,但速度较慢)。 其想法是在我的3D场景中为一个简单的矩形曲面设置动画 在我看来,实现这一点的快速技术是在内存中加载一些下一个纹理(通过在另一个线程中加载CGImageREF),并在使用之前将数据推送到我的纹理上 你能考虑一下吗 非常感谢您可以看到这一点。它将纹理存储在容器(数组或字典)中,并根据需要检索这些纹理。但请记住,纹理会占用物理内存。如果纹理为256x256,则它将占用256x2

在我的openglES环境中,我想为一个纹理设置动画,但是这个纹理的数据可能每秒改变很多时间(就像视频帧一样,但速度较慢)。 其想法是在我的3D场景中为一个简单的矩形曲面设置动画

在我看来,实现这一点的快速技术是在内存中加载一些下一个纹理(通过在另一个线程中加载CGImageREF),并在使用之前将数据推送到我的纹理上

你能考虑一下吗


非常感谢

您可以看到这一点。它将纹理存储在容器(数组或字典)中,并根据需要检索这些纹理。但请记住,纹理会占用物理内存。如果纹理为256x256,则它将占用256x256x4字节(256KB)。如果您存储了太多的纹理,很容易收到iOS的内存警告。

您可能会采取类似于UITableView处理行视图的方法,在该方法中,您可以管理一些可重用纹理的队列。需要帧时,将该队列中的下一个纹理出列,将新图像加载到其中,并将其添加到另一个加载纹理队列中,以便在适当的时间显示。调出帧后,将先前显示的纹理重新排队,以便以后可以重用。

谢谢,这段代码是优化可重用纹理的好来源!