glTF 2.0¶
Орієнтир – Reference
- Категорія – Category
Імпорт-Експорт – Import-Export
- Меню – Menu
«Файл > Імпорт/Експорт > 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)
Extensions (listed below)
Extras (custom properties)
Анімація – Animation (ключкадр – keyframe, ключ форми – shape key та покривання – skinning)
Сіті – Meshes¶
Внутрішня структура glTF імітує буфери пам’яті, поширено використовувані чіпами графіки при рендерингу у реальному часі, таким чином, що активи можуть бути випущені для настільних, веб або мобільних клієнтів та відразу показуватися з мінімальним оброблянням. У результаті, чотирибічники та N-бічники автоматично конвертуються у трикутники при експортуванні у glTF. Переривчасті UV та плоско відтінені ребра можуть призводити до помірно вищих рахунків вершин у glTF у порівнянні з Blender’ом, оскільки такі вершини є відокремлені для експорту. Аналогічно, криві та інші не-сітьові дані не зберігаться і повинні бути конвертовані у сіті перед експортом.
Матеріали – Materials¶
Ядро системи матеріалів у glTF підтримує робпотік типу металічність/шорсткість фізично базованого рендерингу – PBR з наступними каналами інформації:
Базовий Колір – Base Color
Металік – Metallic
Шорсткість – Roughness
Запечена Загорода Оточення – Baked Ambient Occlusion
Normal Map (tangent space, +Y up)
Емісійне – Emissive
Some additional material properties or types of materials can be expressed using glTF extensions:
Clearcoat, Clearcoat Roughness, Clearcoat Normal (uses
KHR_materials_clearcoat
)Transmission (uses
KHR_materials_transmission
)«Shadeless» materials (uses
KHR_materials_unlit
)
Імпортовані Матеріали – 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. Цей додаток автоматично конвертує зображення з інших форматів, збільшуючи час експорту.
Базовий Колір – 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 на вузлі Principled BSDF, щоб включити емісійну розкладку з матеріалом glTF. Альтернативно, вузол Image Texture може бути з’єднаний з вузлом шейдерів Emission та факультативно комбінований з властивостями з вузла Principled BSDF за допомогою вузла Add Shader.
Якщо емісійна розкладка у матеріалі одна, то найкраще установити стандарт Base Color як чорний, а стандарт Roughness як 1.0. Це мінімізує вплив інших каналів, якщо вони не потрібні.
Clearcoat¶
When the Clearcoat input on the Principled BSDF node has a non-zero default value or
Image Texture node connected, the KHR_materials_clearcoat
glTF extension will be
included in the export. This extension will also include a value or Image Texture
from the Clearcoat Roughness input if available.
If Image Textures are used, glTF requires that the clearcoat values be written to
the red (R
) channel, and Clearcoat Roughness to the green (G
) channel.
If monochrome images are connected, the exporter will remap them to these color channels.
The Clearcoat Normal input accepts the same kinds of inputs as the base Normal input, specifically a tangent-space normal map with +Y up, and a user-defined strength. This input can reuse the same normal map that the base material is using, or can be assigned its own normal map, or can be left disconnected for a smooth coating.
All Image Texture nodes used for clearcoat shading should have their Color Space set to Non-Color.
Transmission¶
When the Transmission input on the Principled BSDF node has a non-zero default value or
Image Texture node connected, the KHR_materials_transmission
glTF extension will be
included in the export. When a texture is used, glTF stores the values in the red (R
) channel.
The Color Space should be set to Non-Color.
Transmission is different from alpha blending, because transmission allows full-strength specular reflections. In glTF, alpha blending is intended to represent physical materials that are partially missing from the specified geometry, such as medical gauze wrap. Transmission is intended to represent physical materials that are solid but allow non-specularly-reflected light to transmit through the material, like glass.
glTF does not offer a separate «Transmission Roughness», but the material’s base roughness can be used to blur the transmission, like frosted glass.
Порада
Typically the alpha blend mode of a transmissive material should remain «Opaque», the default setting, unless the material only partially covers the specified geometry.
Примітка
In real-time engines where transmission is supported, various technical limitations in the engine may determine which parts of the scene are visible through the transmissive surface. In particular, transmissive materials may not be visible behind other transmissive materials. These limitations affect physically-based transmission, but not alpha-blended non-transmissive materials.
Попередження
Transmission is complex for real-time rendering engines to implement,
and support for the KHR_materials_transmission
glTF extension is not yet widespread.
Двобічне / Відкид Тилу – Double-Sided / Backface Culling¶
Для матеріалів, де лише передні грані будуть видимі, вмикайте Backface Culling у панелі Settings матеріалу для Eevee. При використовуванні інших рушіїв (Cycles, Workbench) ви можете тимчасово перемикатися на Eevee для конфігурування цієї устави, потім перемикатися назад.
Leave this box unchecked for double-sided materials.
Режими Змішання – 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¶
Одиничний матеріал може використовувати все, зазначене вище, одночасно, за бажанням. Ця ілюстрація показує типову структуру вузлів, коли різні, зазначені вище, опції застосовуються одночасно:
Exporting a Shadeless (Unlit) Material¶
To export an unlit material, mix in a camera ray, and avoid using the Principled BSDF node.
Розширення – 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
KHR_materials_clearcoat
KHR_mesh_quantization
Експорт – Export
KHR_draco_mesh_compression
KHR_lights_punctual
KHR_materials_clearcoat
KHR_materials_transmission
KHR_materials_unlit
KHR_texture_transform
Third-party glTF Extensions¶
It is possible for Python developers to add Blender support for additional glTF extensions by writing their own third-party add-on, without modifying this glTF add-on. For more information, see the example on GitHub and if needed, register an extension prefix.
Кастомні Властивості – Custom Properties¶
Custom properties are always imported, and will be exported from most objects
if the extras
field on the corresponding object in the glTF file.
Unlike glTF extensions, custom properties (extras) have no defined name-space, and may be used for any user-specific or application-specific purposes.
Анімація – Animation¶
glTF дозволяє багато анімацій для кожного файлу, з анімаціями, націленими на конкретні об’єкти під час експорту. Щоб переконатися, що анімація включена, або (a) зробіть її активною Дією – Action на об’єкті, або (b) створіть стежку з однією смужкою НЛА, або (c) запасіть її дію.
Підтримуване – Supported
Лише певні типи анімації підтримуються:
Ключкадрове – Keyframe (пересування, обертання, масштабування)
Ключі форм – Shape keys
Арматури / покривання – Armatures / skinning
Анімація інших властивостей, як освітлювачі або матеріали, буде проігнорована.
Смужка NLA Strip animation складається з кількох дій на кількох об’єктах, що повинні грати разом. Для створення смужки НЛА анімації з іменем «My Animation» штовхніть дію, що повинна гратися кожного об’єкта на стежку НЛА для такого об’єкта з іменем «My Animation».
Анімації смужок НЛА будуть експортуватися, якщо опція
, є вибраною (увімкнена стандартно). Всі анімації glTF імпортуються анімації смужки НЛА.Якщо опція вимкнена, то дії смужки НЛА з Blender’а будуть ігноруватися. Лише активна дія кожного з об’єктів буде враховуватися та зливатися в єдину анімацію glTF.
Примітка
In order to sample shape key animations controlled by drivers using bone transformations, they must be on a mesh object which is a direct child of the bones“ armature.
Варіації Формату Файлу – 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, і відгук там вітається.