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 – Розширення (перелічені нижче)
Extras – Добавки (кастомні властивості)
Animation – Анімація (ключкадр – keyframe, ключ форми – shape key та покривання – skinning)
Meshes – Сіті¶
glTF внутрішня структура імітує буфери пам’яті, що поширено використовуються графічними чіпами при рендерингу в режимі реального часу, таким чином, що активи можуть подаватися на стільницю, веб або мобільних клієнтів, та негайно показуватися з мінімальною обробкою. Як результат, чотирибічники та n-кутники автоматично конвертуються у трикутники при експортуванні в glTF. Переривчасті UVи та плоско відтінені краї можуть призводити до помірно високих рахунків вершин у glTF у порівнянні з Blender, оскільки такі вершини відокремлюються для експорту. Так само, дані кривих та інших не-сітей не зберігаються, і повинні конвертуватися в сіті перед експортом.
Materials – Матеріали¶
Ядро системи матеріалів у glTF підтримує робпотік типу металічність/шорсткість фізично базованого рендерингу – PBR з наступними каналами інформації:
Base Color – Базовий Колір
Metallic – Металік
Roughness – Шорсткість
Baked Ambient Occlusion – Запечена Загорода Оточення
Normal Map – Розкладка Нормалей (простір тангенса, +Y уверх)
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 так точно, наскільки це можливо.
The importer supports Metal/Rough PBR (core glTF), Spec/Gloss PBR (KHR_materials_pbrSpecularGlossiness
)
and 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 на вузлі Principled BSDF. Якщо цей увід нез’єднаний ні з чим, то стандартний колір уводу (поле кольору поруч з нез’єднаним сокетом) використовується як Base Color для матеріалу glTF.
Якщо вузол Image Texture – Текстура Зображення виявлено під’єднаним до уводу Base Color – Базовий Колір, то це зображення буде вжите як базовий колір glTF.
Metallic and Roughness – Металік та Шорсткість¶
Ці значення зчитуються з вузла Principled BSDF. Якщо обидва ці уводи нез’єднані ні з чим, то вузол покаже повзунки для керування їх відповідними значеннями між 0.0 та 1.0, і ці значення будуть скопійовані в glTF.
При використанні зображення, glTF очікує, що значення металічності закодовані у синьому (B
) каналі, а шорсткість закодована у зеленому (G
) каналі того самого зображення. Якщо зображення з’єднуються з вузлом Blender способом, що не дотримується цієї умовності, то додаток може спробувати пристосувати зображення до коректної форми під час експортування (зі збільшенням часу експорту).
У дереві вузлів Blender рекомендується використовувати вузол Separate RGB – Відокремлення RGB для відокремлення каналів від вузла Image Texture – Текстура Зображення та з’єднати зелений (G
) канал зі шорсткістю Roughness, а синій (B
) з металік Metallic. Експортер glTF розпізнає цю розставу як відповідність стандарту glTF, і це дозволить йому просто скопіювати текстуру зображення у файл glTF під час експорту.
Для цього Вузол Image Texture – Текстура Зображення повинен мати уставу Color Space – Колірний Простір, установлену як Non-Color – Не-Колір.
Baked Ambient Occlusion – Запечена Загорода Оточення¶
glTF is capable of storing a baked ambient occlusion map.
Currently there is no arrangement of nodes that causes Blender
to use such a map in exactly the same way as intended in glTF.
However, if the exporter finds a custom node group by the name of glTF Settings
, and
finds an input named Occlusion
on that node group,
it will look for an Image Texture attached there to use as the occlusion map in glTF.
The effect need not be shown in Blender, as Blender has other ways of showing ambient occlusion,
but this method will allow the exporter to write an occlusion image to the glTF.
This can be useful to real-time glTF viewers, particularly on platforms where there
may not be spare power for computing such things at render time.
Порада
Найлегший спосіб створити кастомну групу вузлів – це імпортувати наявну модель glTF, що містить розкладку загороди, наприклад, пляшку для води – water bottle або інша наявна модель. Вручну створена кастомна група вузлів може також бути використана.
glTF зберігає загороду у каналі червоного (R
), дозволяючи факультативно співволодіти тим самим зображенням каналам шорсткості та металічності.
Порада
The Cycles render engine has a Bake panel that can be used to bake
ambient occlusion maps. The resulting image can be saved and connected
directly to the glTF Settings
node.
Normal Map – Розкладка Нормалей¶
Для використання розкладки нормалей у glTF, під’єднайте вивід кольору вузла Image Texture з уводом кольору вузла Normal Map, і потім під’єднайте вивід нормалі цього вузла Normal Map до уводу нормалі вузла Principled BSDF. Вузол Image Texture для цього повинен мати його властивість Color Space установленою як Non-Color.
Вузол Normal Map повинен залишатися з його стандартною властивістю простору тангенса Tangent Space, оскільки це єдиний тип розкладки нормалей, підтримуваний glTF. Сила розкладки нормалей може наладнуватися на цьому вузлі. Експортер не експортує ці вузли безпосередньо, але буде використовувати їх для виявлення коректного зображення та буде копіювати уставу сили в glTF.
Порада
Рушій рендера Cycles має панель запікання Bake, що може використовуватися для запікання розкладок нормалей з простором тангенса з майже будь-якої розстави вузлів з векторами нормалей. Перемкніть тип запікання Bake на Normal. Зберігайте стандартні устави простору (space: 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.
Якщо використовуються вузли Image Texture, то glTF вимагає, щоб значення полакованості були записані у червоному (R
) каналі, а шорсткості полакованості Clearcoat Roughness – у зеленому (G
) каналі. Якщо монохромні зображення під’єднані, то експортер перерозкладе їх на ці колірні канали.
Увід нормалі полакованості Clearcoat Normal приймає ті самі види, як базовий увід нормалі Normal, зокрема, розкладку нормалей з простором тангенса з +Y уверх, а також користувачем визначену силу. Цей увід може повторно використовувати ту ж розкладку нормалей, яку використовує базовий матеріал, або для нього може призначена своя розкладка нормалей, або він може залишитися ні з чим нез’єднаним для згладженого покриття.
Усі вузли Image Texture, що використовуються для полакованого відтінювання, повинні мати їх колірний простір Color Space установлений, як не-колір 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.
Пропускання відрізняється від змішування альфа, оскільки пропускання дозволяє повно-сильні блікові відбиття. У glTF, змішування альфа призначене для представлення фізичних матеріалів, що частково відсутні у визначеній геометрії, такій як медична марлева пов’язка. Пропускання призначене для представлення фізичних матеріалів, що твердотілими, але дозволяють не бліково відбитому світлу пропускатися через матеріал, як скло.
glTF не пропонує окремо шорсткості пропускання «Transmission Roughness», але базова шорсткість матеріалу може використовуватися для розмиття пропускання, як матове скло.
Порада
Типово режим змішання альфа пропускального матеріалу повинен залишатися безпрозорим «Opaque», стандартна устава, допоки цей матеріал не лише частково покриває визначену геометрію.
Примітка
У рушіях з режимом реального часу, де підтримується пропускання, різні технічні обмеження в рушії можуть визначати, які частини сцени є видимі через пропускальну поверхню. Зокрема, пропускальні матеріали можуть не бути видимими позаду інших пропускальних матеріалів. Ці обмеження впливають на фізичного-базоване пропускання, але не на не-пропускальні зі змішанням альфа матеріали.
Попередження
Пропускання є складним для імплементування для рушіїв рендерингу в режимі реального часу, і підтримка для розширення KHR_materials_transmission
для glTF не є ще розповсюдженою.
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 mode) є складним для рендерення рушіями в режимі реального часу і може поводитися неочікувано після експорту. Де це можливо, використовуйте натомість режим Alpha Clip або поміщайте полігони з Opaque позаду лише одного шару полігонів з Alpha Blend.
UV Mapping – Розкладання UV¶
Контроль над вибором розкладки UV та трансформації доступні шляхом з’єднання вузла UV Map – Розкладка UV та вузла 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 – Експортування Безвідтінкового (Неосвітленого) Матеріалу¶
Для експорту неосвітленого матеріалу змішуйте через промінь камери та уникайте використовування вузла Principled BSDF.
Extensions – Розширення¶
Основний формат glTF 2.0 може розширятися додатковою інформацією за допомогою розширень glTF. Це дозволяє цьому формату файлів містити деталі, що не вважалися універсальними на момент першої публікації Не всі зчитувачі glTF підтримують всі розширення, але деякі досить поширені.
Certain Blender features can only be exported to glTF via these extensions. The following glTF 2.0 extensions are supported directly by this add-on:
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 – Сторонні Розширення glTF¶
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 – Кастомні Властивості¶
Кастомні властивості завжди імпортуються, і будуть експортуватися з більшості об’єктів, якщо опція extras
на відповідному об’єкті у файлі glTF.
На відміну від розширень glTF, кастомні властивості (extras) не мають визначеного простору імен і можуть використовуватися для будь-яких користувачем визначених або для застосунку специфічних цілей.
Animation – Анімація¶
glTF allows multiple animations per file, with animations targeted to particular objects at time of export. To ensure that an animation is included, either (a) make it the active Action on the object, (b) create a single-strip NLA track, or (c) stash the action.
Supported
Only certain types of animation are supported:
Keyframe (translation, rotation, scale)
Shape keys – Ключі форм
Armatures / skinning
Animation of other properties, like lights or materials, will be ignored.
An NLA Strip animation consists of multiple actions on multiple objects that should play together. To create an NLA strip animation with the name «My Animation», push the action that should play each object onto an NLA track for that object with the name «My Animation».
NLA Strip animations will be exported if the
option is selected (on by default). All glTF animations are imported as NLA Strip animations.If option is disabled, Blender NLA strip actions will be ignored. Only active action of each objects will be taken into account, and merged into a single glTF animation.
Примітка
Щоб відібрати анімації ключів форм, що керуються драйверами, що використовують трансформації кісток, вони повинні бути на об’єкті сіті, що є безпосереднім нащадком арматури цих кісток.
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 – Текстури
Folder to place texture files in. Relative to the gltf-file.
- Copyright – Авторське право
Юридичні права та умови для моделі.
- Remember Export Settings – Пам’ятання Устав Експорту
Зберігаються устави експорту цьому blend-файлі, щоб вони були викликані наступного разу, коли цей файл відкриється.
Include – Включення¶
- Selected Objects – Вибрані Об’єкти
Експортуються лише вибрані об’єкти.
- Custom Properties – Кастомні Властивості
Кастомні властивості експорту як добавки glTF.
- Cameras – Камери
Експортуються камери.
- Punctual Lights – Пунктуальні Освітлювачі
Експортуються направлені, точкові та прожекторні освітлювачі. Використовує розширення
KHR_lights_punctual
для glTF.
Transform – Трансформа¶
- Y Up – Y Уверх
Експорт вживає умовність glTF, +Y уверх.
Geometry – Геометрія¶
- Apply Modifiers – Застосування Модифікаторів
Apply modifiers (excluding armatures) to mesh objects.
- UVs – UVи
Експортуються UVи (координати текстур) із сітями.
- Normals – Нормалі
Експортуються нормалі вершин із сітями.
- Tangents – Тангенси
Експортуються тангенси вершин із сітями.
- Vertex Colors – Кольори Вершин
Export vertex colors with meshes.
- Materials – Матеріали
Export materials.
- Images – Зображення
Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for web applications due to the smaller file size.
Compression – Стиснення¶
Стискаються сіті за допомогою Google Draco.
- Compression Level – Рівень Стиснення
Вище стиснення призводить до повільнішого закодовування та розкодовування.
- Quantization Position – Позиція Квантизації
Вищі значення призводять до кращого стиснення.
- Normal – Нормаль
Вищі значення призводять до кращого стиснення.
- Texture Coordinates – Координати Текстур
Вищі значення призводять до кращого стиснення.
- Generic – Узагальнене
Вищі значення призводять до кращого стиснення.
Animation – Анімація¶
- Use Current Frame
Export the scene in the current animation frame.
Animation – Анімація¶
Exports active actions and NLA tracks as glTF animations.
- Limit to Playback Range – Лімітування Діапазоном Програвання
Обрізає анімації відповідно до вибраного діапазону програвання.
- Sampling Rate – Частота Відбору
Як часто обчислювати анімовані значення (у кадрах).
- Always Sample Animations
Apply sampling to all animations.
- Group by NLA Track
Whether to export NLA strip animations.
- Export Deformation Bones Only
Export deformation bones only (and needed bones for hierarchy).
Shape Keys – Ключі Форм¶
Експортуються ключі форм (цілі морфів).
- Shape Key Normals – Нормалі Ключів Форм
Експортуються нормалі вершин із ключами форм (цілі морфів).
- Shape Key Tangents – Тангенси Ключів Форм
Експортуються тангенси вершин із ключами форм (цілі морфів).
Skinning – Покривання¶
Export skinning (armature) data.
- Include All Bone Influences – Включення Усіх Впливів Кісток
Дозволяються більше, ніж 4 сполучених впливи вершин. Моделі можуть показуватися некоректно у багатьох оглядачах.
Contributing – Здійснення внеску¶
Цей імпортер/експортер розробляється через репозиторій glTF-Blender-IO repository, де ви можете подавати звіти про вади, пропонувати запити про функції або вносити код.
Обговорення та розроблення власне формату glTF 2.0 відбувається у групі Khronos Group glTF GitHub repository, і відгук там вітається.