如何在Android应用程序中创建3D对象?

时间:2010-10-13 10:07:21

标签: android

请告诉我在Android应用程序中创建3D对象的方法

3 个答案:

答案 0 :(得分:4)

Android SDK有一个OpenGL API:)

3D with OpenGL

答案 1 :(得分:2)

要绘制3D对象,您可能需要使用OpenGL ES API。在这里,您可以实现为加载自己的3D对象而需要实现的主要步骤:

  1. 扩展GLSurfaceView.Renderer类,以便从onDrawFrame进行所有OpenGL API调用以设置GL环境并绘制3d对象。

  2. 将模型数据(顶点,法线,面等)加载到ByteBuffer中,以便稍后在OpenGL API调用中使用它们。

  3. 如果要将对象旋转,移动或缩放到3d世界中,可能需要计算转换矩阵(Matrix.rotateM

  4. 计算视图矩阵,以便从任何视点(Matrix.setLookAtM)渲染3d对象。

  5. 您可能还需要使用某个透视图(Matrix.frustumM)渲染对象,以使其看起来更逼真。

  6. 一旦MVP矩阵(模型 - 视图 - 矩阵)准备就绪,您就可以初始化OpenGL选项,例如Viewport和背景颜色。

  7. 创建一个使用Vertex和Fragment Shader编译的新OpenGL程序,该程序将在GPU上执行以处理和渲染您的对象(此步骤仅执行一次)。

  8. 配置先前创建的OpenGL程序(glUseProgram)并配置输入属性(glEnableVertexAttribArray),以便您可以像绘制顶点一样推送模型的数据。

  9. 最后,通过绘制构成所有对象(glDrawElementsglDrawArrays)的所有三角形或元素(点,线)来绘制对象。

  10. 您可能还想检查实现所有这些的github存储库android-3D-model-viewer到一个开源演示中,该演示也可以在play store中发布,它可以渲染3d wavefront * .obj文件。 / p>

答案 2 :(得分:1)

除了Android SDK之外,还有许多第三方3D引擎可以更轻松地创建3D图形。我曾经用一些导入的网格文件创建一个简单的3D游戏的是JPCT-AE:

http://www.jpct.net/jpct-ae/

支持论坛非常好,开发人员自己通常会在1-2天内在论坛上做出回应。 JPCT的设计以游戏为中心,因此可能有更好的纯3D图形。有几个教程可以帮助您入门。