Оптимизация текстур: оверлапы, реюз, декали

Оверлап (overlap или реюз) — это накладывание одинаковых UV-шеллов на UV-развертке друг на друга с целью экономии текстурного пространства.
Эту технику можно использовать на моделях со множеством повторяющихся плоскостей/элементов, для которых не важна уникальность текстуры.
Мы говорим об уникальности, потому что если два элемента лежат на одном месте в UV-пространстве и используют общую текстуру — на них будет отображаться одинаковый набор пикселей.

box-overlap.gif

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

Способы создания оверлапов

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

Способ 1

Когда ты закончил оптимизацию Low poly модели и приступаешь к работе с UV — удали все элементы и полигоны, которые планируешь оверлапить, и оставь только по одному референсному элементу.

cylinders_re-use.png

Например: у тебя есть 10 одинаковых винтов. Тебе нужно удалить 9 из них, развернуть один, который остался, а потом сделать 9 копий развернутого винтика.

Дальше можешь работать с UV как обычно. Единственное, что нужно учесть в таком случае, — когда UV будет готова, тебе предстоит раскопировать обратно все удаленные элементы.

UV-copy.gif

Используя этот подход, ты можешь создавать оверлапы для множества разных элементов, и тебе не придется выискивать нужные шеллы в UV-эдиторе. Удобно, если модель простая и нет проблем с расположением копий всех элементов на последнем этапе.

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

cylinders_re-use_instance.png

Способ №2

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

uv-snaping.gif

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

Преимущества оверлапов на примере ассета

Возьмем ящик для патронов и сделаем для него две развертки: одна без использования оверлапов, а вторая — с ними. Texel density будем держать в районе 512px/m.

overlapVSnon-overlap.png

В развертке с реюзом нужный тексель удалось сделать при разрешении текстуры 2048х2048. Для текселя такой же плотности без оверлапов понадобится текстура 4096х4096.

Карта Albedo на примере с реюзом весит на 11.2 Мб меньше. На всем текстурном сете можно будет сэкономить ~30 мегабайт. А теперь представь экономию в рамках проекта, когда таких сетов сотни. Десятки гигабайт.

Вывод: реюз помогает эффективнее использовать ресурсы проекта.

Теперь остается добавить уникальности текстурам: надписи, несимметричные детали и другие элементы, которые невозможно нанести оверлапами. Для это есть декали.

Декали

Декалями в геймдеве называют текстуры с нарисованными на них надписями / подтеками / элементами. Фон текстур обрезается с помощью альфа канала, а на объект они наносятся либо в самом движке, либо с помощью геометрических плейнов как часть модели.

decals_example.png

Абстрактный пример текстуры для декалей. В реальных проектах текстурное пространство используется более рационально.

Так как декали используют свою отдельную текстуру, они никак не привязаны к объекту и их можно использовать для нанесения надписей поверх реюзнутых плоскостей.

decals-placing.gif

Ошибки при использовании оверлапов

Оверлапы нужно использовать осторожно, ведь если реюзаемые плоскости находятся рядом — может возникнуть «эффект бабочки».butterfly_dirt.png

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

butterfly-lines.gif

Чуть больше о проблемах с оверлапами можно почитать в нашей статье о проверке дополнительных карт.

На этом все. Пользуйся осознанно и старайся искать баланс между уникальностью и оптимальностью. Иногда все же лучше сделать разрешение текстур чуть выше, но сохранить интересный вид объекта. В любом случае, теперь ты еще ближе к работе с текстурами на уровне «PRO».

730 0 850 12
4
2020-12-04
Как в старые добрые времена - четко и по делу. Слава текстовым урокам!
2020-12-06
привет 🙋‍♀ подскажите пожалуйста возможно ли найти фри рендер октан для скачивания на mac catalina🍏
2020-12-07
Anastasia Volkovaпривет 🙋‍♀ подскажите пожалуйста возможно ли найти фри рендер октан для скачивания на mac catalina🍏
для блендера по идее должен быть...
2023-04-10
Игорь СтаростинКак в старые добрые времена - четко и по делу. Слава текстовым урокам!

Воистину.

Текстовые уроки намного (намного!) эффективнее и… логичнее, что ли
Не, ну ясен перец, некоторые моменты необходимо иллюстрировать короткими видосиками (гифками?) по делу. Но прелесть видеоуроков, как таковых, мне невдомёк.
Видео лекция, само собой, прекрасно, но видеоурок…
Может я человек из прошлого, а это может в настоящем, в котором не умеют и не любят внятный иллюстрированный текст, что-то не то :-D
RENDER.RU