Упаковщик PBR-каналов

Загрузите карты одинакового размера, выберите порядок каналов и скачайте PNG.

Упаковщик PBR-каналов

Схема упаковки

R = AO, G = Roughness, B = Metallic

Ambient Occlusion (AO)

AO: затенение углублений и мест контакта.

Загрузите карту
PNG, JPG или WEBP, до 20 МБ
Значение: 255

Roughness

Roughness: белое означает более шероховатую поверхность.

Загрузите карту
PNG, JPG или WEBP, до 20 МБ
Значение: 255

Инверсия пригодится, если исходный файл содержит Glossiness.

Metallic

Metallic: белое означает металл, чёрное означает неметалл.

Загрузите карту
PNG, JPG или WEBP, до 20 МБ
Значение: 0

Результат

Результат появится после загрузки карты.

R = AO, G = Roughness, B = Metallic

Загрузите хотя бы одну карту PBR.

Инструкция

  1. Выберите схему ORM или RMA.
  2. Загрузите карты AO, Roughness и Metallic одинакового размера.
  3. При необходимости задайте постоянное значение или включите инверсию.
  4. Упакуйте каналы и проверьте R, G и B в предпросмотре.
  5. Скачайте PNG.

Что такое упаковка каналов

Упаковка каналов записывает несколько чёрно-белых карт в один файл: каждая карта занимает отдельный канал R, G или B итоговой текстуры. Так три карты AO, Roughness и Metallic превращаются в одну текстуру вместо трёх отдельных файлов.

Чем отличаются ORM и RMA

ORM записывает AO в канал R, Roughness в канал G и Metallic в канал B. Такой порядок используют glTF и Godot ORMMaterial3D. RMA записывает Roughness в R, Metallic в G и AO в B и встречается в других связках движка и шейдера.

Порядок каналов не универсален для всех программ. Перед экспортом сверьте схему с документацией вашего движка, шейдера или экспортного пресета.

Почему карты должны иметь одинаковое разрешение

Каждый пиксель результата берёт значения из одних и тех же координат всех трёх карт. Если разрешения отличаются, пиксели перестают совпадать, поэтому сервис не изменяет размер и не растягивает карты автоматически.

Зачем нужны постоянные значения

Если какая-то карта не нужна материалу, вместо неё можно задать одно число от 0 до 255 для всех пикселей канала. Например, материал без металла может использовать Metallic 0 без отдельного файла.

Когда нужна инверсия Roughness и Glossiness

Roughness и Glossiness — противоположные величины: белое в Glossiness означает гладкую поверхность, а белое в Roughness означает шероховатую. Если исходный файл на самом деле содержит Glossiness, включите инверсию карты Roughness, чтобы получить корректные значения.

Почему результат сохраняется в PNG, а не JPG

JPG использует сжатие с потерями и меняет отдельные значения пикселей. Для карт данных, где каждое значение имеет смысл, это искажает Roughness, Metallic и AO. PNG сохраняет значения без потерь.

Почему у data-текстур обычно отключают sRGB при импорте

ORM и RMA хранят числовые данные, а не цвет. Если программа применит цветовую коррекцию sRGB, значения каналов исказятся. При импорте такой текстуры в целевую программу отметьте её как данные и отключите sRGB, если это предусмотрено настройками программы.

Сверяйте схему каналов с целевой программой

Одно и то же название пресета может означать разный порядок каналов в разных программах. Сервис всегда показывает текущую раскладку R, G и B рядом с настройками, чтобы её можно было сверить с требованиями шейдера или движка перед импортом.

Файлы не отправляются на сервер

Загрузка карт, упаковка каналов и сохранение PNG выполняются в браузере. Исходные и итоговые изображения не передаются на сервер.

Другие инструменты

Normal Map DirectX/OpenGL преобразует карты нормалей между DirectX и OpenGL.

Проверка бесшовности текстуры показывает текстуру плиткой и помогает найти стыки.

Конвертер изображений меняет формат PNG, JPG, WEBP и других файлов.

Частые вопросы

Что такое ORM-текстура?

Это одна PNG-текстура, где канал R хранит Ambient Occlusion, канал G хранит Roughness и канал B хранит Metallic. Такую раскладку используют glTF и Godot ORMMaterial3D.

Чем RMA отличается от ORM?

В RMA порядок каналов другой: R хранит Roughness, G хранит Metallic и B хранит AO. Перед использованием проверьте, какую раскладку ожидает ваш шейдер или движок.

Можно ли не загружать одну из карт?

Да. Для отсутствующей карты сервис использует постоянное значение от 0 до 255, которое вы задаёте вручную.

Что делать, если размеры карт отличаются?

Сервис не принимает карту другого размера и оставляет ранее загруженную карту без изменений. Приведите файлы к одному разрешению перед загрузкой.

Как преобразовать Glossiness в Roughness?

Загрузите файл Glossiness в карточку Roughness и включите переключатель «Инвертировать». Сервис вычислит 255 минус исходное значение для каждого пикселя.

Почему используется только красный канал входной карты?

Обычные карты AO, Roughness и Metallic хранятся в градациях серого, где красный, зелёный и синий каналы совпадают. Сервис берёт значение из красного канала как источник данных.

Почему результат сохраняется только в PNG?

PNG не искажает значения пикселей при сохранении. JPG использует сжатие с потерями, которое меняет данные каналов.

Нужно ли отключать sRGB после импорта?

Обычно да, если этого требует программа. ORM и RMA хранят числовые данные, а не цвет, поэтому цветовая коррекция sRGB может исказить значения каналов.

Загружаются ли файлы на сервер?

Нет. Загрузка, упаковка и сохранение результата происходят в браузере.