为 Vuforia 创建网格 (Java)

Creating meshes for Vuforia (Java)

就在今天,我开始学习 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 经验,我想知道如何创建我自己的 model/mesh 来替换茶壶。我在 Blender 中创建了一个简单的盒子,但我没有很好的方法将其导出到具有顶点、法线等的 java 文件。大部分内容用于 iPhone 以及如何创建.h 文件。

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

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

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

根据你的问题,很明显你想在 java 中编码,因此你需要一个 .java 网格,但只导入 .h 并使用 NDK 会更容易编码。

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

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

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

希望对您有所帮助。