java - 为 Vuforia 创建网格 (Java)

标签 java opengl-es vuforia

就在今天,我开始学习 Vuforia。我正在查看图像目标代码,发现它从 com.qualcomm.vuforia.samples.SampleApplication.utils.Teapot 中提取数据以显示茶壶。

并且 Teapot.java 有:

public Teapot()
{
    setVerts();     // has verticies
    setTexCoords(); // coordinates
    setNorms();     // normals
    setIndices();   // and indices
}

private void setVerts()
{
    double[] TEAPOT_VERTS = { 11.222200, 0.110300, 20.030291, 10.302300,
            -4.461498, 20.030291, 10.152300, -4.397198, 20.644890,
            11.059500, 0.110900, 20.644890, 11.059500, ...
}

我没有任何 OpenGL 经验,我想知道如何创建我自己的模型/网格来替换茶壶。我在 Blender 中创建了一个简单的盒子,但我没有很好的方法将其导出到具有顶点、法线等的 java 文件。大部分内容用于 iPhone 以及如何创建 .h 文件。

我正在寻找的是对顶点、坐标、规范和索引的解释,或者是一种在另一个程序中创建对象并能够将其导出以在 Vuforia 中使用的系统方法。

最佳答案

好吧,别害怕。您不必从头开始编写代码来制作网格。相反,您可以使用艺术工具使用 Blender/Maya/Unity 创建网格。这样,您可以将此对象导出到 .obj 或 .h 文件中。

虽然 .obj 导出器是内置的,但 .h 导出器不是。但从好的方面来说,Vuforia 有一个导出商。

从你的问题来看,很明显你想用 java 进行编码,因此你需要一个 .java 网格,但只导入 .h 并使用 NDK 进行编码会更容易。

这是因为没有直接导出到 .java 类型,因此如果您需要用 Java 编写代码,则必须手动从 .h 文件移动数据。 teapot.java 类只是 OpenGL ES 2.0 重建 3D 模型所需的缓冲区数据的包装器。它具有数组和顶点、纹理坐标、法线和索引。

由于 .h 文件包含此信息,您可以手动将缓冲区数据复制到类似于 teapot.java 的 .java 类中。

同时查看此常见问题解答: https://developer.vuforia.com/forum/faq/technical-what-3d-model-formats-does-vuforia-support

希望这对您有所帮助。

关于java - 为 Vuforia 创建网格 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28594273/

相关文章:

java - 重新部署 web 应用程序时,Tomcat 6 确实不稳定

java - 棋盘javafx逻辑错误

立方体上的 Android OpenGL 触摸方向

java - UnityPlayerActivity全局初始化

android - 想要在不同的统一按钮上使用不同的目标

java - 在 Java 中使用 Unsafe 写/读内存

java - 为什么使用 Java 的流 API 收集器进行管道分组需要更多时间?

安卓OpenGL : How to rotate around the world axes?

javascript - Three.js - 网格、三 Angular 形和 Lambert Material

android - 导入 com.qualcomm.QCAR.QCAR;未解决