为Vuforia创建网格(Java)

时间:2015-02-18 21:27:35

标签: java opengl-es vuforia

就在今天,我开始学习Vuforia。我正在查看Image Targets代码并看到它从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中创建了一个简单的框,但是我没有很好的方法将它导出到一个包含verts,normals等的java文件。大部分内容都是针对iPhone以及如何创建.h文件。

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

1 个答案:

答案 0 :(得分:5)

好吧,不要害怕。您不必从头开始编写网格代码。相反,您可以使用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

希望这有帮助。