为什么getAllTrackables方法只返回一个面?

问题描述 投票:1回答:2

我正在运行新版本(1.7.0)的arcore示例。

在AugmentedFace的示例中,为什么下面的语句只返回一个面?

Collection<AugmentedFace> faceList =
          sceneView.getSession().getAllTrackables(AugmentedFace.class);

我错过了什么?还是仅仅是一种限制?

augmented-reality arcore
2个回答
0
投票

它尽可能返回多个面。

使用for循环访问它:

for (AugmentedFace face : faceList) {
    AugmentedFaceNode node = new AugmentedFaceNode(face);
    //create models/texture, setParent, etc
}

0
投票

ARCore的Augmented Faces功能主要用于单面工作。但你可以用它来做更多的面孔。

// Get a list of detected faces.
Collection<AugmentedFace> faceList = session.getAllTrackables(AugmentedFace.class);


for (AugmentedFace face : faceList) {

    // Create a face nodes and add it to the scene.
    AugmentedFaceNode faceNode1 = new AugmentedFaceNode(face);
    AugmentedFaceNode faceNode2 = new AugmentedFaceNode(face);
    faceNode1.setParent(scene);
    faceNode2.setParent(scene);

    // Overlay the 3D assets on faces.
    faceNode1.setFaceRegionsRenderable(faceRegionsRenderable1);
    faceNode2.setFaceRegionsRenderable(faceRegionsRenderable2);

    // Overlay textures on faces.
    faceNode1.setFaceMeshTexture(faceMeshTexture1);
    faceNode2.setFaceMeshTexture(faceMeshTexture2);
}
© www.soinside.com 2019 - 2024. All rights reserved.