glTF 2.0

Орієнтир – Reference

Категорія – Category

Імпорт-Експорт – Import-Export

Меню – Menu

«Файл > Імпорт/Експорт > glTF 2.0 (.glb, .gltf)» – File ‣ Import/Export ‣ glTF 2.0 (.glb, .gltf)

Використання – Usage

glTF™ (GL Transmission Format) використовується для передачі та завантаження 3D моделей у веб та нативні застосунки. glTF зменшує розмір 3D моделей час робочий цикл обробляння, необхідні для розпакування та рендера цих моделей. Цей формат зазвичай використовується у веб та має підтримку у різних 3D рушіях, таких як Unity3D, Unreal Engine 4 та Godot.

Цей імпортер/експортер підтримує наступні функції glTF 2.0:

  • Сіті – Meshes

  • Матеріали – Materials (Principled BSDF) та Безвідтінковість – Shadeless (Unlit)

  • Текстури – Textures

  • Камери – Cameras

  • Пунктуальні освітлювачі – Punctual lights (точковий – point, прожектор – spot та направлений – directional)

  • Анімація – Animation (ключкадр – keyframe, ключ форми – shape key та покривання – skinning)

Сіті – Meshes

Внутрішня структура glTF імітує буфери пам’яті, поширено використовувані чіпами графіки при рендерингу у реальному часі, таким чином, що активи можуть бути випущені для настільних, веб або мобільних клієнтів та відразу показуватися з мінімальним оброблянням. У результаті, чотирибічники та N-бічники автоматично конвертуються у трикутники при експортуванні у glTF. Переривчасті UV та плоско відтінені ребра можуть призводити до помірно вищих рахунків вершин у glTF у порівнянні з Blender’ом, оскільки такі вершини є відокремлені для експорту. Аналогічно, криві та інші не-сітьові дані не зберігаться і повинні бути конвертовані у сіті перед експортом.

Матеріали – Materials

Ядро системи матеріалів у glTF підтримує робпотік типу металічність/шорсткість фізично базованого рендерингу – PBR з наступними каналами інформації:

  • Базовий Колір – Base Color

  • Металік – Metallic

  • Шорсткість – Roughness

  • Запечена Загорода Оточення – Baked Ambient Occlusion

  • Розкладка Нормалей – Normal Map

  • Емісійне – Emissive

  • Clearcoat (requires KHR_materials_clearcoat)

../../_images/addons_import-export_scene-gltf2_material-channels.jpg

Приклад різноманітних розкладок зображення, доступних у базовому форматі glTF 2.0. Це модель зразка пляшки для води – water bottle sample model, показана поруч з фрагментами різноманітних розкладок її зображення.

Імпортовані Матеріали – Imported Materials

Система матеріалів glTF відрізняється від власних матеріалів Blender’а. Коли файл glTF імпортується, то цей додаток сконструює набір вузлів Blender’а для реплікації кожного матеріалу glTF якомога точно.

Цей імпортер підтримує матеріали типів Металічність/Шорсткість – Metal/Rough PBR (core glTF), Бліковість/Глянсовість – Spec/Gloss PBR (KHR_materials_pbrSpecularGlossiness) та Безвідтінковість – Shadeless (KHR_materials_unlit) materials.

Порада

Досліджування результату процесу імпорту матеріалу є хорошим способом побачити приклади типів матеріалових вузлів та устав, що можуть бути експортовані у glTF.

Експортовані Матеріали – Exported Materials

Експортер підтримує матеріали типів Металічність/Шорсткість – Metal/Rough PBR (core glTF) та Безвідтінковість – Shadeless (KHR_materials_unlit). Він буде конструювати матеріал glTF, базуючись на вузлах, які він розпізнає у матеріалі Blender’а. Процес експорту матеріалу обробляє устави, описані нижче.

Примітка

При використанні матеріалами текстур зображення, glTF вимагає, щоб такі зображення були у форматі PNG або JPEG. Цей додаток автоматично конвертує зображення з інших форматів, збільшуючи час експорту.

Порада

Для створення безвідтінкових матеріалів – Shadeless (Unlit), використовуйте тип матеріалу Фон – Background.

Базовий Колір – Base Color

Базовий колір glTF визначається пошуком уводу Базовий Колір – Base Color на вузлі Принципове BSDF – Principled BSDF node. Якщо цей увід непід’єднаний, то стандартний колір цього уводу (поле кольору біля цього непід’єднаного роз’єму) використовується як Базовий Колір – Base Color для матеріалу glTF.

../../_images/addons_import-export_scene-gltf2_material-base-color-solid-green.png

Суцільний базовий колір може визначатися безпосередньо на вузлі.

Якщо вузол Текстура Зображення – Image Texture виявлено під’єднаним до уводу Базовий Колір – Base Color, то це зображення буде вжите як базовий колір glTF.

../../_images/addons_import-export_scene-gltf2_material-base-color-image-hookup.png

Зображення використовується як базовий колір glTF.

Металік та Шорсткість – Metallic and Roughness

Ці значення читаються з вузла Принципове BSDF – Principled BSDF. Якщо обидва ці уводи непід’єднані, то це вузол показуватиме повзунки для керування їх відповідними значеннями між 0.0 та 1.0, і ці значення будуть скопійовані у glTF.

При використанні зображення glTF очікує, що значення металік будуть закодовані у каналі синього (B), а шорсткість буде закодована у каналі зеленого (G) цього ж зображення. Якщо зображення з’єднані з вузлом Blender таким чином, що не відповідає цій умовності, то цей додаток може пробувати адаптувати зображення до коректної форми під час експортування (зі збільшеним часом експорту).

У дереві вузлів Blender рекомендується використовувати вузол Відокремлення RGB – Separate RGB для відокремлення каналів з вузла Текстура Зображення – Image Texture, і з’єднує канал зеленого (G) із Шорсткість – Roughness, а синього (B) з Металік – Metallic. Експортер glTF розпізнає це упорядкування як узгоджування зі стандартом glTF, і це дозволить йому просто копіювати цю текстуру зображення у файл glTF під час експорту.

Вузол Текстура Зображення – Image Texture для цього повинен мати уставу Простір Кольорів – Color Space, установлену як Non-Color.

../../_images/addons_import-export_scene-gltf2_material-metal-rough.png

Зображення металічності/шорсткості, під’єднане таким чином, узгоджене зі стандартом glTF, дозволяє йому використовуватися дослівно всередині експортованого файлу glTF.

Запечена Загорода Оточення – Baked Ambient Occlusion

glTF здатний зберігати розкладку запеченої загороди оточення. Поточно не існує впорядкування вузлів, що спричиняє використання Blender’ом такої розкладки точно так само, як задумано у glTF. Проте, якщо експортер виявляє кастомну групу вузлів на ім’я glTF Settings та знаходить увід на ім’я Загорода – Occlusion на такому груповому вузлі, то він буде шукати вузол Текстура Зображення – Image Texture, прикріплений там для вживання як розкладки загороди у glTF. Цей ефект не потребує бути показаним у Blender’і, оскільки Blender має інші способи показування загороди оточення, але цей метод дозволить експортеру записати зображення загороди у glTF. Це може бути корисним для оглядачів glTF у реальному часі, особливо на платформах, де може не бути запасної потужності для обчислювання таких речей у ході рендера.

../../_images/addons_import-export_scene-gltf2_material-occlusion-only.png

Попередньо запечена розкладка загороди оточення, під’єднана до вузла, що не рендериться, але буде експортуватися у glTF.

Порада

Найлегший спосіб створити кастомну групу вузлів – імпортувати наявну модель glTF, що містить розкладку загороди, таку як water bottle або іншу наявну модель. Вручну створена кастомна група вузлів також може використовуватися.

glTF зберігає загороду у каналі червоного (R), дозволяючи факультативно співволодіти тим самим зображенням каналам шорсткості та металічності.

../../_images/addons_import-export_scene-gltf2_material-orm-hookup.png

Ця комбінація вузлів імітує спосіб, яким glTF пакує значення загороди, шорсткості та металічності в єдине зображення.

Порада

Рушія рендера Cycles має панель Bake, що може використовуватися для запікання розкладок загороди оточення. Результатне зображення може зберігатися та під’єднуватися безпосередньо до вузла glTF Settings.

Розкладка Нормалей – Normal Map

Для використання розкладки нормалей у glTF, з’єднується вивід кольору вузла Текстура Зображення – Image Texture з уводом кольору вузла Розкладка Нормалей – Normal Map, а потім з’єднується вивід нормалі вузла Розкладка Нормалей – Normal Map з уводом нормалі вузла Принципове BSDF – Principled BSDF. Вузол Image Texture для цього повинен мати його властивість Color Space, установлену як Non-Color.

Вузол Розкладка Нормалей – Normal Map повинен залишатися зі своєю стандартною властивістю Простір Тангенса – Tangent Space, оскільки це єдиний тип розкладки нормалей, поточно підтримуваний у glTF. Сила розкладки нормалей може наладнуватися на цьому вузлі. Експортер не експортує ці вузли безпосередньо, а використовуватиме їх для знаходження коректного зображення та копіюватиме уставу сили у glTF.

../../_images/addons_import-export_scene-gltf2_material-normal.png

Зображення розкладки нормалей під’єднується таким чином, що експортер виявить його та скопіює у файл glTF.

Порада

Рушія рендера Cycles має панель Bake, що може використовуватися для запікання розкладок нормалей з простором тангенса з майже будь-якого іншого упорядкування вузлів вектора нормалі. Перемкніть тип Запікання – Bake на Нормаль – Normal. Зберігайте устави стандартного простору (простір: Тангенс – Tangent, R: +X, G: +Y, B: +Z) при використанні цієї панелі запікання для glTF. Результатне запечене зображення може бути збережено та під’єднано у новий матеріал, використовуючи вузол Розкладка Нормалей – Normal Map, як описано вище, дозволяючи його експортувати коректно.

Дивіться детальніше тут: Cycles Render Baking

Емісійне – Emissive

Вузол Image Texture може бути з’єднаний з уводом Emission на вузлі Principled BSDF, щоб включити емісійну розкладку з матеріалом glTF. Альтернативно, вузол Image Texture може бути з’єднаний з вузлом шейдерів Emission та факультативно комбінований з властивостями з вузла Principled BSDF за допомогою вузла Add Shader.

Якщо емісійна розкладка у матеріалі одна, то найкраще установити стандарт Base Color як чорний, а стандарт Roughness як 1.0. Це мінімізує вплив інших каналів, якщо вони не потрібні.

../../_images/addons_import-export_scene-gltf2_material-emissive.png

Це упорядкування підтримується для зворотної сумісності. Простіше використовувати вузол Principled BSDF напряму.

Двобічне / Відкид Тилу – Double-Sided / Backface Culling

Для матеріалів, де лише передні грані будуть видимі, вмикайте Backface Culling у панелі Settings матеріалу для Eevee. При використовуванні інших рушіїв (Cycles, Workbench) ви можете тимчасово перемикатися на Eevee для конфігурування цієї устави, потім перемикатися назад.

Leave this box unchecked for double-sided materials.

../../_images/addons_import-export_scene-gltf2_material-backface-culling.png

Інверсія цієї устави керується стягом DoubleSided для glTF.

Режими Змішання – Blend Modes

Увід Базовий Колір – Base Color може факультативно подавати значення альфа. Як ці значення обробляються в glTF, залежить від вибраного режиму змішання.

При обраному рушії рендера Eevee, кожен матеріал має Режим Змішання – Blend Mode на панелі устав матеріалу. Вживайте цю уставу для визначення того, як значення альфа з каналу Базовий Колір – Base Color обробляються у glTF. Три устави підтримуються glTF:

Безпрозоро – Opaque

Значення альфа ігноруються.

Змішання Альфа – Alpha Blend

Нижчі значення альфа спричиняють змішування з об’єктами фону.

Відсік Альфа – Alpha Clip

Значення альфа, нижче устави Поріг Відсіку – Clip Threshold, спричинятимуть, що частини матеріалу не будуть рендерені взагалі. Все інше рендериться як безпрозоре.

../../_images/addons_import-export_scene-gltf2_material-alpha-blend.png

При обраному рушії Eevee режими змішання матеріалу можна конфігурувати.

Примітка

Знайте, що прозорість (або режим Змішання Альфа – Alpha Blend) є складним для реально-часових рушіїв для рендера і може поводитися неочікувано після експорту. Де це можливо, вживайте режим Відсік Альфа – Alpha Clip натомість, або помістіть полігони з Безпрозоро – Opaque позаду лише одиничного шару багатобічників зі Змішання Альфа – Alpha Blend.

Розкладання UV – UV Mapping

Контроль над вибором розкладки UV та трансформації доступні шляхом з’єднання вузла Розкладка UV – UV Map та вузла Розкладання – Mapping із будь-яким вузлом Текстура Зображення – Image Texture.

Устави з вузла Mapping експортуються, використовуючи розширення glTF іменоване як KHR_texture_transform. Там є вибір типу розкладання у верхній частині. Point – «Вказування» є рекомендованим типом для експорту. Texture – Текстура та Vector – «Вектор» також підтримуються. Підтримуваними зсувами є:

  • Локація – Location - X та Y

  • Обертання – Rotation - Z лише

  • Масштаб – Scale - X та Y

Для типу Текстура – Texture, Масштаб – Scale X та Y повинні бути рівними (однорідне масштабування).

../../_images/addons_import-export_scene-gltf2_material-mapping.png

Обміркований вибір розкладання UV.

Порада

Ці вузли є факультативними. Не всі зчитувачі glTF підтримують багато розкладок UV або трансформ текстури.

Фактори – Factors

Будь-які вузли Текстура Зображення – Image Texture можуть факультативно множиться на сталий колір чи скаляр. Вони будуть записані як фактори у файлі glTF, котрі є числами, що множаться із визначеними текстурами зображення. Вони не є поширеними.

Приклад – Example

Одиничний матеріал може використовувати все, зазначене вище, одночасно, за бажанням. Ця ілюстрація показує типову структуру вузлів, коли різні, зазначені вище, опції застосовуються одночасно:

../../_images/addons_import-export_scene-gltf2_material-principled.png

Матеріал на основі Принципове BSDF – Principled BSDF з емісійною текстурою.

Розширення – Extensions

Базовий формат glTF 2.0 може розширятися додатковою інформацією, за допомогою розширень glTF. Це дозволяє цьому формату файлів тримати деталі, що не вважалися універсальними під час першої публікації. Не всі зчитувачі glTF підтримують всі розширення, але деякі є досить поширеними.

Певні функціональні можливості Blender’а можуть експортуватися у glTF лише через ці розширення. Наступні glTF 2.0 extensions підтримуються безпосередньо цим додатком:

Імпорт – Import

  • KHR_materials_pbrSpecularGlossiness

  • KHR_lights_punctual

  • KHR_materials_unlit

  • KHR_texture_transform

Експорт – Export

  • KHR_draco_mesh_compression

  • KHR_lights_punctual

  • KHR_materials_unlit

  • KHR_texture_transform

Анімація – Animation

glTF дозволяє багато анімацій для кожного файлу, з анімаціями, націленими на конкретні об’єкти під час експорту. Щоб переконатися, що анімація включена, або (a) зробіть її активною Дією – Action на об’єкті, або (b) створіть стежку з однією смужкою НЛА, або (c) запасіть її дію.

Підтримуване – Supported

Лише певні типи анімації підтримуються:

  • Ключкадрове – Keyframe (пересування, обертання, масштабування)

  • Ключі форм – Shape keys

  • Арматури / покривання – Armatures / skinning

Анімація інших властивостей, як освітлювачі або матеріали, буде проігнорована.

Смужка NLA Strip animation складається з кількох дій на кількох об’єктах, що повинні грати разом. Для створення смужки НЛА анімації з іменем «My Animation» штовхніть дію, що повинна гратися кожного об’єкта на стежку НЛА для такого об’єкта з іменем «My Animation».

../../_images/addons_import-export_scene-gltf2_nla-strip-animation-example.png

Буде експортуватися як анімація під назвою «My Animation» з гранням ConeAction на Конусі та гранням CubeAction на Кубі.

Анімації смужок НЛА будуть експортуватися, якщо опція Animation ‣ Group by NLA Track, є вибраною (увімкнена стандартно). Всі анімації glTF імпортуються анімації смужки НЛА.

Якщо опція вимкнена, то дії смужки НЛА з Blender’а будуть ігноруватися. Лише активна дія кожного з об’єктів буде враховуватися та зливатися в єдину анімацію glTF.

Кастомні Властивості – Custom Properties

Кастомні властивості на більшості об’єктів зберігаться в експорті/імпорті glTF, і можуть використовуватися для визначених користувачем цілей.

Варіації Формату Файлу – File Format Variations

Специфікація glTF визначає різні можливі способи зберігання даних. Імпортер обробляє всі ці способи. Експортер попросить користувача вибрати одну з наступних форм:

Двійково – glTF Binary (.glb)

Це продукує єдиний файл .glb з усіма даними сіті, текстурами зображення та пов’язаною інформацією, запакованими в одиничний двійковий файл.

Порада

Використання єдиного файлу полегшує співволодіння та копіювання моделі на інші системи та сервіси.

Відокремлено – glTF Separate (.gltf + .bin + текстури)

Це продукує у форматі JSON текст-базований файл .gltf, що описує загальну структуру, разом із файлом .bin, що містить дані сітей та векторів, а також факультативно ряд файлів у форматах .png або .jpg, що містять текстури зображення, на які посилається цей файл .gltf.

Порада

Наявність асортименту окремих файлів значно полегшує для користувача можливість повернутися та редагувати будь-які JSON або зображення після того, як експорт завершено.

Примітка

Знайте, що спільне використання цього формату вимагає спільного використання всіх цих окремих файлів разом як групи.

Вбудовано – glTF Embedded (.gltf)

Це продукує у форматі JSON текст-базований файл .gltf, з усіма даними сітей та даними зображень, закодованими (використовуючи Base64) у цьому файлі. Ця форма корисна, якщо актив повинен спільно використовуватися за допомогою з’єднання на основі лише звичайного тексту.

Попередження

Це найменш ефективна з доступних форм, і повинна вживатися лише тоді, коли це необхідно.

Властивості – Properties

Імпорт – Import

Упакувати Зображення – Pack Images

Запаковуються всі зображення у файл blend.

Відтінювання – Shading

Як нормалі обчислюються під час імпорту.

Guess Original Bind Pose – Угадати Оригінальну Позу Прив’язання

Визначає позу для кісток (та, отже, покривних сітей) у режимі Edit Mode. Коли увімкнено, намагається вгадати позу, що була використана для обчислення матриць інверсного прив’язання.

Bone Direction – Напрям Кістки

Змінює евристику, яку імпортер використовує для вирішення, де розмістити верхівки кісток. Зауважте, що устава Fortune може спричиняти неточності у моделях, що використовують не-рівномірне масштабування. Інакше це є суто естетично.

Експорт – Export

Формат – Format

Дивіться: File Format Variations.

Текстури – Textures

Тека для розміщення файлів текстур. Відносно до gltf-файлу.

Авторське право – Copyright

Юридичні права та умови для моделі.

Пам’ятати Устави Експорту – Remember Export Settings

Зберігаються устави експорту цьому blend-файлі, щоб вони були викликані наступного разу, коли цей файл відкриється.

Include – Включення

Вибрані Об’єкти – Selected Objects

Експортуються лише вибрані об’єкти.

Кастомні Властивості – Custom Properties

Кастомні властивості експорту як добавки glTF.

Камери – Cameras

Експортуються камери.

Пунктуальні Освітлювачі – Punctual Lights

Експортуються направлені, точкові та прожекторні освітлювачі. Використовує glTF розширення KHR_lights_punctual.

Трансформа – Transform

Y Уверх – Y Up

Експорт вживає умовність glTF, +Y уверх.

Геометрія – Geometry

Застосувати Модифікатори – Apply Modifiers

Застосовуються модифікатори (за винятком арматур) до об’єктів сіті.

UVи – UVs

Експортуються UVи (координати текстур) із сітями.

Нормалі – Normals

Експортуються нормалі вершин із сітями.

Тангенси – Tangents

Експортуються тангенси вершин із сітями.

Кольори Вершин – Vertex Colors

Експортуються кольори вершин із сітями.

Матеріали – Materials

Експортуються матеріали.

Зображення – Images

Формат виводу для зображень. PNG є без втрат та загалом переважний, але JPEG може бути бажаним для веб застосунків через менший розмір файлу.

Стиснення – Compression

Стискаються сіті за допомогою Google Draco.

Compression Level – Рівень Стиснення

Вище стиснення призводить до повільнішого закодовування та розкодовування.

Quantization Position – Позиція Квантизації

Вищі значення призводять до кращого стиснення.

Нормаль – Normal

Вищі значення призводять до кращого стиснення.

Координати Текстур – Texture Coordinates

Вищі значення призводять до кращого стиснення.

Узагальнено – Generic

Вищі значення призводять до кращого стиснення.

Анімація – Animation

Вжити Поточний Кадр – Use Current Frame

Експортуються сцена у поточному кадрі анімації.

Анімація – Animation

Експортує активні дії та стежки НЛА як анімації glTF.

Лімітувати Діапазоном Програвання – Limit to Playback Range

Обрізає анімації відповідно до вибраного діапазону програвання.

Частота Відбору – Sampling Rate

Як часто обчислювати анімовані значення (у кадрах).

Завжди Відбирати Анімації – Always Sample Animations

Застосовується відбір до всіх анімацій.

Group by NLA Track – Групувати за Стежкою НЛА

Чи експортувати анімації смужок НЛА.

Export Deformation Bones Only – Експорт Лише Деформувальних Кісток

Експортуються лише деформаційні кістки (та потрібні кістки для ієрархії).

Ключі Форм – Shape Keys

Експортуються ключі форм (цілі морфа).

Ключі Форм із Нормалями – Shape Key Normals

Експортуються нормалі вершин із ключами форм (цілі морфа).

Ключі Форм із Тангенсами – Shape Key Tangents

Експортуються тангенси вершин із ключами форм (цілі морфа).

Покривання – Skinning

Експортуються дані покривання (арматура).

Включити Всі Впливи Кісток – Include All Bone Influences

Дозволяються більше, ніж 4 впливи на вершину суглоба. Моделі можуть показуватися некоректно у багатьох оглядачах.

Зроблення внеску – Contributing

Цей імпортер/експортер розробляється через репозиторій glTF-Blender-IO repository, де ви можете подавати звіти про вади, пропонувати запити про функції або вносити код.

Обговорення та розроблення власне формату glTF 2.0 відбувається у групі Khronos Group glTF GitHub repository, і відгук там вітається.