Sceneform SDK может получить доступ ко всем функциям ARCore SDK? - PullRequest
0 голосов
/ 16 мая 2018

Я пробежался по всем образцам, представленным в ARCore SDK и Sceneform SDK. Но в образцах Sceneform он обнаруживает только плоские поверхности, а не стены. Но это работает в примерах, предоставленных в ARCore SDK. То есть в Sceneform нет функции обнаружения стен? И есть ли какая-либо функция ARCore, которая недоступна при использовании Sceneform?

1 Ответ

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

Все функции ARCore на Android доступны при использовании Sceneform. Наиболее распространенные случаи использования очень просты, например, работа с объектами на плоскости пола.

Для доступа к сеансу ARCore вы можете вызвать ArSceneView.getSession ()

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

Например

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...
    }
}

Для функций ARCore, которые требуют настройки сеанса, вы можете создать сеанс в своем собственном коде и вызвать ArSceneView.setupSession () или, если вы используете ArFragment, вы можете расширить ArFragment, который может реализовать getSessionConfiguration ( ) , который вызывается сразу после создания сеанса.

Просто запомните, если вы настраиваете сеанс напрямую для установки режима обновления LATEST_CAMERA_IMAGE.

...