【发布时间】:2014-02-20 14:26:48
【问题描述】:
我正在尝试在运行时创建openGL ES 对象,这意味着让用户为某些对象选择纹理,然后再次使用创建的对象并选择相同的纹理(用户可以选择放置纹理,一种屏蔽纹理并将被屏蔽的部分用于对象的纹理)。
为此,无法保存网格(顶点)。 有没有办法保存整个东西?
我正在使用openGL ES 2.0。
【问题讨论】:
标签: ios objective-c opengl-es texture-mapping
我正在尝试在运行时创建openGL ES 对象,这意味着让用户为某些对象选择纹理,然后再次使用创建的对象并选择相同的纹理(用户可以选择放置纹理,一种屏蔽纹理并将被屏蔽的部分用于对象的纹理)。
为此,无法保存网格(顶点)。 有没有办法保存整个东西?
我正在使用openGL ES 2.0。
【问题讨论】:
标签: ios objective-c opengl-es texture-mapping
您在屏幕上看到的只是您从 CPU 上运行的 Objective-C 程序传递给 OpenGL 的一堆输入(VBO、纹理、其他属性和制服)的结果。您必须已经设置了一个着色器,该着色器根据用户的触摸进行输入,以允许用户首先选择放置纹理的位置。因此,无论您最后传递给着色器的值是什么,都是您要保存的值。
只需将那些需要持久保存到磁盘的属性和制服的值连同纹理和顶点一起保存,然后使用该数据来重构对象。
【讨论】:
OpenGL 只是一个绘图 API。有点像画笔、铅笔和调色板,用于在操作系统提供给程序的画布上绘图。
你所要求的就像是让画笔理解画在画布上的一张脸。 OpenGL 做不到。期间。
您实际上应该做的是问自己:“我在我的程序中以哪种方式结合了哪些输入来实际绘制该图像?重新创建这些步骤所需的最小参数集是什么?” 然后你把它们写到一个文件中。
【讨论】: