要绘制 3D 对象,您可能需要使用 OpenGL ES API。这里有加载您自己的 3D 对象可能需要执行的主要步骤:
扩展GLSurfaceView.Renderer类,以便从onDrawFrame进行所有 OpenGL API 调用来设置 GL 环境并绘制 3d 对象。
将模型数据(顶点、法线、面等)加载到ByteBuffer中,以便稍后在 OpenGL API 调用中使用它们。
如果您想在 3d 世界中旋转、移动或缩放对象,您可能需要计算变换矩阵 ( Matrix.rotateM )
计算视图矩阵,以便您可以从任何角度渲染 3d 对象 ( Matrix.setLookAtM )。
您可能还需要使用某种透视( Matrix.frustumM )渲染对象,使其看起来更真实。
一旦 MVP 矩阵(模型-视图-矩阵)准备就绪,您就可以初始化 OpenGL 选项,例如视口和背景颜色。
创建一个使用顶点和片段着色器编译的新 OpenGL 程序,该程序将在 GPU 上执行以处理和渲染对象(此步骤仅执行一次)。
配置先前创建的 OpenGL 程序 (glUseProgram) 并配置输入属性 (glEnableVertexAttribArray),以便您可以推送模型的数据,例如要绘制的顶点。
最后,通过绘制构成所有对象的所有三角形或元素(点、线)(glDrawElements或glDrawArrays)来绘制对象。
您可能还想查看这个 github 存储库android-3D-model-viewer,它将所有这些实现到一个开源演示中,该演示也在Play 商店中发布,可以渲染 3d 波前 *.obj 文件。
| 归档时间: |
|
| 查看次数: |
15328 次 |
| 最近记录: |