Как я могу выполнить обработку каждого кадра, используя Sceneform? - PullRequest
0 голосов
/ 08 мая 2018

Я хочу обновить свои данные, связанные с якорями, которые обновляются в каждом кадре. Как получить кадр из ArSceneView для каждого кадра?

1 Ответ

0 голосов
/ 08 мая 2018

ArSceneView обновляет объект Frame ARCore перед рисованием сцены. Вы можете получить доступ к кадру, вызвав getArFrame() из метода, зарегистрированного в setOnUpdateListener().

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    this.sceneView = (ArSceneView) findViewById(R.id.scene_view);
    sceneView.getScene().setOnUpdateListener((this::onSceneUpdate));
}

private void onSceneUpdate(FrameTime updatedTime) {
    Frame frame = sceneView.getArFrame();
    Collection<Anchor> updatedAnchors = frame.getUpdatedAnchors();
    for (Anchor anchor : updatedAnchors) {
        // Handle updated anchors...
    }
}
...