Gltf формат чем открыть
glTF (производная сокращенная форма формата передачи графического языка или формата передачи GL ) - это стандартный формат файла для трехмерных сцен и моделей . Файл glTF использует одно из двух возможных расширений файла: .gltf ( JSON / ASCII ) или .glb ( двоичный ). Файл .gltf может быть самодостаточным или может ссылаться на внешние двоичные ресурсы и ресурсы текстуры, тогда как файл .glb полностью самодостаточен. Открытый стандарт, разработанный и поддерживаемый Khronos Group , поддерживает геометрию 3D-модели , внешний вид, иерархию графа сцены и анимацию. Он задуман как упрощенный, совместимый формат для доставки 3D-ресурсов, при этом минимизируя размер файла и время выполнения, обрабатываемое приложениями. Таким образом, его создатели описали его как « JPEG 3D». Бинарная версия формата называется GLB, где все активы хранятся в одном файле.
СОДЕРЖАНИЕ
Релизы
glTF 1.0
Формат файла был разработан в 2012 году членами рабочей группы COLLADA . На выставке SIGGRAPH 2012, Khronos представил демо glTF, который тогда назывался WebGL Трансмиссии Format (WebGL TF). 19 октября 2015 года была выпущена спецификация glTF 1.0.
На SIGGRAPH 2016 Oculus объявила о принятии glTF, сославшись на сходство с их форматом ovrscene. В октябре 2016 года Microsoft присоединилась к рабочей группе 3D Formats в Khronos для совместной работы над glTF.
glTF 2.0
Вторая версия, glTF 2.0, была выпущена в июне 2017 года и представляет собой полный пересмотр формата файла версии 1.0, при этом большинство инструментов используют версию 2.0. Был добавлен физический рендеринг (PBR), который заменил шейдеры WebGL, используемые в glTF 1.0. Другие обновления включают в себя редкие средства доступа и цели морфинга для таких методов, как лицевая анимация, настройки схемы и критические изменения для угловых случаев или производительности, такие как замена свойств объекта glTF верхнего уровня на массивы для более быстрого доступа на основе индекса. В настоящее время ведется работа по импорту и экспорту в Unity, а также в отношении интегрированного средства просмотра / проверки с несколькими механизмами.
3 марта 2017 года Microsoft объявила, что они будут использовать glTF 2.0 в качестве формата 3D-ресурсов для всей своей линейки продуктов, включая Paint 3D , 3D Viewer , Remix 3D , Babylon.js и Microsoft Office . Sketchfab также объявила о поддержке glTF 2.0. С 2019 года форматы glTF и GLB используются и поддерживаются такими компаниями, как UX3D, Sketchfab, Facebook , Microsoft, Oculus, Google , Adobe , Box , TurboSquid и Unreal Engine . Формат был отмечен как важный стандарт для дополненной реальности , интегрируемый с программным обеспечением для моделирования, таким как Autodesk Maya , Autodesk 3ds Max и Poly .
В феврале 2020 года Смитсоновский институт запустил свою инициативу открытого доступа, выпустив около 2,8 миллиона 2D-изображений и 3D-моделей в общественное достояние, предоставив 3D-модели в glTF.
Формат файла GLB - это двоичная форма glTF, которая включает текстуры вместо того, чтобы ссылаться на них как на внешние изображения. GLB был представлен как расширение к glTF 1.0 и включен непосредственно в glTF 2.0.
Производные форматы
10 августа 2015 года 3D Tiles, теперь предлагаемый стандарт сообщества OGC , построен на glTF для добавления структуры пространственных данных, метаданных и декларативного стиля для потоковой передачи массивных разнородных наборов трехмерных геопространственных данных. VRM, модельный формат для VR, построен на формате .glb. Это спецификация и формат файла трехмерного гуманоидного аватара.
Программная экосистема
Конвертеры glTF с открытым исходным кодом доступны в COLLADA , FBX и OBJ . Assimp может импортировать и экспортировать glTF.
Файлы glTF также можно напрямую экспортировать из различных 3D-редакторов, таких как Blender , Vectary , Autodesk 3ds Max (с использованием экспортера Verge3D ), Autodesk Maya (с помощью экспортера babylon.js ), Modo , Houdini , Paint 3D и Substance Painter .
Файлы glTF можно напрямую редактировать в Gestaltor .
Валидатор glTF с открытым исходным кодом может проверить, соответствуют ли 3D-модели спецификации glTF.
Различные форматы файлов для экспорта результатов моделирования
Программное обеспечение COMSOL Multiphysics поддерживает экспорт результатов во многих различных форматах. Здесь я перечислю лишь некоторые из доступных возможностей:
А как насчет результатов в трехмерном предствлении?
Этот формат можно использовать для обмена полностью трехмерными сценами и графическими моделями между программами. В формате файла glTF™ особое внимание уделяется отображению на дисплее трехмерного изображения, а не точности экспортируемой геометрии. Это означает, что данный графический формат хорош для экспорта визуально выразительных трехмерных результатов, но не для экспорта геометрий и результатов, которые будут использоваться при дальнейшем моделировании.
Для экспорта трехмерных результатов теперь вы можете использовать формат glTF™. Множество организаций и программ преобразования файлов поддерживают glTF™, включая компании из индустрии компьютерной графики, поставщики программного обеспечения и компании, создающие открытый программный код. Файлы glTF™ представлены в двух вариантах:
- Формат glTF™ представляет собой набор файлов, описывающих трехмерное изображение, а также координаты, цвета и так далее.
- Формат GLB упрощает передачу трехмерной графики в виде одного двоичного файла, содержащего всю информацию, необходимую для задания и графического представления трехмерного объекта.
Можно преобразовать GLB-файл в файл glTF™ и наоборот.
Обратите внимание, что можно экспортировать только трехмерные результаты, так как форматы glTF™ и glb поддерживают только трехмерную графику.
Когда вы нажмете OK, файл будет экспортирован и готов к использованию с помощью любых графических программа, которые могут отображать и работать с объектом. Обратите внимание, что экспортируется только основное содержимое Графического окна. Элементы, такие как название графика и легенда, не экспортируются, поскольку формат файла glTF™ не поддерживает эти элементы.
Существуют и другие типы графиков, которые создают линии. Чаще всего, это графики типа Streamline (линии тока). Если у вас есть график типа Streamline, то вы можете переключиться на отображение лент или трубок вместо линий. Имейте в виду, что использование отображения в виде трубок обычно приводит к созданию довольно больших GLB-файлов.
Обратите внимание, что текущие ограничения на размер файла и содержимое, налагаемые Facebook, скорее всего, со временем изменятся. Мы ожидаем, что в будущем появится поддержка более крупных файлов, а также точек и линий на графиках.
Инструменты для просмотра трехмерных изображений в формате glTF™
Поддержка файлов glTF™ в продуктах Microsoft
Дальнейшие шаги
Ознакомьтесь с другим функционалом по экспорту результатов моделирования:
Рубрики блога
Я соглашаюсь с тем, что COMSOL будет собирать, хранить и обрабатывать мои персональные данные согласно моим настройкам и Политике конфиденциальности COMSOL . Я соглашаюсь получать электронные письма от COMSOL AB и его аффилированных компаний о блоге COMSOL. Это согласие может быть отозвано.
В предыдущей главе мы создали простую модель игрушечного поезда, используя некоторые из встроенных геометрий three.js, и быстро стало ясно, что с их помощью будет сложно построить что-либо сложное или органичное. Для создания красивых 3D-моделей требуется сложная программа моделирования. Вы можете использовать three.js для создания любого 3D-приложения, однако создание приложения для моделирования с нуля потребует огромных усилий. Гораздо более простое решение - использовать существующую программу и экспортировать свою работу для использования в three.js… или, обмануть, и загрузить любую из миллионов удивительных моделей и других ресурсов сцены, которые доступны бесплатно во многих местах в Интернете.
В этой главе мы покажем вам, как загрузить некоторые модели, созданные в Blender, приложении для трехмерной графики с открытым исходным кодом, которое можно использовать для моделирования, построения сцены, создания материалов, создания анимации и многого другого. После того, как вы создали модель в Blender, вы можете экспортировать свою работу, используя 3D-формат, такой как glTF, а затем использовать плагин GLTFLoader, чтобы перенести модель в three.js.
Лучший способ отправки 3D-ресурсов через Интернет: glTF
За последние тридцать лет было много попыток создать стандартный формат обмена трехмерными активами. До недавнего времени наиболее популярными из них были форматы FBX, OBJ (Wavefront) и DAE (Collada), хотя все они имеют проблемы, препятствующие их широкому распространению. Например, OBJ не поддерживает анимацию, FBX - это закрытый формат, принадлежащий Autodesk, а спецификация Collada слишком сложна, что приводит к большим файлам, которые трудно загружать.
Однако недавно новый формат под названием glTF стал де-факто стандартным форматом для обмена 3D-ресурсами в Интернете. glTF (GL Transmission Format), иногда называемый JPEG для 3D , был создан Kronos Group, теми же людьми, которые отвечают за WebGL, OpenGL и целый ряд других графических API. Первоначально выпущенный в 2017 году, glTF теперь является лучшим форматом для обмена 3D-ресурсами в Интернете и во многих других областях. В этой книге мы всегда будем использовать glTF, и, если возможно, вы должны сделать то же самое. Он предназначен для публикации моделей в Интернете, поэтому размер файла минимален, а модели загружаются быстро.
Однако, поскольку glTF является относительно новым, ваше любимое приложение может еще не иметь экспортера. В этом случае вы можете преобразовать свои модели в glTF перед их использованием или использовать другой загрузчик, такой как FBXLoader или OBJLoader. Все загрузчики three.js работают одинаково, поэтому, если вам действительно нужно использовать другой загрузчик, все из этой главы по-прежнему будет применяться, с небольшими отличиями.
Всякий раз, когда мы упоминаем glTF, мы имеем в виду glTF версии 2. Исходная версия glTF версии 1 так и не нашла широкого распространения и больше не поддерживается three.js.
Файлы glTF могут содержать модели, анимацию, геометрию, материалы, источники света, камеры или даже целые сцены. Это означает, что вы можете создать всю сцену во внешней программе, а затем загрузить ее в three.js.
Типы файлов glTF
Файлы glTF бывают стандартной и двоичной. У них разные расширения:
- Стандартные файлы .gltf не сжаты и могут поставляться с дополнительным файлом данных .bin.
- Двоичные файлы .glb включают все данные в один файл.
И стандартные, и двоичные файлы glTF могут содержать текстуры, встроенные в файл, или могут ссылаться на внешние текстуры. Поскольку двоичные файлы .glb значительно меньше по размеру, лучше использовать этот тип. С другой стороны, несжатые .gltf легко читаются в текстовом редакторе, поэтому они могут быть полезны для целей отладки.
Бесплатные файлы glTF в репозитории three.js
Вы можете найти эти три файла в редакторе в папке assets / models /. В этой главе мы загрузим Parrot.glb, Flamingo.glb и Stork.glb, а затем добавим сетки в форме птиц, содержащиеся в каждом файле, в нашу сцену. В следующей главе мы покажем вам, как воспроизвести анимацию полета, которая есть у каждой птицы.
Если вы работаете локально, а не используете встроенный редактор кода, вам необходимо настроить веб-сервер. В противном случае из-за ограничений безопасности браузера вы не сможете загружать эти файлы с жесткого диска.
Асинхронный JavaScript
Всякий раз, когда мы загружаем модель через Интернет, нам нужно делать это таким образом, чтобы обеспечить бесперебойную работу нашего приложения во время загрузки модели и который также может корректно обрабатывать сбой в случае сетевой ошибки. Есть несколько способов решить эту проблему с помощью JavaScript, и этому предмету посвящена целая глава в приложениях.
В этой главе мы будем использовать асинхронные функции для загрузки моделей и предположим, что вы хоть немного с ними знакомы. Если это для вас в новинку или вам нужно что-то освежить, перейдите к Асинхронный JavaScript.
Плагин GLTFLoader
Чтобы загрузить файлы glTF, сначала вам нужно добавить плагин GLTFLoader в свое приложение. Это работает так же, как добавление плагина OrbitControls. Вы можете найти загрузчик в examples / jsm / loaders / GLTFLoader.js в репозитории, и мы также включили этот файл в редактор. Идите и найдите файл сейчас.
Импорт и создание экземпляра загрузчика работает следующим образом:
Вы можете использовать один экземпляр загрузчика для загрузки любого количества файлов glTF.
Методы .load и .loadAsync
Все загрузчики three.js имеют два метода загрузки файлов: старый метод .load на основе обратного вызова и новый метод .loadAsync на основе Promise. Снова обратитесь к главе A.5, где мы подробно рассматриваем разницу между этими двумя подходами. Обещания позволяют нам использовать асинхронные функции, что, в свою очередь, приводит к более чистому коду, поэтому на протяжении всей книги мы всегда будем использовать .loadAsync.
Настройте Main.js и World.js для обработки Async / Await
Ключевое слово await означает «подождите, пока модель загрузится». Если вы ранее имели дело с загрузкой моделей с помощью обратных вызовов или обещаний, то await покажется почти волшебным в своей простоте. Однако нам нужно внести несколько изменений в наш код, прежде чем мы сможем его использовать, поскольку мы можем использовать ожидание только внутри функции, которая была помечена как async:
Другая проблема в том, что мы не можем пометить конструктор как асинхронный. Распространенным решением этой проблемы является создание отдельного метода .init.
Таким образом, конструктор может обрабатывать синхронную настройку класса, как обычно, а затем метод init берет на себя асинхронную настройку. Мы будем использовать этот подход, поэтому нам нужно создать новый метод World.init.
Теперь добавьте в World пустой метод .init и не забудьте пометить его как асинхронный. Такое разделение настройки на синхронный и асинхронный этапы дает нам полный контроль над настройкой нашего приложения. На синхронном этапе мы создадим все, что не зависит от загруженных ресурсов, а на асинхронном этапе мы создадим все, что делает.
Кто что может рассказать о специфике работы?) Пнятно, что затекстурил, выбрал в сабстансе, как gfltf и выгрузил ( и опять везде пишут рекомендации по 1024 х1024 px. но некоторые выгружают 2048х2048?. Вопрос, что дальше делать и как проверить затекстуренное? Залить на фейсбук и покрутить?) или может еслть прогграммы для этого?
зы. Соррян за тупые вопросы)
Разобрался. Можно удалить!
Разобрался. Можно удалить!
Поделись с народом раз разобрался)
Разобрался. Можно удалить! Поделись с народом раз разобрался)Так особо и нечего рассказывать.
1) Делаешь модель хайполи
2) птм делаешь мид поли или лоуполи взависимости от задачи. (пункты 1-2 можно варировать)
3) подготавливаешь так, чтобы тексель был на требуемом уровне (развертку подготавливаешь) При необходимости разбиваешь на несколько сетов, чтобы удовлетворить требования
4) Закидываешь в сабс - запекаешь и текстуришь
5) выгружаешь текстуры как GLTf
6) Перегоняешь png в jpeg (чтобы уменьшить вес (кроме опасити)) или удаляешь ненужное
6) закидываешь на любой сайт для GLTF (есть онлайн сервисы) где можно покрутить и проверить свое
зы. есть определенные требования к GLtf формату по весу и текстурам инфу можно найти на просторах интернета
Всем добрый день.
Нужен совет человека с опытом подготовки моделей в glb-формате, сам чё-то в лёгком тупике.
Подготавливаю модели мебели для онлайн-крутилок. Схема работы такая:
1. Моделлинг, текстуринг, виз в максе.
2. Экспорт модели в Substance Painter, настройка материалов, экспорт сетов текстур.
3. Настройка материалов в максе уже с новыми текстурами. Использую Physical Material, текстуры - диффуз, раффнесс, бамп, металлик для металлов.
4. Экспорт из макса в glb с помощью Babylon File Exporter.
Сделал таким методом уже достаточно много моделей, проблем не возникало. И вот вдруг началось какое-то мракобесие с тканями - при загрузке на сайт ткани выглядят как лакированная кожа.
Такое чувство, что не работает текстура в рафнесс. Но, все остальные материалы кроме тканей показываются корректно.
Никак не пойму, в чём причина, и на чьей стороне вообще ошибка - у меня при экспорте что-то не так делается, или на сайте заказчика что-то не так загружается.
Из странностей - если в это же окно на сайте загрузить одну из старых моделей, всё работает как надо. Все материалы в максе настраиваются одинаково - просто подцепляю набор текстур в нужные слоты на Physical Material, но при этом ткани глючат, а например дерево отображается норм. Ещё более странно то, что постель на кроватях одна и та же - она просто кочует из модели в модель с теми же самыми текстурами, и раньше она отображалась нормально, теперь выглядит как лакированная.
Буду рад любой наводке, которая поможет отыскать "вредителя" в процессе работы, идентифицировать его и принять меры к устранению. Если есть опытный человек, готовый решить этот вопрос за деньги, тоже буду рад, ибо моего опыта явно не хватает, чтобы понять эту внезапную аномалию.
Экспорт из макса в glb с помощью Babylon File Exporter.возможно баг экспортера.такое бывает
попробуйте на других сервисах проверить модель
возможно баг экспортера.такое бывает
попробуйте на других сервисах проверить модель
Но в то же окно загруженная старая модель работает, значит у меня что-то поменялось. А вот куда именно смотреть, ума не приложу.
Цитата Zeeed3D:
возможно баг экспортера.такое бывает
попробуйте на других сервисах проверить модель
Но в то же окно загруженная старая модель работает, значит у меня что-то поменялось. А вот куда именно смотреть, ума не приложу.
Всем добрый день.
Нужен совет человека с опытом подготовки моделей в glb-формате, сам чё-то в лёгком тупике.
Подготавливаю модели мебели для онлайн-крутилок. Схема работы такая:
1. Моделлинг, текстуринг, виз в максе.
2. Экспорт модели в Substance Painter, настройка материалов, экспорт сетов текстур.
3. Настройка материалов в максе уже с новыми текстурами. Использую Physical Material, текстуры - диффуз, раффнесс, бамп, металлик для металлов.
4. Экспорт из макса в glb с помощью Babylon File Exporter.
Сделал таким методом уже достаточно много моделей, проблем не возникало. И вот вдруг началось какое-то мракобесие с тканями - при загрузке на сайт ткани выглядят как лакированная кожа.
Такое чувство, что не работает текстура в рафнесс. Но, все остальные материалы кроме тканей показываются корректно.
Никак не пойму, в чём причина, и на чьей стороне вообще ошибка - у меня при экспорте что-то не так делается, или на сайте заказчика что-то не так загружается.
Из странностей - если в это же окно на сайте загрузить одну из старых моделей, всё работает как надо. Все материалы в максе настраиваются одинаково - просто подцепляю набор текстур в нужные слоты на Physical Material, но при этом ткани глючат, а например дерево отображается норм. Ещё более странно то, что постель на кроватях одна и та же - она просто кочует из модели в модель с теми же самыми текстурами, и раньше она отображалась нормально, теперь выглядит как лакированная.
Буду рад любой наводке, которая поможет отыскать "вредителя" в процессе работы, идентифицировать его и принять меры к устранению. Если есть опытный человек, готовый решить этот вопрос за деньги, тоже буду рад, ибо моего опыта явно не хватает, чтобы понять эту внезапную аномалию.
Я обычно сразу с сабстенса выгружаю, там же есть специальный пресет для GLTF
А вообще, достаточно смешно, что заказчик требует картинку как на рендере в GLTF. Такое не бывает, т.к. текстуры сильно ужимаются и ограничения на 3,0-3,5 мб по весу. Но при этом еще на маты надо разбить и соответсвенно не которые карты всего 512 px.
Читайте также: