是否有任何工具可用于设计3D,2D对象并获取OPENGL ES的顶点和索引详细信息

时间:2013-03-14 10:06:33

标签: android opengl-es

如果我们绘制2D或3D对象,我正在寻找能够在顶点和索引方面为OPENGL ES生成结果的工具。是否有任何工具可用于创建3D对象并生成顶点以为Android创建3D对象。

我想将这些对象映射到android增强现实中。我们如何将这些OpenGL ES对象映射到AR。

谢谢....

1 个答案:

答案 0 :(得分:0)

不要劝阻你,但这并不像你想的那么简单。当然不是很难,只需要做一些事情。

有许多工具可以让您创建图形对象。示例包括BlenderMaya

这些并不是唯一的工具,但问题是这些工具中表示的对象并不完全可以在项目中使用,因为这些可能(实际上这些 < / strong>)使用其他表示对象的方式而不是欧宝的方式。

您要做的是导出您的对象,使用某些3D工具创建的文件格式可以解析。然后,您可以使用解析后的信息以程序可以使用的某种格式(非文件格式)获取数据。

例如,请考虑 wavefront obj 文件格式。典型的obj文件看起来像这样:

# ('#' is for comments, just ignore it)
# PURELY USELESS .obj file
v 0.123 0.234 0.345  # 'v' represents vertex
v 0.122 1.034 3.042
vt 0.500 1           # 'vt' represents texture/uv
vt 0.042 0.889
vn 0.707 0.000 0.707 # 'vn' stands for normal
vn 0.367 0.367 0.000
f 6/4/1 3/5/3 7/6/5  # 'f' stands for face
# there are other things too, like material ('usemtl') etc

考虑到你想在项目中使用表示为上述文件的对象,你必须解析文件以获取信息,比如数组。一个数组,每个数组用于顶点,法线,纹理/ uv和面(可能有更多,你可能需要更少)。

所以,有几个步骤:

  1. 使用某种工具创建一个对象,你会更喜欢Blender,因为它是FOSS。
  2. 将其导出为您可以解析的某种格式,例如Obj或Collada。
  3. 导出的文件解析为您希望使用的方式(很可能就像您正在关注的某些Android OpenGL示例中那样)
  4. 将此数据存入缓冲区并进行渲染。

  5. 如果我是你,我会按照他们在例子中的方式开始。从立方体或其他简单形状开始。 IIRC多维数据集是blender中的默认形状,因此导出就像遵循一些基本的blender教程一样简单。然后你可以从那里成长。

    此外,创建对象并将图像(纹理)应用于它们并不是您在编写 for loops 时可以选择的技能,而不是那么快,所以你可能想得到一些设计师/ 3D艺术家或免费在线资料等的帮助。