在我的openglES上下文中我想要为一个纹理设置动画,但是这个纹理的数据可能每秒都会改变很多时间(就像视频帧一样,但速度更慢)。 我的想法是在我的3D场景中为一个简单的矩形表面设置动画。
在我看来,实现这一目标的快速技术是在内存中加载一些下一个纹理(通过在其他线程中加载CGImageREF)并在使用它之前在我的纹理上推送数据。
你能想到这个吗?非常感谢
答案 0 :(得分:2)
您可以看到此cover flow sample code。它将纹理存储在容器(数组或字典)中,并根据需要检索这些纹理。但要记住这一点,纹理会占据物理记忆。如果纹理是256x256,它将占用256x256x4字节(256KB)。如果存储的纹理太多,很容易收到iOS的内存警告。
答案 1 :(得分:1)
您可能会采用类似于UITableView处理行视图的方法,在该行视图中管理一些可重用纹理的队列。当您需要框架时,将该队列中的下一个纹理出列,将新图像加载到其中并将其添加到已加载纹理的不同队列中,以便在适当的时间显示。换出帧后,再次将队列中先前显示的纹理排入队列,以便稍后重复使用。