java - 在 OpenGL ES(在 Android 上)中创建复杂 3D 绘图的方法?

标签 java android opengl-es 3d blender

我是 opengl-es 的新手,我想知道人们如何能够绘制这些非常详细的 OpenGL ES 图形,例如在 Android 操作系统上。绘制单个正方形已经很困难了,因为它是由三角形组成的,因为 OpenGL ES 显然不能绘制三角形以外的任何东西。 我想到了这种方法:

  • 在 Blender 中绘制和渲染对象。
  • 以某种方式将其导出为顶点数组和颜色数组
  • 将这个顶点数组复制到 Java 代码中
  • 运行代码

或者是否有更好的方法来解决此类问题?我不认为人们只是将他们的图形“绘制”为代码中的顶点数组。我确定他们会在其他任何地方绘制它们并将其导入代码中。 如果 Blender 有这样的解决方案,我很高兴知道这是如何解决的。

问候。

最佳答案

您可以从 Blender 中保存您的模型,例如作为 Wavefront OBJ 文件。在 Blender 中,您还可以选择为您对模型进行三角剖分,这将生成一个仅包含三角形的列表,可供绘制。 OBJ 是一种非常简单的格式,它只是以 ASCII 格式列出每个顶点的位置,然后列出每个三角形的顶点。要么将 OBJ 转换为特定于您的应用程序的格式(例如,您可以直接加载到 OpenGL 的二进制缓冲区),要么找到众多 OBJ 加载器之一,或者编写自己的阅读器。

还有很多其他可用的常见格式,您应该看看它们,看看是否有适用于 Android 的导入程序。

关于java - 在 OpenGL ES(在 Android 上)中创建复杂 3D 绘图的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964355/

相关文章:

java - Array.copyOf() 的时间复杂度

android - 使用 3d 翻转动画开始 Activity

java - 加载 OpenGL 纹理的 Android 安全方法

java - Hadoop如何在 "real-time"针对非陈旧数据运行?

java - 多个存储库的 Maven 设置

java - 如何对javamail中的日语字符进行编码

android - Flutter Android 启动器图标看起来很小

java - 如何检测纹理何时被破坏

opengl-es - 如何用 Common Lisp 编写 opengl ES 2.0/3.0?

android - 什么是 JNI 图形或如何使用它?