2010-10-13 105 views

回答

1

除了Android SDK中有很多第三方的3D引擎,可以使创建3D图形更容易。我用来创建一些导入的网格文件的简单3D游戏的一个是JPCT-AE:

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

的支持论坛是优秀的,开发者自己通常对响应在1-2天内论坛。 JPCT在其设计中以游戏为中心,因此可能会有更好的纯3D图形。有几个示例代码的教程可帮助您开始。

1

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

  1. 从扩展GLSurfaceView.Renderer类,因此onDrawFrame你让所有的设置了OpenGL API调用的GL环境,绘制3d对象。

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

  3. 您可能需要计算转换矩阵,如果要旋转,移动或缩放的对象插入到3D世界(Matrix.rotateM

  4. 计算视图矩阵,所以你可以从任何角度呈现3D对象的视图(Matrix.setLookAtM)。

  5. 您可能还需要以某种视角呈现对象(Matrix.frustumM),以便看起来更逼真。

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

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

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

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

您可能还需要检查这个GitHub的仓库android-3D-model-viewer实现这一切变成一个开源演示,发表在play store为好,可以呈现3D波* .obj文件。

相关问题