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, например, следующим образом:
- viewer.loadExtension('Autodesk.glTF').then(() => {
- viewer.loadModel('address/of/your/model.gltf');
- });
Посмотреть на код готового к запуску приложения можно, например в ветке 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. Вот весь код клиентской части приложения:
- Autodesk.Viewing.Initializer({ accessToken: '' }, async function () {
- const viewer = new Autodesk.Viewing.GuiViewer3D(document.getElementById('preview'));
- viewer.start();
- viewer.setTheme('light-theme');
- await viewer.loadExtension('Autodesk.glTF');
- //viewer.loadModel('models/rac_basic_sample_project/gltf/model.gltf');
- viewer.loadModel('models/Sponza/glTF/Sponza.gltf');
- });
Обратите внимание, что мы не передаем токен доступа 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