有没有办法将3D模型导入到Android?

是否可以创build一个简单的3D模型(例如在3DS MAX中),然后将其导入到Android?

那就是我要去的地方:

  • 我用Google的APIDemos作为起点 – 里面有旋转的立方体,每个都由两个数组指定:顶点和索引。
  • 我已经使用Blender创build了我的模型,并将其导出为OFF文件 – 这是一个文本文件,列出所有顶点,然后根据这些顶点(索引几何)
  • 然后我创build了一个简单的C ++应用程序,它将OFF作为两个包含数组的XML(一个用于顶点,另一个用于索引)
  • 这些XML文件然后被复制到res /值,这样我可以将它们包含的数据分配给数组,如下所示:
    int vertices[] = context.getResources().getIntArray(R.array.vertices);
  • 我还需要在这里手动更改要绘制的面的数量: gl.glDrawElements(GL10.GL_TRIANGLES, 212*6, GL10.GL_UNSIGNED_SHORT, mIndexBuffer); – 您可以在OFF文件的顶部find该数字(在这种情况下为212)

在这里你可以find我的项目页面,它使用这个解决scheme:

http://code.google.com/p/vsiogap3d/

您可以将其导出为ASE格式。 从ASE,您可以手动或编程将其转换为您的代码。 您需要顶点数组的顶点,并面向Android中的索引。 不要忘记你必须设置

 gl.glFrontFace(GL10.GL_CCW); 

因为3ds max的默认值是逆时针的。

这应该是可能的。 您可以将该文件作为数据文件与您的程序(因此它将被压入仿真器并打包安装到实际设备上)。 然后,您可以使用Android和GLES库在java中编写模型加载器和查看器来显示模型。

这方面的具体资源可能有限。 3ds是一种专有格式,因此第三方装载机的供应量较短,大部分都是反向工程。 其他格式(比如搅拌机或者奶昔)更加开放,你应该能够很容易地find在java中为它们编写加载程序的细节。

你有没有试过android的min3d? 它支持3ds max,obj和md2模型。

不确定有关Android的具体情况,但一般来说,您需要3DS Max中的脚本,手动将模型中需要的格式写出来。

至于是否存在Android,我不知道。

你也可以用3D Object Converter来做到这一点

http://web.t-online.hu/karpo/

此工具可以将3ds对象转换为文本\ xml格式或c代码。

打开gl'c'输出示例:

 glDisable(GL_TEXTURE_2D); glEnable(GL_LIGHTING); glEnable(GL_NORMALIZE); GLfloat Material_1[] = { 0.498039f, 0.498039f, 0.498039f, 1.000000f }; glBegin(GL_TRIANGLES); glMaterialfv(GL_FRONT,GL_DIFFUSE,Material_1 glNormal3d(0.452267,0.000000,0.891883); glVertex3d(5.108326,1.737655,2.650969); glVertex3d(9.124107,-0.002484,0.614596); glVertex3d(9.124107,4.039649,0.614596); glEnd(); 

或“c”输出

 Point3 Object1_vertex[] = { {5.108326,1.737655,2.650969}, {9.124107,-0.002484,0.614596}, {9.124107,4.039649,0.614596}}; long Object1_face[] = { 3,0,1,2, 3,3,4,5 3,6,3,5}; 

那么你可以用java代码replace这部分代码。

Ps此工具不是免费的,只能在30天的试用期内使用。 但是'c'代码和xml转换器在这个时期是可用的。