Что-же такое атлас текстур и для чего он используется?

-Что такое атлас текстур?

Атлас текстур является сборкой нескольких текстур в одну большую.

Пример атласа в моем проекте:

Что-же такое атлас текстур и для чего он используется? Gamedev, Unity, Unity3D, Длиннопост

-Где и для чего применим?

В большинстве случаев применяется для небольших уникальных объектов, которые занимают небольшое пространство на UV-Острове, а также используют небольшое разрешение текстур.

Особенно часто используется в мобильных играх/приложениях.

-Почему атласы нужны?

Пример из Unity3D:

Что-же такое атлас текстур и для чего он используется? Gamedev, Unity, Unity3D, Длиннопост

С текстурным атласом, один материал, реалтайм-освещение.


Использование атласа предоставляет возможность использовать один материал на несколько объектов, что уменьшает количество Draw Call, они-же вызовы отрисовки.Также, использование одного материала позволяет комбинировать несколько объектов в один (что тоже значительно снижает DC). Если движку удалось "сбатчить" несколько объектов, то это отобразится в строке "Saved by batching".


*Для удобства с версий выше 5.0, статистика в движке отражается не в DC, а в Batches, которые сразу отражают количество сбатченных DC, которые изначально производились по отдельности. “Батчинг” происходит тогда, когда движок пытается объединить рендеринг нескольких объектов в один DC для уменьшения нагрузки на CPU.


Для отрисовки объекта на экране движок отправляет команду (draw call) графическому API (например, OpenGL или Direct3D). Графический API производит значительную работу для каждого DC, что сильно влияет на производительность CPU.  Документация Юнити

Что-же такое атлас текстур и для чего он используется? Gamedev, Unity, Unity3D, Длиннопост

Без текстурного атласа, два материала, реалтайм-освещение.


Возможно вам покажется, что 3 батча - не так уж и много, но если обратиться к официальной документации Unity, то можно увидеть следующее:

Проверьте показателль “draw calls” в окне Rendering Statistics; если он составляет больше нескольких тысяч (для PC) или нескольких сотен (для мобильных устройств) ...

Думаю, достаточно просто и кратко объяснил.
Внимаю любую критику.
ps Да, я очень ленивый.

Лига Разработчиков Видеоигр

6.6K постов22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"