将opengl对象保存到磁盘以供以后使用,包括纹理

时间:2014-01-29 00:50:06

标签: ios objective-c opengl-es texture-mapping

我正在尝试在运行时创建一个openGL ES对象,这意味着让用户为某些对象选择纹理,然后再次使用所选对象的纹理再次使用创建的对象(用户可以选择在哪里放置纹理,掩盖纹理的种类,并使用蒙版部分作为对象的纹理。)

为此,保存网格(顶点)不会。 无论如何要保存整个事情吗?

我正在使用openGL ES 2.0

2 个答案:

答案 0 :(得分:2)

你在屏幕上看到的只是你从CPU上运行的Objective-C程序传递给OpenGL的一堆输入(VBO,纹理,其他属性和制服)的结果。您必须已经设置了一个着色器,该着色器根据用户的触摸获取输入,以允许用户选择首先放置纹理的位置。因此,无论您最后传递给着色器的值是您想要保存的内容。

只需保存那些需要持久保存到磁盘的attribs和uniforms的值,以及纹理和顶点,然后使用该数据重新构建对象。

答案 1 :(得分:0)

OpenGL只是一个绘图API。有点像画笔,铅笔和用于在操作系统提供给您的程序的画布上绘制的调色板。

你要求的就像要求刷子理解画布上画的脸的图片。 OpenGL无法做到。周期。

你实际应该做的是问自己:“我在程序中以哪种方式组合了哪些输入,实际绘制该图像?重新创建这些步骤所需的最小参数集是什么?”然后你把它们写到文件中。