glTF 2.0¶
Орієнтир – Reference
Категорія – Category: | |
---|---|
Імпорт-Експорт – Import-Export | |
Меню – Menu: |
Використання – 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
Імпортовані Матеріали – 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.
Якщо вузол Текстура Зображення – Image Texture виявлено під’єднаним до уводу Базовий Колір – Base Color, то це зображення буде вжите як базовий колір 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.
Запечена Загорода Оточення – Baked Ambient Occlusion¶
glTF здатний зберігати розкладку запеченої загороди оточення. Поточно не існує впорядкування вузлів, що спричиняє використання Blender’ом такої розкладки точно так само, як задумано у glTF. Проте, якщо експортер виявляє кастомну групу вузлів на ім’я glTF Settings
та знаходить увід на ім’я Загорода – Occlusion
на такому груповому вузлі, то він буде шукати вузол Текстура Зображення – Image Texture, прикріплений там для вживання як розкладки загороди у glTF. Цей ефект не потребує бути показаним у Blender’і, оскільки Blender має інші способи показування загороди оточення, але цей метод дозволить експортеру записати зображення загороди у glTF. Це може бути корисним для оглядачів glTF у реальному часі, особливо на платформах, де може не бути запасної потужності для обчислювання таких речей у ході рендера.
Порада
Найлегший спосіб створити кастомну групу вузлів – імпортувати наявну модель glTF, що містить розкладку загороди, таку як water bottle або іншу наявну модель. Вручну створена кастомна група вузлів також може використовуватися.
glTF зберігає загороду у каналі червоного (R
), дозволяючи факультативно співволодіти тим самим зображенням каналам шорсткості та металічності.
Порада
Рушія рендера 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.
Порада
Рушія рендера Cycles має панель Bake, що може використовуватися для запікання розкладок нормалей з простором тангенса з майже будь-якого іншого упорядкування вузлів вектора нормалі. Перемкніть тип Запікання – Bake на Нормаль – Normal. Зберігайте устави стандартного простору (простір: Тангенс – Tangent, R: +X, G: +Y, B: +Z) при використанні цієї панелі запікання для glTF. Результатне запечене зображення може бути збережено та під’єднано у новий матеріал, використовуючи вузол Розкладка Нормалей – Normal Map, як описано вище, дозволяючи його експортувати коректно.
Дивіться детальніше тут: Cycles Render Baking
Емісійне – Emissive¶
Вузол Текстура Зображення – Image Texture може бути під’єднано до відтінювального вузла Емісія – Emission, і факультативно комбіновано з властивостями з вузла Принципове BSDF – Principled BSDF за допомогою вузла Додаваний Шейдер – Add Shader.
Якщо експортер glTF знаходить зображення, під’єднане до вузла шейдерів Емісія – Emission, то він експортуватиме таке зображення як емісійну текстуру матеріалу glTF.
Примітка
Увід Emission вузла Principled BSDF ще не підтримується цим експортером. Це може змінитися у майбутній версії.
Двобічне / Відкид Тилу – Double Sided / Backface Culling¶
Для матеріалів, де лише передні грані будуть видимі, вмикайте Backface Culling у панелі Settings матеріалу для Eevee. При використовуванні інших рушіїв (Cycles, Workbench) ви можете тимчасово перемикатися на Eevee для конфігурування цієї устави, потім перемикатися назад.
Залишайте цей стяг вимкненим для двобічних матеріалів.
Режими Змішання – Blend Modes¶
Увід Базовий Колір – Base Color може факультативно подавати значення альфа. Як ці значення обробляються в glTF, залежить від вибраного режиму змішання.
При обраному рушії рендера Eevee, кожен матеріал має Режим Змішання – Blend Mode на панелі устав матеріалу. Вживайте цю уставу для визначення того, як значення альфа з каналу Базовий Колір – Base Color обробляються у glTF. Три устави підтримуються glTF:
- Безпрозоро – Opaque
- Значення альфа ігноруються (стандарт).
- Змішання Альфа – Alpha Blend
- Нижчі значення альфа спричиняють змішування з об’єктами фону.
- Відсік Альфа – Alpha Clip
- Значення альфа, нижче устави Поріг Відсіку – Clip Threshold, спричинятимуть, що частини матеріалу не будуть рендерені взагалі. Все інше рендериться як безпрозоре.
Примітка
Знайте, що прозорість (або режим Змішання Альфа – 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 повинні бути рівними (однорідне масштабування).
Порада
Ці вузли є факультативними. Не всі зчитувачі glTF підтримують багато розкладок UV або трансформ текстури.
Фактори – Factors¶
Будь-які вузли Текстура Зображення – Image Texture можуть факультативно множиться на сталий колір чи скаляр. Вони будуть записані як фактори у файлі glTF, котрі є числами, що множаться із визначеними текстурами зображення. Вони не є поширеними.
Приклад – Example¶
Одиничний матеріал може використовувати все, зазначене вище, одночасно, за бажанням. Ця ілюстрація показує типову структуру вузлів, коли різні, зазначені вище, опції застосовуються одночасно:
Розширення – 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».
Анімації смужок НЛА будуть експортуватися, якщо опція
, є вибраною (увімкнена стандартно). Всі анімації 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 – Відтінювання
- Як нормалі обчислюються під час імпорту.
Експорт – Export¶
General Tab – Вкладка «Загальн延
- Format – Формат
- Дивіться: File Format Variations
- Selected Objects – Вибрані Об’єкти
- Експортуються лише вибрані об’єкти.
- Apply Modifiers – Застосувати Модифікатори
- Застосовуються модифікатори (за винятком арматур) до об’єктів сіті.
- Y Up – Y Уверх
- Експорт вживає умовність glTF, +Y уверх.
- Кастомні Властивості – Custom Properties
- Кастомні властивості експорту як добавки glTF.
- Remember Export Settings – Пам’ятати Устави Експорту
- Зберігаються устави експорту у файл Blender, щоб вони викликалися наступного разу, коли цей файл відкривається.
- Copyright – Авторське право
- Юридичні права та умови для моделі.
Meshes Tab – Вкладка «Сіті»¶
- UVs – UVи
- Експортуються UVи (координати текстур) із сітями.
- Normals – Нормалі
- Експортуються нормалі вершин із сітями.
- Tangents – Тангенси
- Експортуються тангенси вершин із сітями.
- Vertex Colors – Кольори Вершин
- Експортуються кольори вершин із сітями.
- Матеріали – Materials
- Експортуються матеріали.
- Draco mesh compression – Стиснення сіті Draco
- Стискаються сіті за допомогою Google Draco.
- Compression level – Рівень стиснення
- Вище стиснення призводить до повільнішого закодовування та розкодовування.
- Position quantization bits – Квантування бітів позицій
- Вищі значення призводять до кращого стиснення.
- Normal quantization bits – Квантування бітів нормалей
- Вищі значення призводять до кращого стиснення.
- Texcoord quantization bits – Квантування бітів координат текстур
- Вищі значення призводять до кращого стиснення.
Objects Tab – «Вкладка Об’єкт軶
- Камери – Cameras
- Експортуються камери.
- Punctual Lights – Пунктуальні Освітлювачі
- Експортуються направлені, точкові та прожекторні освітлювачі. Використовує glTF розширення
KHR_lights_punctual
.
Animation Tab – Вкладка «Анімація»¶
- Use Current Frame – Вжити Поточний Кадр
- Експортуються сцена у поточному кадрі анімації.
- Animations – Анімації
- Експортує активні дії та стежки НЛА як анімації glTF.
- Limit to Playback Range – Лімітувати Діапазоном Програвання
- Обрізає анімації відповідно до вибраного діапазону програвання.
- Sampling Rate – Частота Відбору
- Як часто обчислювати анімовані значення (у кадрах).
- Always Sample Animations – Завжди Вибірка Анімацій
- Застосовується відбір до всіх анімацій.
- NLA Strips – Смужки НЛА
- Чи експортувати анімації смужок НЛА.
- Skinning – Покривання
- Експортуються дані покривання (арматура).
- Bake Skinning Constraints – Запекти Примуси Покривання
- Застосовуються примуси покривання до арматур.
- Include All Bone Influences – Включити Усі Впливи Кісток
- Дозволяються впливи суглобів на >4 вершин. Моделі можуть показуватися некоректно у багатьох оглядачах.
- Shape Keys – Ключі Форм
- Експортуються ключі форм (цілі морфа).
- Shape Key Normals – Ключі Форм із Нормалями
- Експортуються нормалі вершин із ключами форм (цілі морфа).
- Shape Key Tangents – Ключі Форм із Тангенсами
- Експортуються тангенси вершин із ключами форм (цілі морфа).
Зроблення внеску – Contributing¶
Цей імпортер/експортер розробляється через репозиторій glTF-Blender-IO repository, де ви можете подавати звіти про вади, пропонувати запити про функції або вносити код.
Обговорення та розроблення власне формату glTF 2.0 відбувається у групі Khronos Group glTF GitHub repository, і відгук там вітається.