Офіційний glTF/GLB-плагін Khronos для 3ds Max
Ще кілька років тому glTF сприймався переважно як формат "для веброзробників". Сьогодні ситуація змінилася: моделі у glTF і GLB відкриваються безпосередньо у браузері, використовуються в доповненій та змішаній реальності, потрапляють до ігрових рушіїв, інтернет-магазинів та інтерактивних конфігураторів.
Із цим форматом працює Google Model Viewer, який дає змогу вбудовувати 3D-моделі та AR-перегляд у звичайну вебсторінку. Він використовується в екосистемі Microsoft Mixed Reality та інструментах Shopify для тривимірного представлення товарів. Сценарії, знайомі за сайтами й цифровими проєктами IKEA, Nike та Wayfair, - роздивитися товар з усіх боків, змінити його оздоблення або розмістити меблі у своїй кімнаті за допомогою AR - добре показують, навіщо бізнесу потрібен легкий і портативний формат 3D-контенту.
На glTF спирається і значна частина сучасного вебстека. Його підтримують Three.js, Babylon.js і PlayCanvas, тому один і той самий асет можна використовувати в картці товару, браузерному переглядачі, WebXR-проєкті або інтерактивній презентації. Бінарний варіант формату, GLB, особливо зручний для передавання готової моделі: геометрія, матеріали, текстури й анімація можуть міститися в одному файлі.
Для 3D-художника це означає просту річ: glTF уже давно перестав бути екзотикою. Якщо ви створюєте контент для вебу, AR, ігор, конфігураторів або каталогів, рано чи пізно вам доведеться з ним працювати.
Однак для користувачів Autodesk 3ds Max робота з цим форматом тривалий час залишалася непростою. Експорт існував, але повноцінного й передбачуваного процесу - від імпорту та редагування до повторного збереження готового файлу - бракувало.
Тепер це має змінитися. Khronos Group підтримала випуск безкоштовного open-source імпортера й експортера glTF 2.0 для Autodesk 3ds Max. І важливий тут не лише новий набір можливостей, а й те, хто стоїть за проєктом.
Чому участь Khronos справді важлива
Khronos Group - не черговий сторонній розробник конвертера. Це відкритий галузевий консорціум, у межах якого розвивається сам стандарт glTF.
Саме Khronos визначає, як мають зберігатися PBR-матеріали, анімація, камери, освітлення та розширення формату. Тому участь організації дає проєкту кілька важливих переваг:
- реалізація відповідає логіці та специфікації самого glTF;
- нові можливості формату можуть з'являтися у плагіні без довгого ланцюжка посередників;
- проєкт розрахований на подальшу підтримку, а не на одноразовий реліз;
- вихідний код відкритий, тому спільнота може знаходити й виправляти помилки та проблеми сумісності;
- документація розвивається разом з інструментами.
Важливо точно сформулювати роль Khronos: організація профінансувала й випустила проєкт, створений у співпраці з досвідченими незалежними фахівцями та спільнотою. Це не просто новий офіційний ярлик на старому експортері Autodesk, а окремі плагіни імпорту й експорту, розроблені для повноцінної роботи з glTF 2.0.
Khronos уже повідомила про намір і надалі підтримувати проєкт, зокрема розвивати KHR_interactivity та майбутній glTF 2.1. Іншими словами, це не разова спроба закрити прогалину, а фундамент для довгострокового робочого процесу.
Проєкт почався не з чистого аркуша
Новий плагін має корисну передісторію. Його основою стала багаторічна робота незалежного програміста Hayashi Satoshi, який раніше розробляв комерційні glTF-плагіни для 3ds Max. Khronos залучила його до проєкту разом із розробником Josef Wienerroither, який має великий досвід створення та перевірки плагінів для 3ds Max.
До тестування, підготовки документації та адаптації інструмента до реальних завдань художників також долучився технічний 3D-художник Eric Chadwick із DGG.
Такий шлях видається розумнішим, ніж розробка з нуля. В основу ліг інструмент, сформований практичним досвідом, після чого його перетворили на відкритий проєкт із документацією, вихідним кодом і довгостроковою підтримкою спільноти.
Плагін розповсюджується безкоштовно за ліцензією Apache 2.0. Вихідний код доступний на GitHub, а готові збірки призначені для версій 3ds Max 2020-2027. Це особливо важливо для студій із неоднорідним набором програм: заради доступу до нового формату не всім доведеться негайно переходити на найновішу версію Max.
Що було не так із попереднім процесом у 3ds Max
Вбудовані можливості 3ds Max дозволяли отримати glTF або GLB, але в серйозному виробничому процесі одного факту наявності кнопки Export було недостатньо.
Головною проблемою залишалася фрагментарність. Імпорт та експорт не утворювали єдиного надійного маршруту, тому художнику часто доводилося збирати його самостійно:
- Підготувати окрему версію сцени.
- Спростити або замінити матеріали.
- Експортувати модель.
- Перевірити її у зовнішньому переглядачі.
- Окремо оптимізувати геометрію та текстури.
- Виправити знайдені проблеми у Max.
- Повторити весь цикл.
Особливо неприємно це відчувалося під час роботи з матеріалами. Corona та V-Ray дають художнику дуже багатий набір шейдерів, але glTF має іншу мету: він орієнтований на портативний PBR-матеріал, який різні програми мають інтерпретувати однаково.
Карти Metalness, Roughness та Ambient Occlusion також потрібно правильно пакувати за каналами. Якщо конвертація виконується невдало, навіть невелика модель може отримати несподівано важкі текстури. У реальній роботі PNG із запакованими картами іноді розросталися до десятків мегабайт, а підсумковий GLB ставав завеликим для вебу. Після цього доводилося залучати зовнішні оптимізатори, знову перевіряти матеріали й вручну шукати компроміс між якістю та розміром.
Додаймо до цього нестабільне перенесення складних сцен, відсутність зручного повноцінного імпорту й необхідність підтримувати власні MaxScript-сценарії - і стає зрозуміло, чому багато художників використовували Blender або окремі конвертери як проміжну ланку.
Новий проєкт Khronos намагається усунути саме цю фрагментарність.
Не лише експорт, а повноцінний round-trip
Ключовий вислів в описі плагіна - round-trip pipeline, тобто повний цикл роботи з поверненням до вихідного формату:
Це важлива зміна у підході. glTF стає не фінальним контейнером, до якого не можна безпечно торкатися, а робочим форматом усередині 3ds Max.
Плагін прагне переносити сцену в Max і назад з максимально можливим збереженням її пристрою: геометрії, матеріалів, камер, джерел світла, анімації, інстансів та розширень, що підтримуються. Наприклад, можна отримати GLB від замовника, поправити модель або анімацію та видати оновлений файл без обов'язкової конвертації через FBX та іншу програму.
Звісно, слово round-trip не означає математично ідентичний результат для будь-якої сцени. 3ds Max і glTF по-різному представляють частину даних, а деякі можливості Max просто не мають прямого аналога у стандарті. Проте єдиний маршрут імпорту, редагування й експорту вже сам по собі суттєво скорочує кількість ручних операцій.
Завантажити Khronos GLTF/GLB плагін можна за цим посиланням.
Завантажити Khronos GLTF/GLB плагінЩо вміє новий імпортер
Імпортер читає файли .gltf і .glb та переносить до сцени ті елементи, з якими художник очікує продовжити роботу:
- меші, сплайни та форми;
- камери й джерела світла;
- PBR-матеріали та текстури;
- анімацію;
- дані Skin і Morph;
- інстанси;
- дані підтримуваних розширень glTF.
Особливо цікава робота із сучасними PBR-властивостями. Плагін розуміє не лише базовий колір, металічність і шорсткість, а й низку розширень для складніших поверхонь: clearcoat, anisotropy, transmission та volume. Це дає змогу точніше переносити лаковані, анізотропні й прозорі матеріали, не зводячи все до найпростішого шейдера.
Також підтримуються UV-трансформації та стиснуті формати текстур. Оскільки сам 3ds Max не відкриває WebP безпосередньо, імпортер може перетворити таку текстуру на PNG для редагування, водночас зберігши шлях до оригіналу в користувацьких атрибутах. Під час наступного експорту плагін здатний знову використати вихідний стиснутий файл - це допомагає уникнути зайвого перекодування й додаткової втрати якості.
Для користувачів 3ds Max 2024 і новіших версій передбачено Khronos PBR Neutral Tone Mapping. Він допомагає наблизити відображення PBR-матеріалів у в'юпорті до нейтрального вигляду, очікуваного у glTF-переглядачах. Це не скасовує фінальної перевірки на цільовій платформі, але зменшує ймовірність неприємних сюрпризів після експорту.
Експортер: більше контролю над результатом
Експортер створює всі основні варіанти glTF 2.0:
.gltfразом з окремими файлами.binі текстурами;- єдиний
.gltfіз вбудованими ресурсами; - бінарний
.glb, у якому всі дані зібрані в одному файлі.
Для публікації на сайті найчастіше зручніший GLB: його простіше передавати, зберігати та підключати. Розділений glTF корисніший під час налагодження, коли потрібно швидко замінити текстуру або переглянути структуру файлу.
Плагін експортує геометрію, сплайни, форми, камери та освітлення, уміє зберігати ієрархію, а також підтримує звичайні інстанси й розширення EXT_mesh_gpu_instancing. Останнє особливо корисне для сцен із великою кількістю повторюваних об'єктів - наприклад, стільців, світильників або декоративних елементів. Водночас режим GPU-інстансингу має власні правила й може не зберегти частину ієрархії або анімаційних даних, тому вмикати його варто свідомо.
Підтримка анімації охоплює переміщення, обертання та масштабування, Morph-анімацію й додаткові параметри через KHR_animation_pointer. Для процедурних контролерів, які не мають звичайних ключів, передбачено Bake Animation. Ціна такої зручності передбачувана: покадрове запікання збільшує обсяг даних, тому для вебу його краще використовувати лише там, де воно справді потрібне.
Експортер також передає деформації Skin і Morph, користувацькі властивості сцени, об'єктів і матеріалів через extras, уміє створювати кілька сцен в одному файлі та підтримує варіанти матеріалів. Останнє зручно, якщо одна модель повинна мати кілька варіантів оздоблення - наприклад, тканину різних кольорів або кілька версій корпусу.
Пакування Metalness, Roughness та Occlusion
Одна з найпрактичніших можливостей - контроль над тим, як збираються карти Metalness, Roughness та Ambient Occlusion.
У glTF ці дані зазвичай пакуються в окремі канали однієї текстури. Такий підхід заощаджує місце й зменшує кількість запитів під час завантаження моделі, але потребує правильної підготовки. Новий експортер пропонує кілька сценаріїв:
- зберегти оригінальну запаковану карту, якщо модель була імпортована з glTF і розташування каналів не потрібно змінювати;
- заново зібрати Metalness, Roughness та Occlusion в одну текстуру;
- запакувати Metalness і Roughness разом, залишивши Occlusion окремо;
- вибрати роздільну здатність і формат створюваних карт.
Для художника це набагато зрозуміліше, ніж вручну складати канали у Photoshop або окремій утиліті. Водночас з'являється прямий контроль над розміром: невеликому об'єкту в браузері далеко не завжди потрібні текстури 4K.
Експортер також працює з WebP і KTX2 через спеціальні атрибути. Ці формати можуть суттєво зменшити вагу текстур, однак рівень стиснення, якість і сумісність завжди потрібно перевіряти на цільовій платформі. Що агресивніші налаштування, то уважніше слід перевіряти градієнти, карти нормалей, прозорість і дрібні деталі.
Corona та V-Ray: менше ручної конвертації
Для багатьох користувачів 3ds Max це може бути найважливішою частиною релізу. Експортер заявляє підтримку матеріалів Scanline, PBR, Physical, glTF, Arnold, V-Ray, Corona та USD.
Це означає, що перед передаванням GLB більше не обов'язково вручну перебудовувати кожен звичайний матеріал Corona або V-Ray у стандартний PBR. Плагін намагається перекласти його основні властивості у модель, зрозумілу для glTF.
Але тут важливо зберігати реалістичні очікування. Corona та V-Ray створювалися для високоякісного офлайн- і GPU-рендерингу, тоді як glTF призначений для швидкого й портативного відображення у реальному часі. Повної відповідності між ними немає.
Найкраще конвертуються матеріали зі зрозумілою PBR-логікою:
- базовий колір;
- roughness або glossiness, який можна однозначно перетворити;
- metalness;
- normal або bump;
- opacity;
- проста емісія.
Складні процедурні ланцюжки, Blend-матеріали, нестандартні налаштування Falloff, багатошарові покриття, displacement та специфічні для рендерера ефекти можуть потребувати запікання або ручного доопрацювання. Тому підтримка Corona та V-Ray - не чарівна кнопка, а хороший спосіб суттєво скоротити обсяг рутинної роботи.
Практичний підхід залишається незмінним: експортувати модель, відкрити GLB у тому переглядачі або рушії, де він фактично використовуватиметься, і порівняти результат із вихідною сценою.
Draco: коли геометрія має важити менше
Плагін уміє застосовувати стиснення Draco й додавати до файлу розширення KHR_draco_mesh_compression.
Draco стискає дані меша: позиції вершин, нормалі, UV та інші атрибути. На моделях зі щільною геометрією різниця у розмірі може бути дуже помітною, тому технологія корисна для вебу та мобільних пристроїв.
Водночас Draco не зменшує вагу текстур. Якщо більшу частину GLB займають зображення, однієї галочки буде недостатньо. Крім того, цільовий переглядач повинен підтримувати декодування Draco, а відкриття моделі потребуватиме додаткових обчислень.
Тому правильне запитання звучить не як "Чи потрібно завжди вмикати Draco?", а як "Що зараз є вузьким місцем?"
- Якщо файл важкий через геометрію, Draco може дати відчутне зменшення.
- Якщо основний обсяг займають текстури, спочатку варто перевірити їхню роздільну здатність і формат.
- Якщо модель відкриватиметься на слабких пристроях, потрібно вимірювати не лише розмір завантаження, а й час декодування.
Оптимізація GLB - це завжди баланс між розміром файлу, швидкістю запуску та якістю зображення.
Автоматизація через MaxScript
Плагін можна викликати з MaxScript за допомогою стандартних команд importFile та exportFile. Якщо в системі встановлено кілька обробників glTF, у документації наведено ідентифікатори, які дають змогу явно вибрати плагіни Khronos:
importFile FileName using:#(2276006501L, 2723547238L)
exportFile FileName using:#(945315888L, 456219454L)
Налаштування плагіна зберігаються в INI-файлах каталогу plugcfg, тому їх можна підготувати перед пакетною обробкою. Це корисно для студійних пайплайнів, автоматичного експорту кількох асетів і повторюваного створення різних версій однієї моделі.
Однак є важливий організаційний момент. Якщо наявний скрипт розраховує на інший glTF-експортер, після встановлення нового плагіна потрібно перевірити, який саме обробник викликається. Явне зазначення ідентифікатора усуває цю неоднозначність.
Повний приклад та актуальні ідентифікатори містяться в розділі Execute from Script офіційної документації.
Обмеження, про які краще знати заздалегідь
Новий плагін розв'язує багато проблем, але не скасовує технічних меж glTF і відмінностей між програмами.
На момент публікації в документації, зокрема, зазначені такі обмеження:
- підтримуються до двох UV-каналів:
TEXCOORD_0іTEXCOORD_1; - можна експортувати один канал кольору вершин;
- дані Skin обмежені чотирма вагами на вершину;
- об'єкти з дзеркальними трансформаціями можуть експортуватися некоректно - перед експортом рекомендовано застосувати Reset XForm;
- не всі типи інтерполяції та сценарії багатоканальної анімації реалізовані повністю;
- ієрархія кісток і загальна сума ваг вершин мають відповідати вимогам glTF;
- складні процедурні матеріали можуть потребувати запікання;
- підтримка
KHR_interactivity,KHR_physics_rigid_bodiesтаKHR_collision_shapesнаразі часткова, а фізична симуляція може поводитися по-різному в різних програмах.
Ці обмеження - не причина відмовлятися від інструмента. Їх краще сприймати як чекліст перед початком проєкту. Якщо вимоги цільової платформи відомі заздалегідь, більшість проблем можна вирішити ще на етапі підготовки асета.
Особисті враження: головна зміна - не одна функція, а весь процес
Останнім часом мені доводиться багато працювати з GLB, і найвиснажливішим завжди був не сам експорт, а все, що відбувалося навколо нього. Отримати файл було легко. Отримати легкий, візуально правильний і готовий до публікації файл - значно складніше.
Особливо добре це було помітно на матеріалах і текстурах. Окремі карти Metalness та Roughness могли перетворитися на невиправдано важку запаковану текстуру, після чого доводилося переходити до зовнішніх інструментів, оптимізувати результат і знову все перевіряти.
Тому головна перевага нового рішення для мене - не окрема галочка Draco і навіть не підтримка Corona. Найважливіше те, що імпорт, редагування, пакування карт, експорт і повторне передавання файлу тепер складаються в один зрозумілий процес усередині 3ds Max.
Плагін не позбавляє художника необхідності розуміти основні принципи графіки реального часу. Як і раніше, потрібно стежити за кількістю полігонів, роздільною здатністю текстур, PBR-значеннями, трансформаціями та сумісністю з цільовим переглядачем. Але він усуває значну частину механічної роботи, яка раніше стояла між хорошою моделлю та готовим GLB.
Чи варто переходити
Якщо ви регулярно готуєте моделі для сайтів, AR, WebXR, ігрових рушіїв або онлайн-конфігураторів, новий плагін Khronos однозначно варто додати до робочого процесу й перевірити на типових для вас сценах.
Особливо корисним він буде для:
- художників, яким потрібно імпортувати отримані від клієнтів GLB і повертати їх після внесення змін;
- користувачів Corona та V-Ray, які втомилися вручну створювати PBR-версії матеріалів;
- студій, що автоматизують пакетний експорт через MaxScript;
- авторів товарних моделей із кількома варіантами матеріалів;
- команд, для яких важливі відкритий код і підтримка кількох версій 3ds Max.
Перехід краще починати не з великого проєкту, а з одного характерного асета. Порівняйте візуальний результат, розмір файлу та час підготовки зі старим процесом. Перевірте модель саме в цільовому середовищі: Model Viewer, Three.js, Babylon.js, PlayCanvas, ігровому рушії або власному застосунку. Такий тест швидко покаже, які налаштування найкраще підходять вашому пайплайну.
Висновок
glTF уже став одним з основних форматів доставлення тривимірного контенту. Він поєднує DCC-програми, браузери, ігрові рушії, AR та електронну комерцію - сфери, між якими 3D-художникам доводиться переміщатися дедалі частіше.
На цьому тлі офіційний open-source проєкт за підтримки Khronos виглядає не просто як черговий експортер. Він закриває давню прогалину в екосистемі Autodesk 3ds Max: забезпечує повноцінний імпорт, більш контрольований експорт і можливість редагувати glTF за принципом round-trip.
Ідеальних конвертерів не існує. Складні матеріали Corona та V-Ray усе одно доведеться перевіряти, процедурні карти - іноді запікати, а моделі для вебу - свідомо оптимізувати. Але тепер значна частина цієї роботи зібрана в одному інструменті, який розуміє сучасний glTF, відкритий для спільноти й розвивається за участю організації, відповідальної за сам стандарт.
Для художника підсумок можна сформулювати дуже просто: експорт GLB із 3ds Max нарешті стає нормальною частиною виробничого процесу, а не одноразовою конвертацією з непередбачуваним результатом.




{{comment.text}}