3D

glTF и GLB: 3D для веба, AR и метавселенных

Покрутили кроссовок на карточке товара, примерили диван к комнате через камеру телефона, увидели 3D-модель прямо в поиске Google? За всем этим почти наверняка стоит один формат — glTF (или его бинарный близнец GLB). Разбираемся, почему именно он стал «JPEG среди 3D» и захватил веб, дополненную реальность и метавселенные.

Фотореалистичный 3D-рендер интерьера гостиной с диваном, кухней и телевизором
3D-модели для сайтов и AR-примерок доставляют в glTF/GLB — лёгком и реалистичном формате. Фото: Pexels

Что такое glTF простыми словами

glTF расшифровывается как GL Transmission Format — «формат передачи для GL». Его разработал консорциум Khronos Group (те же люди, что стоят за OpenGL и Vulkan) специально для одной задачи: быстро доставлять 3D-модели туда, где их будут показывать в реальном времени, — в браузер, приложение или очки дополненной реальности.

Ключевую роль формата авторы описали одной фразой: «JPEG среди 3D». Как JPEG стал лёгким универсальным способом показать картинку, так glTF стал лёгким готовым к отрисовке способом показать 3D-сцену. Он не предназначен для тяжёлого редактирования — это формат доставки, «последней мили» до экрана. В 2022 году зрелость формата закрепили официально: glTF 2.0 приняли как международный стандарт ISO/IEC 12113.

Коротко

glTF — открытый, компактный формат для показа 3D в реальном времени. Хранит геометрию, PBR-материалы и анимацию в виде, близком к тому, что ждёт видеокарта, поэтому открывается почти мгновенно и одинаково выглядит везде.

glTF против GLB: два обличья

Здесь новичка ждёт первая развилка: .gltf и .glb — это не разные форматы, а две упаковки одного и того же. Разберём различие, потому что оно практически важно.

.gltf — это текстовый файл в формате JSON. Он описывает структуру сцены (какие объекты, где, с какими материалами), но сами «тяжёлые» данные — геометрию и текстуры — часто выносит в отдельные файлы: буфер .bin и картинки. То есть glTF нередко «путешествует» набором из нескольких файлов.

.glb — это бинарная версия, где всё склеено в один файл: и JSON-описание, и геометрия, и текстуры зашиты внутрь. Для веба, обмена и AR это почти всегда удобнее: один файл проще загрузить, он не растеряет текстуры по дороге и меньше запросов к серверу.

СвойствоglTF (.gltf)GLB (.glb)
ТипТекст (JSON)Бинарный
ФайловЧасто несколькоОдин
Правится вручнуюДаНет
Удобство доставкиСреднееВысокое
Где чащеРазработкаВеб, AR, обмен

PBR-материалы: почему выглядит «дорого»

Главная визуальная фишка glTF — встроенная поддержка PBR (physically based rendering, физически корректного рендеринга). Вместо того чтобы просто задать «цвет объекта», PBR описывает поверхность набором понятных параметров: базовый цвет (albedo), металличность, шероховатость, карту нормалей, самосвечение и другие.

Что это даёт на практике? Материал начинает вести себя как настоящий: металл бликует как металл, матовый пластик рассеивает свет как пластик, и всё это — при любом освещении сцены. Поэтому один и тот же GLB-файл выглядит одинаково реалистично и на сайте, и в игровом движке, и в AR. В отличие от старого OBJ с его затенением по Фонгу, glTF говорит на современном языке материалов.

3D-рендер лофта-гостиной с антресолью, видом сверху на кухню и столовую
Интерактивные туры по интерьерам и предпросмотр недвижимости всё чаще собирают на glTF прямо в браузере. Фото: Pexels

3D в браузере: three.js и model-viewer

glTF выстрелил именно в вебе, потому что все крупные WebGL-движки добавили его нативную поддержку. Если вы разработчик, у вас есть два уровня простоты.

Самый простой путь — веб-компонент <model-viewer> от Google. Подключаете один скрипт, вставляете тег с адресом вашего .glb — и получаете готовую интерактивную модель: её можно крутить мышкой, она сама подсвечивается и даже даёт кнопку «смотреть в AR». Ноль строк на графику.

Для гибкости берут полноценные библиотеки: three.js (самая популярная), Babylon.js или PlayCanvas. Все они читают glTF/GLB «из коробки» и позволяют строить сложные интерактивные сцены — конфигураторы товаров, игры, визуализации.

2015выход glTF от Khronos
ISOстандарт с 2022 года
1тег для 3D на сайте

AR: примерка через камеру телефона

Дополненная реальность — вторая стихия glTF. Когда вы в интернет-магазине нажимаете «посмотреть в своей комнате» и на экране телефона появляется диван или кроссовок, стоящий на вашем реальном полу, — это работает так:

  • На Android модель в GLB запускается прямо из браузера через системный Scene Viewer — конвертация не нужна.
  • На iPhone нативный AR Quick Look от Apple ждёт свой формат — USDZ. Поэтому для айфонов ту же модель дополнительно конвертируют из GLB в USDZ.

Хорошая новость: тот же <model-viewer> умеет подхватывать обе версии автоматически — вы указываете и GLB, и USDZ, а компонент сам выбирает нужную под платформу. Именно на этой связке держатся 3D-модели в поиске Google, которые можно «поставить» в комнату прямо из выдачи.

Абстрактный 3D-рендер парящих красных стеклянных многогранников — образ виртуального пространства
Открытость и лёгкость glTF делают его удобным «кирпичиком» для виртуальных миров и метавселенных. Фото: Pexels

Метавселенные и цифровые двойники

Открытость и лёгкость сделали glTF естественным «кирпичиком» для метавселенных и виртуальных пространств. Аватары, предметы, целые сцены переносят между платформами именно в этом формате, потому что он не привязан к одному вендору и одинаково понятен разным движкам.

Та же логика работает в промышленности и электронной коммерции: «цифровые двойники» товаров, интерактивные каталоги мебели и техники, обучающие 3D-модели — всё это выгодно доставлять в GLB, потому что он открывается на любом устройстве без установки тяжёлых приложений.

glTF выиграл не потому, что умеет больше всех, а потому, что доставляет 3D быстрее и проще всех — ровно как JPEG когда-то выиграл гонку картинок.

Draco и компактность

Даже будучи лёгким, glTF умеет становиться ещё легче. Для этого есть расширение Draco — алгоритм сжатия геометрии от Google, который ужимает вершины и грани в разы. Плюс современные текстуры внутри GLB можно хранить в сжатых для видеокарты форматах (KTX2/Basis), чтобы экономить и трафик, и видеопамять.

Итог: тяжёлая на вид сцена с реалистичными материалами может весить считанные мегабайты и открываться на телефоне за пару секунд. Именно эта комбинация — открытость, PBR и агрессивная компактность — и объясняет, почему glTF за несколько лет стал стандартом 3D для веба и AR.

Готовите ассеты для 3D-проекта?

Картинки, иконки и текстуры для превью удобно конвертировать на FormatZ — прямо в браузере, быстро и без установки. Загляните в каталог форматов.

Открыть все форматы

Хотите понять, где glTF, а где другие форматы? Начните с обзора OBJ, FBX, STL и glTF. А чтобы просто открыть чужой GLB на компьютере, пригодится статья чем открыть 3D-модель.

Это один и тот же формат в двух упаковках. glTF — это текстовый JSON-файл, который описывает сцену и часто ссылается на внешние файлы буферов (.bin) и текстур. GLB — бинарная версия: вся сцена, геометрия и текстуры «зашиты» в один файл. Для веба и обмена почти всегда удобнее GLB: один файл проще загрузить, и он не потеряет текстуры по дороге.
Так его окрестили сами создатели из Khronos. Смысл в роли формата: как JPEG стал лёгким, повсеместным способом доставить картинку в браузер, так glTF стал лёгким готовым к отрисовке способом доставить 3D-сцену. Это формат доставки и показа, а не тяжёлого редактирования — потому и аналогия с JPEG, а не с PSD.
PBR (physically based rendering, физически корректный рендеринг) — это способ описать поверхность через понятные параметры: базовый цвет, металличность, шероховатость, карту нормалей и другие. Благодаря им один и тот же материал реалистично выглядит при любом освещении. glTF поддерживает PBR из коробки, поэтому модели в нём смотрятся «дорого» и одинаково в разных движках.
Самый простой путь — веб-компонент <model-viewer> от Google: подключаете скрипт и вставляете тег с указанием на .glb, а он сам рисует интерактивную 3D-модель и кнопку AR. Для гибкости используют библиотеки three.js, Babylon.js или PlayCanvas — все они читают glTF/GLB нативно.
Да, но с нюансом. На Android модель в GLB запускается в AR прямо из браузера через Scene Viewer. На iPhone нативный AR Quick Look ждёт формат USDZ от Apple, поэтому для айфонов GLB конвертируют в USDZ. Компонент <model-viewer> умеет подхватывать обе версии автоматически.