请告诉我在Android应用程序中创建3D对象的方法
答案 0 :(得分:4)
Android SDK有一个OpenGL API:)
答案 1 :(得分:2)
要绘制3D对象,您可能需要使用OpenGL ES API。在这里,您可以实现为加载自己的3D对象而需要实现的主要步骤:
扩展GLSurfaceView.Renderer类,以便从onDrawFrame进行所有OpenGL API调用以设置GL环境并绘制3d对象。
将模型数据(顶点,法线,面等)加载到ByteBuffer中,以便稍后在OpenGL API调用中使用它们。
如果要将对象旋转,移动或缩放到3d世界中,可能需要计算转换矩阵(Matrix.rotateM)
计算视图矩阵,以便从任何视点(Matrix.setLookAtM)渲染3d对象。
您可能还需要使用某个透视图(Matrix.frustumM)渲染对象,以使其看起来更逼真。
一旦MVP矩阵(模型 - 视图 - 矩阵)准备就绪,您就可以初始化OpenGL选项,例如Viewport和背景颜色。
创建一个使用Vertex和Fragment Shader编译的新OpenGL程序,该程序将在GPU上执行以处理和渲染您的对象(此步骤仅执行一次)。
配置先前创建的OpenGL程序(glUseProgram)并配置输入属性(glEnableVertexAttribArray),以便您可以像绘制顶点一样推送模型的数据。
最后,通过绘制构成所有对象(glDrawElements或glDrawArrays)的所有三角形或元素(点,线)来绘制对象。
您可能还想检查实现所有这些的github存储库android-3D-model-viewer到一个开源演示中,该演示也可以在play store中发布,它可以渲染3d wavefront * .obj文件。 / p>
答案 2 :(得分:1)
除了Android SDK之外,还有许多第三方3D引擎可以更轻松地创建3D图形。我曾经用一些导入的网格文件创建一个简单的3D游戏的是JPCT-AE:
支持论坛非常好,开发人员自己通常会在1-2天内在论坛上做出回应。 JPCT的设计以游戏为中心,因此可能有更好的纯3D图形。有几个教程可以帮助您入门。