为Vuforia创建网格(Java)

Sol*_*gon 3 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, ...
}
Run Code Online (Sandbox Code Playgroud)

我没有OpenGL的经验,我想知道如何创建自己的模型/网格来替换茶壶.我在Blender中创建了一个简单的框,但我没有很好的方法将它导出到一个包含verts,normals等的java文件.大部分内容都是针对iPhone以及如何创建.h文件.

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

Aug*_*cob 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

希望这可以帮助.