ADN Open CIS
Сообщество программистов Autodesk в СНГ

28/02/2021

Forge Viewer: поддержка glTF 2.0

Одной из новых возможностей Forge Viewer версии 7.36 стала поддержка загрузки моделей в формате glTF (2.0) в режиме beta-тестирования.

glTF 2.0 - это популярный 3D формат, стремящийся стать "JPEG для 3D" с богатой экосистемой различных инструментов для просмотра, импорта, экспорта и т.д. И теперь с помощью Forge Viewer-а вы сможете загружать такие модели, причем Вам не потребуется использовать сервис Forge Model Derivative. Для этого воспользуйтесь расширением Autodesk.glTF. Так же как и с расширением Autodesk.PDF, всё, что Вам потребуется, это загрузить расширение и затем просто вызвать метод loadModel, передав URL адрес, по которому доступен Ваш файл .gltf, например, следующим образом:

Код - JavaScript: [Выделить]
  1. viewer.loadExtension('Autodesk.glTF').then(() => {
  2.     viewer.loadModel('address/of/your/model.gltf');
  3. });

Посмотреть на код готового к запуску приложения можно, например в ветке experiment/gltf2  в репозитории https://github.com/petrbroz/forge-basic-app. Там же Вы найдете 2 gltf файла примеров, первый взят из репозитория https://github.com/KhronosGroup/glTF-Sample-Models, второй создан из модели Revit с помощью утилиты https://github.com/petrbroz/forge-convert-utils. Вот весь код клиентской части приложения:

Код - JavaScript: [Выделить]
  1. Autodesk.Viewing.Initializer({ accessToken: '' }, async function () {
  2.     const viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('preview'));
  3.     viewer.start();
  4.     viewer.setTheme('light-theme');
  5.     await viewer.loadExtension('Autodesk.glTF');
  6.     //viewer.loadModel('models/rac_basic_sample_project/gltf/model.gltf');
  7.     viewer.loadModel('models/Sponza/glTF/Sponza.gltf');
  8. });

Обратите внимание, что мы не передаем токен доступа Viewer-у и не обращаемся к моделям в Forge.

Disclaimer

Есть некоторые вещи, о которых следует помнить при работе с gltf в Forge Viewer:

  • Целью расширения не является полное соответствие спецификации glTF 2.0
    • например, Forge Viewer не предполагает PBR (physically-based rendering - физически корректный рендеринг) материалов, поэтому отображение в Forge Viewer может отличаться,
    • некоторые возможности, описанные в спецификации, не поддерживаются, например, анимация.
  • Если в файле glTF задано множество объектов в древовидной структуре, то отдельные объекты могут быть выделены во Viewer-е, а сама структура - показана в Model Browser. Однако, во многих glTF файлах вся сцена представлена как один объект
  • Спецификация glTF не содержит никакой концепции метаданных отдельных элементов модели, поэтому в диалог свойств элементов модели будет пуст

Обратная связь

Если при использовании расширения Autodesk.glTF, Вы столкнулись с какими-либо проблемами, пожалуйста, напишите нам на Stack Overflow или здесь. Спасибо!

 

Источник: https://forge.autodesk.com/blog/gltf-20-support-forge-viewer

Автор перевода: Александр Игнатович
Опубликовано 28.02.2021