Google Sceneform - устарела? Любая замена?

Я использую в своем проекте ARCore Sceneform. Похоже, что этот проект теперь упоминается как Архивировано Google. Дополнительную информацию можно найти здесь или на этом page.

Я не понимаю, действительно ли Google отказался от этого SDK или он будет - или будет - напрямую интегрирован в ARCore SDK?

Благодарим за любую информацию, касающуюся будущего этого SDK и возможных замен.


person Regis_AG    schedule 18.06.2020    source источник
comment
Кажется странным, что Google не сказал ничего официального по этому поводу. Интересно, собираются ли они порекомендовать напрямую использовать Filament: github.com/google/filament.   -  person elprl    schedule 25.06.2020
comment
Аналогичный вопрос на Reddit с комментарием @ romain-guy (член команды разработчиков Android): reddit.com/r/androiddev/comments/glduwe/is_sceneform_dead   -  person kaliatech    schedule 11.12.2020
comment
@elprl Filament - отличная технология, но она не эквивалентна Sceneform. Даже не яблоки к апельсинам, они совершенно другого уровня. Мне нравится наслоение элементов Sceneform поверх ARCore, таких как ArFragment, TransformableNode, PinchGestures, ShapeFactroy и так далее ...   -  person Csaba Toth    schedule 24.02.2021


Ответы (3)


Maintained Sceneform SDK for Android

GitHub: https://github.com/thomasgorisse/sceneform-android-sdk

Usage benefits

  • Постоянная совместимость с последними версиями ARCore SDK и Нить
  • На базе AndroidX
  • Доступен как зависимость mavenCentral() gradle
  • Поддерживает формат glTF
  • Анимация стала проще
  • Поддерживаемая глубина
  • Простая загрузка модели для базового использования

Dependencies

app / build.gradle

dependencies {
     implementation("com.gorisse.thomas.sceneform:sceneform:1.19.5")
}

Вам также понадобится androidx.navigation: navigation-fragment-ktx: 2.3.3.

Basic Usage (Simple model viewer)

Update your AndroidManifest.xml

AndroidManifest.xml

<uses-permission android:name="android.permission.CAMERA" />

<application>
    …
    <meta-data android:name="com.google.ar.core" android:value="optional" />
</application>

Add the View to your layout

res / layout / main_activity.xml

<androidx.fragment.app.FragmentContainerView
    android:id="@+id/arFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

Edit your Activity or Fragment

src / main / java /… / MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    …
    if (savedInstanceState == null) {
        if (Sceneform.isSupported(this)) {
            getSupportFragmentManager().beginTransaction()
                    // latest syntax:
                    .add(R.id.arFragment, ArFragment.class, null) 
                    .commit();
        }
    }
}

@Override
public void onAttachFragment(@NonNull Fragment fragment) {
    super.onAttachFragment(fragment);

    if (fragment.getId() == R.id.arFragment) {
        // Load model.glb from assets folder or http url
        ((ArFragment) fragment)
        .setOnTapPlaneGlbModel("model.glb", new ArFragment.OnTapModelListener() {
            @Override
            public void onModelAdded(RenderableInstance renderableInstance) {
            }

            @Override
            public void onModelError(Throwable exception) {
            }
        });
    }
}
person Thomas Gorisse    schedule 12.01.2021
comment
Насколько посвящен Томас Горисс обслуживанию этой вилки? У него есть помощь? - person Travis Well; 13.01.2021
comment
Кажется, что по состоянию на март 2021 года он действительно в хорошем состоянии ..: O - person Fattie; 04.03.2021

Обновлено: 22 мая 2021 г.

О замене Sceneform в Google IO '21

Давайте послушаем, что Фред Зауэр (адвокат разработчиков Google в команде ARCore) говорит нам о заменах Sceneform. Вот ссылка на видео под названием AMA: ARCore (время 06:25).


Около 3 последних версий

На данный момент есть три потенциальных кандидата на выбор:

  • Sceneform 1.17.1
  • Sceneform 1.16
  • Sceneform 1.15

Несколько месяцев назад Google рекомендовал не использовать последнюю версию Sceneform 1.17 из-за артефактов Maven (сейчас может нормально работать, но это все еще вопрос). Sceneform 1.16 недоступен через меню плагинов Android Studio, потому что, как вы сказали, его статус Archived (я бы сказал Abandoned). Версия 1.16 поддерживает форматы _6 _ / _ 7_ вместо SFA и SFB ресурсов. И Sceneform 1.16 стал открытым исходным кодом. Следовательно, вы можете скачать его с GitHub. Единственное, не понимаю, зачем гугл выпустил Sceneform 1.17, если Sceneform 1.16 был заархивирован ?!

Так что на данный момент есть две 100% -но работающие версии - Sceneform 1.16 и Sceneform 1.15.


Установка Sceneform 1.16

  • Для загрузки Sceneform 1.16 для ARCore Android используйте эту ссылку на GitHub.

  • Воспользуйтесь этими подробными инструкциями, чтобы включить и собрать Sceneform 1.16 SDK в свое приложение.


Будущее Sceneform туманно ...

Я не знаю, какая судьба ждет Sceneform с открытым исходным кодом, но я думаю, что Google готовит выпуск совершенно нового движка 3D-рендеринга, и, похоже, он не будет построен на Filament (это мое скромное мнение). Я слышал, что исходная команда ARCore распалась, поэтому новые _18 _ / _ 19_ функции внедряются так медленно.


Вот несколько слов об ARCore и Sceneform от Дерека Бриди, инженера Google:

26 мая 2020 г.

В настоящее время нет планов по изменению Android SDK от ARCore, чтобы облегчить его внедрение для пользователей без 3D-фона. Мы заархивировали репозиторий Sceneform, чтобы было ясно, что мы больше не поддерживаем Sceneform активно. Мы открыли исходный код в выпуске 1.16, чтобы вы могли продолжать использовать его, если сочтете это полезным. Это означает, что вы также можете разветвить репозиторий, чтобы добавить любые дополнительные функции, которые вам нужны. Однако, если вы создаете новый проект, рассмотрите возможность использования Unity ARCore SDK для Android. Он использует Unity для визуализации объектов в трехмерном пространстве и обеспечивает более простой способ создания приложения ARCore. Хочу добавить, что SDK ARCore определенно активно разрабатываются. Мы хотим получить такие функции, как глубина ARCore и постоянные привязки к облаку, прямо перед их выпуском.

P.S.

В дополнение к вышесказанному прочтите рецепт из vortice3D пользователей, чтобы сохранить Sceneform 1.17 в живых.


person Andy Fedoroff    schedule 02.07.2020

Это печальная история, мне нравится Sceneform и мне будет непросто заменить ее. Из-за этого я раздвоил его и обновил lib до androidx и filament 1.7. https://github.com/RGregat/sceneform-android-sdk. Что не работает, так это новый API глубины, представленный в ARCore 1.18. Я не уверен, насколько сложно реализовать это в Sceneform, потому что это зависит от фрагментного шейдера.

person Sceada    schedule 30.06.2020
comment
Похоже, ваш форк тоже заархивирован. Есть ли форк в активной разработке? - person Travis Well; 25.07.2020
comment
Ридми вводит в заблуждение. Простите за это. Вы можете использовать эту вилку, но активная разработка может быть затруднена. Например, для нового API глубины требуется доступ к фрагментному шейдеру, которого у вас действительно нет в Sceneform. Может быть, с Filament, потому что теоретически у нас есть к нему доступ, но я не уверен. - person Sceada; 28.07.2020