Трипланарное проецирование текстур. Substance Painter
Привет, без углубления в теорию и наглядно разберем как работает трипланарное проецирование текстур, зачем оно нужно и как его применять. Трипланар есть во многих 3D редакторах и игровых движках, принцип везде похожий, отличаются в основном настройки. Я буду показывать на примере Substance Painter, так как многие текстурят модели в нем.
Triplanar mapping — Уже по названию можно понять, что это наложение текстур на модель с трех сторон. Для начала посмотрим, чем оно отличается от привычного UV mapping'a
В UV Projection текстура накладывается на UV координаты 3D модели, благодаря чему объект окрашивается. Это не сложно понять, особенно если вы имели опыт в создании разверток.
Ну а с трипланаром все иначе, текстуры проецируются на весь 3D объект, по осям X, Y, Z.
Представьте, что у вас есть три проектора, вы запустили на них одну и туже картинку и освещаете ими один объект по центру.
В таком методе текстурирования не нужна развертка, но не везде. Например, Substance Painter не позволит вам импортировать модель без UV.
Дело в том, что Painter создает текстуры для экспорта, ему нужно их куда то уложить и схема будет выглядеть примерно так:
Практическое использование
Сделали модель, развернули и отправили в Substance Painter, наносим текстуры и встречаем проблему со швами.
Маска для слоя Dust, накладывается по UV, в указанном месте шов и паттерн текстуры пересекается разными участками.
Теперь переключимся на трипланар, чтобы это сделать, выделите слой или заливку маски, откроется окно Properties, где на первом месте стоят настройки наложения.
Сразу появляется гизмо, для редактирования положения проекций.
В Properties вы сможете вручную настроить положение, вращение и размеров текстуры. Filtering — это тип фильтрации, сглаживания текстуры. В Shape Crop вы можете выбрать будет ли текстура бесконечной или ограничена рамками квадрата в 3D окне.
Помимо избавления от швов, переключение на трипланар помогает наложить текстуру в одном направлении, когда UV острова повернуты в разные.
Еще один случай, когда трипланарный метод улучшит ситуацию: Вы выпрямили ребра UV островов, что привело к небольшим растяжениям, трипланар наложит текстуру по геометрии, скрыв эти растяжения:
Этот пример я уже приводил в прошлой статье, там же я рассказывал зачем выпрямлять ребра на UV.
Трипланар не панацея
Проекции текстур между собой не состыковываются, здесь тоже будут швы. Параметр Hardness редактирует их смешивание, чтобы минимизировать видимость.
С шумными текстурами, вроде той что на гифке, проблем нет, просто выкручиваем параметр на минимум.
С текстурами узоров, решеток и других подобных, возникают трудности:
Нанести их без швов почти невозможно, по крайней мере с такой разверткой.
В этом случае можно вернутся к UV проекции и попробовать исправить саму развертку. Конечно не всегда есть возможность развернуть без швов, они нужны, чтобы избегать растяжений или для оверлапинга.
Можно попробовать другой метод проекции, сферический или односторонний (planar), но и они имеют свои минусы.
Вывод
Возможности избавится от текстурных швов на совсем — нет, но есть способы скрыть и минимизировать их видимость, трипланар один из таких способов, хорошо справляется с «шумными» текстурами и не очень с ровными паттернами, орнаментом.
В Substance Painter у каждого слоя индивидуальная проекция — это значит, что для наилучшего результата вы сможете комбинировать все доступные методы проекции.
спасибо за пост
хотелось бы в будущем прочитать о правильной ретополгии.
да и всех + и - той или иной ретопологии( децимейт в браше, обтягивание, руками лупы чистить)
спасибо
Абзац про выпрямление два раза) Но пост, канешь, немного капитанский.
Подправить кривые смешения можно в фш потом, если увишка без искажений и там не особо нормалей и тыщи карт.
Исправил. Капитанский, для тех кто имеет опыт?
Блин, забыл указать GameDev, а как теперь перенести? - fixed
Распубликовать, в черновике выбрать подсайт и опубликовать снова.
О, красота
Спасибо !