我正在尝试在运行时创建一个openGL ES
对象,这意味着让用户为某些对象选择纹理,然后再次使用所选对象的纹理再次使用创建的对象(用户可以选择在哪里放置纹理,掩盖纹理的种类,并使用蒙版部分作为对象的纹理。)
为此,保存网格(顶点)不会。 无论如何要保存整个事情吗?
我正在使用openGL ES 2.0
。
答案 0 :(得分:2)
你在屏幕上看到的只是你从CPU上运行的Objective-C程序传递给OpenGL的一堆输入(VBO,纹理,其他属性和制服)的结果。您必须已经设置了一个着色器,该着色器根据用户的触摸获取输入,以允许用户选择首先放置纹理的位置。因此,无论您最后传递给着色器的值是您想要保存的内容。
只需保存那些需要持久保存到磁盘的attribs和uniforms的值,以及纹理和顶点,然后使用该数据重新构建对象。
答案 1 :(得分:0)
OpenGL只是一个绘图API。有点像画笔,铅笔和用于在操作系统提供给您的程序的画布上绘制的调色板。
你要求的就像要求刷子理解画布上画的脸的图片。 OpenGL无法做到。周期。
你实际应该做的是问自己:“我在程序中以哪种方式组合了哪些输入,实际绘制该图像?重新创建这些步骤所需的最小参数集是什么?”然后你把它们写到文件中。