Как избежать повторяющихся паттернов в текстурах — процедурное стохастическое текстурирование в Unity

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

Если использовать тайловые текстуры для покрытия больших поверхностей, то довольно быстро появится проблема — паттерны в изображении будут повторяться. Специалисты Unity Lab Томас Делиот и Эрик Хейц в 2019 году опубликовали метод текстурирования, который позволяет избежать этой проблемы, — процедурное стохастическое (случайное) текстурирование.

Слева — пример повторяющихся паттернов, справа — применение техники процедурного стохастического текстурирования
Слева — пример повторяющихся паттернов, справа — применение техники процедурного стохастического текстурирования

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

Сам плагин — это вариация Standard Shader для Unity. После импорта пакета нужно выбрать StandardStochastic shader для материала. При этом интерфейс будет таким же как у Standard shader, но с двумя новыми элементами настройки сверху.

Как избежать повторяющихся паттернов в текстурах — процедурное стохастическое текстурирование в Unity

В меню Stochastic Inputs можно выбрать оригинальную текстуру для генерации новой.

Как избежать повторяющихся паттернов в текстурах — процедурное стохастическое текстурирование в Unity

Затем достаточно нажать на кнопку Apply, чтобы материал обновился, а сам процесс был завершён.

В следующих примерах показано, как прототип работает с различными материалами, используя небольшие (256²) входные текстуры.

Материал древесины с картами альбедо, нормалей и оклюжен
Материал древесины с картами альбедо, нормалей и оклюжен
Материал камня с картами альбедо, нормалей, оклюжен и высот
Материал камня с картами альбедо, нормалей, оклюжен и высот
Материал железа с картами альбедо, нормалей и эффектом metallic/smoothness
Материал железа с картами альбедо, нормалей и эффектом metallic/smoothness

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

Как избежать повторяющихся паттернов в текстурах — процедурное стохастическое текстурирование в Unity

Кроме того, это всё ещё прототип, который находится в работе, поэтому авторам важен фидбек — его можно оставить на официальном форуме. Скачать плагин можно здесь.

#unity #графика #опыт

215215
66 комментариев

Ну вот. Рассказали про область применимости, так теперь хочется увидеть, как это будет работать с текстурой кирпичной кладки или любой другой "неподходящей" текстурой)

27
Ответить

Комментарий недоступен

15
Ответить

А зачем это делать с кирпичами? Или ты отбалды сказал? Пруф оф концепт такого подхода у тебя есть? Примеры из игр, а не демо? Ну реально. Очередной свергатель режимов. Наш рендер держит 1000 источников света с тенями. А 1001 не держит? Тупые лохи, ахахахах! Еще лайков нахватешь щас. Мдэ.... Это максимум для затайливания чего-либо. Откуда кирпичная кладка, когда её всегда делали униками....

6
Ответить

Комментарий недоступен

4
Ответить

А мне больше интересно, будет ли оно работать в последней версии Unity.

1
Ответить

Комментарий недоступен

Ответить

Для всяких кирпичных и каменных кладок желательно писать отдельный алгоритм генерации.

Ответить