Tiny Online Tools logoTiny Online ToolssearchПоиск инструментов…grid_viewВсе инструменты
Главнаяchevron_right3D-инструментыchevron_rightИнструмент PBR-текстурИнструмент PBR-текстур

Инструмент PBR-текстур

Создавайте и чините PBR-карты текстур прямо в браузере — бесплатно и без отправки файлов.

upload_file

Нажмите для выбора или перетащите файлы сюда

Выберите карту текстуры — PNG, JPG или WebP

Допустимо: .png,.jpg,.jpeg,.webp

ОперацияВысота → нормалиНормали → высотаИнвертировать зелёный каналОбесцветить в шероховатостьИнвертировать картуВысота → фоновое затенениеНастроить уровни и контрастБерёт градиент Собеля от поля высот и кодирует его как карту нормалей в касательном пространстве. Выберите конвенцию зелёного канала, которую ждёт ваш движок.Масштабирует градиент до нормализации. Бо́льшие значения сильнее наклоняют нормали и утрируют рельеф.Сначала сглаживает поле высот. Берите 1–2 px, когда 8-битный источник даёт ступени на пологих склонах.Направление зелёного каналаOpenGL / glTF / Blender (+Y вверх)DirectX / Unreal (+Y вниз)OpenGL, glTF, Blender, Unity и Godot ждут зелёный, направленный вверх. DirectX, Unreal Engine и 3ds Max ждут его направленным вниз. Если в вашем рендерере выпуклости читаются как вмятины, вы выбрали другую.Более крупные источники уменьшаются перед обработкой. Фоновое затенение и проходы релаксации становятся медленными задолго до 4096 px.

Похожие инструменты

Упаковщик каналов текстур

Упаковщик каналов текстур

Упакуйте четыре градаций серого карты в одну RGBA-текстуру или распакуйте готовую текстуру обратно в отдельные изображения.

Оптимизатор 3D-текстур

Оптимизатор 3D-текстур

Меняйте размер, конвертируйте и сжимайте текстуры, встроенные в модели GLB, GLTF, FBX и USDZ — бесплатно и полностью в браузере.

Инструмент UV 3D

Инструмент UV 3D

Посмотрите UV-карту любой модели GLB, GLTF, OBJ, STL, PLY, FBX или DAE прямо в браузере.

Редактор нормалей и касательных 3D

Редактор нормалей и касательных 3D

Просматривайте, пересчитывайте, разворачивайте или удаляйте нормали вершин и генерируйте касательные для любой 3D-модели.

Сортировка ключей JSON

Сортировка ключей JSON

Сортируйте ключи JSON по алфавиту для чистых diff и удобного ревью.

Сканер портов (локальный)

Сканер портов (локальный)

Локальный инструмент проверки портов с помощью запросов браузера.

Разделить PDF по размеру файла

Разделить PDF по размеру файла

Разделите PDF на меньшие части, каждая из которых не превышает указанный максимальный размер в мегабайтах. Идеально для вложений и лимитов загрузки.

apps

Больше инструментов

Просмотрите нашу полную коллекцию бесплатных онлайн-инструментов.

Карты, которых вам не дали

Наборы текстур редко содержат все карты, нужные PBR-материалу. Вам достаётся фотография и карта высот, или карта нормалей, запечённая под другой движок, или карта глянцевости, когда рендереру нужна шероховатость. Этот бесплатный онлайн-инструмент превращает то, что у вас есть, в то, что вам нужно, — прямо в браузере.

Из карты высот в карту нормалей

Карта высот хранит возвышение как яркость; карта нормалей хранит направление для каждого пикселя. Преобразование означает взять градиент поля высот и построить по нему нормаль поверхности: N = normalize(-dh/du, -dh/dv, 1).

Градиент оценивается ядром Собеля 3x3, а не простой разностью соседних пикселей, потому что 8-битные карты высот плохо квантуются, и грубая разность превращает это квантование в заметную огранку. Сила масштабирует градиент до нормализации: малые значения дают сдержанную поверхность, большие — утрируют рельеф. Добавьте предварительное размытие, если на пологих склонах источник идёт полосами.

Инверсия зелёного: проблема OpenGL против DirectX

Самая распространённая ошибка с картами нормалей в 3D — и правится она одной строкой. У касательного пространства ось V направлена вверх, но изображения хранятся сверху вниз, и из этого расхождения выросли две конвенции:

  • OpenGL / glTF / Blender / Unity / Godot — зелёный это +Y, направлен вверх. Его же называют Y+.
  • DirectX / Unreal Engine / 3ds Max — зелёный это -Y, направлен вниз. Его же называют Y-.

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

Лекарство — g = 255 - g: инвертировать только зелёный канал и ничего больше, ровно это и делает Инвертировать зелёный канал. Операция обратна самой себе, поэтому преобразует в обе стороны.

Из нормалей в высоту, честно говоря

Восстановление высоты из карты нормалей означает решение уравнения Пуассона, поэтому инструмент интегрирует поле наклонов и выполняет проходы релаксации, чтобы убрать дрейф. Увеличьте число проходов, если мягкие градиенты появляются там, где поверхность должна быть плоской. Восстановима только относительная глубина, поэтому результат нормализуется.

Шероховатость, глянцевость и затенение

Обесцветить в шероховатость использует перцептивную яркость, а не среднее по каналам; затем поправьте диапазон уровнями. Инвертировать карту переводит шероховатость в глянцевость или гладкость и обратно. Фоновое затенение из высоты сканирует наружу в нескольких направлениях от каждого пикселя и затемняет его по самому крутому найденному горизонту — ползунок масштаба высоты даёт ту глубину, которой у полутонового изображения нет.

Всё выполняется на вашем устройстве средствами собственных canvas-API браузера; ни одна текстура никуда не отправляется.