Raycastly Texture Ripper — бесплатная программа с открытым исходным кодом, которая позволяет извлекать и выпрямлять фрагменты фотографий, объединяя их в одно изображение. Его можно использовать как отдельную текстуру или как атлас текстур для текстурирования поверхностей наших 3D-объектов.
Видеоверсия этого руководства в настоящее время недоступна на этом языке. Ниже вы можете посмотреть английскую версию с субтитрами; под видео вы найдете перевод расшифровки на русский язык.
Текстовая расшифровка видео
Raycastly Texture Ripper (GitHub)
Всем привет! В этом коротком уроке я расскажу о Raycastly Texture Ripper — бесплатной программе с открытым исходным кодом для извлечения и выпрямления фрагментов фотографий. Она объединяет их в одно изображение, которое можно использовать как отдельную текстуру или как атлас текстур для текстурирования поверхностей наших 3D-объектов.
В описании есть ссылка на страницу Texture Ripper на GitHub, где можно скачать архив с исходным кодом или прокрутить страницу вниз и нажать GitHub Pages, чтобы запустить Texture Ripper прямо в браузере, без скачивания и установки. Если же вы хотите скачать программу, нажмите Download Desktop App внизу справа, чтобы перейти на страницу загрузок.

Сначала посмотрим на рабочую область, которая разделена на две части. Слева можно загрузить одну или несколько фотографий с помощью кнопки Upload или перетаскивания. В этом примере я импортирую только одну фотографию, но за один сеанс можно загрузить несколько изображений и поручить Texture Ripper их разместить с помощью Auto Pack. Каждое фото можно масштабировать или перемещать в рабочей области, а затем зафиксировать расположение, нажав Lock в левом верхнем углу.


Внизу слева находятся кнопки для рисования и удаления областей извлечения на исходных изображениях. Для рисования есть режимы Draw и Rectangle, но Rectangle работает стабильнее, поэтому я выберу его. Кнопка Extract All затем позволит создать текстуры для заданных областей, но к этому мы скоро вернёмся. Добавлю первый прямоугольник. У него четыре пронумерованные контрольные точки по углам, а также промежуточные контрольные точки вдоль сторон, которые мы используем позже.


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



У полученного изображения явно нарушена перспектива: сверху оно сильнее сжато, как и слева. Скоро мы увидим, как с помощью остальных контрольных точек исправить эти проблемы. Но сначала я заново задам прямоугольник извлечения слева, пытаясь охватить квадрат из шестнадцати целых плиток без видимых стыков при повторении. Затем нажму Extract All ещё раз: изображение справа обновится, а предыдущее будет удалено.


У этого изображения тоже изначально неверные пропорции и нарушена перспектива. Посмотрим, как это исправить. Сначала переместим контрольные точки вдоль сторон прямоугольника. Эти точки особенно полезны на фотографиях с сильными искажениями по краям, например снятых широкоугольным объективом, поскольку позволяют изгибать прямоугольник извлечения. Здесь же я использую их, чтобы выровнять интервалы между пунктирными линиями: двумя горизонтальными и двумя вертикальными, и устранить сжатие сверху и слева на текстуре. Как видите, синие кружки этих контрольных точек остаются на исходных местах и напоминают, где находились середины сторон, а жёлтые кружки мы перемещаем, чтобы изменить извлечение. Время от времени я нажимаю Extract All для обновления текстуры, затем корректирую её и снова нажимаю Extract All, пока результат не станет удовлетворительным. Остаётся исправить общие пропорции, то есть ширину и высоту изображения.




На этом этапе особенно полезен светлый квадрат в области экспорта справа. Он обозначает область изображения, которая будет экспортирована в конце работы. Её разрешение задаётся двумя полями в верхней части окна. По умолчанию это 512 на 512 пикселей. Сначала я установлю большее разрешение, например 1024 на 1024. Автоматическая привязка текстуры к краям этой области экспорта помогает разместить её. Поскольку она изображает квадрат из 16 плиток, можно правильно задать ширину и высоту, заполнив область экспорта. После этого мы получим текстуру 1024 на 1024, готовую к экспорту в PNG нажатием кнопки Export Atlas в правом верхнем углу. Но сначала я покажу, как добавить в атлас другие области извлечения, а значит, и другие текстуры.




Слева я снова нажимаю Add Rectangle, чтобы задать дополнительные прямоугольники извлечения и выбрать другие интересные участки фото. Затем нажимаю Extract All, чтобы создать новые текстуры, которые можно разместить в рабочей области справа.



Я также размещаю эти текстуры в атласе, меняя высоту области экспорта, чтобы освободить место для новых изображений. Функцию Auto Pack с кнопкой вверху я не использую: здесь она мне не кажется нужной. Но полезно знать, что она есть. На самом деле этот атлас не идеален, поскольку для такого применения обычно лучше экспортировать квадратные изображения, возможно, добавив элементы из других исходных фотографий. Однако для этого быстрого примера этого достаточно. Когда всё готово, экспортирую изображение в PNG через Export Atlas.


Созданную текстуру можно использовать как основу для создания PBR-материала, например в Substance Painter, как я сейчас показываю на экране. Здесь я быстро создаю каналы Roughness и Metallic из базовых материалов, а также карту высот непосредственно из атласа текстур. Конечно, это не полноценно подготовленная карта высот, но для быстрого примера её более чем достаточно.


И наконец, вот PBR-текстуры, экспортированные из Substance Painter и применённые к простой 3D-модели в Blender. Здесь ещё можно доработать UV-швы или перекрытия, чтобы избежать неудачных повторов и стыков. Карта высот экспортирована из Substance Painter как карта нормалей и применена к шейдеру Principled в Cycles, создавая эффект рельефа на плитках.



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