为什么getAllTrackables方法只返回一张脸?

时间:2019-02-22 09:07:01

标签: augmented-reality arcore

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

在AugmentedFace的示例中,为什么下面的语句仅返回一张脸?

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

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

2 个答案:

答案 0 :(得分:0)

如果可能,它将返回多个面孔。

使用for循环进行访问:

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

答案 1 :(得分:0)

ARCore的增广面孔功能旨在主要使用一张面孔。但是您可以将其用于更多面孔。

// 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);
}