Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Термины / Текстурный атлас

Текстурный атлас

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

  1. Позволяет сократить количество смен состояний до одного для всего атласа.
  2. Уменьшает количество занятых текстурных слотов до одного для всего атласа.
  3. Минимизируется фрагментация видеопамяти.
  4. Появляется возможность использования NPOT "текстур" (Т.е. атлас будет соблюдать Power of Two, а его элементы можно делать произвольного размера).

Однако, использование атласов может приводить к возникновению новых проблем:
  1. Cовмещение краёв подтекстур становится нетривиальной задачей.
  2. Становится сложно или невозможно использовать мипмаппинг
  3. При использовании фильтрации текстуры необходимо добавлять отступы, чтобы соседние подтекстуры не смешивалась с нужной.
  4. Создание атласов вручную может быть трудоёмко, поэтому потребуется использовать специальные программы для генерирования атласов.
  5. Возникают небольшие потери памяти, так как часть атласа может быть не занята текстурами.

Типичным примером текстурного алтаса является текстура со шрифтом:
texture atlas | Текстурный атлас
В ней все символы имеют одинаковую форму и размер (так называемые тайлы), однако, подтекстуры в общем случае могут располагаться произвольно.



По материалам Википедии. Изображение взято из этой темы: http://www.gamedev.ru/projects/forum/?id=152527

Что такое Текстурный атлас?

19 сентября 2011

#графика, #текстурирование


Обновление: 4 октября 2011

Комментарии:
Страницы: 1 2 3 4 5 Следующая »
MicardПостоялецwww19 сен. 201115:26#1
Спасибо, волновал этот вопрос!
nesПостоялецwww19 сен. 201115:53#2
Эм... его еще двести лет назад изобрели, че нового?
entrywayПостоялецwww19 сен. 201116:00#3
> так как копирование текстуры из ОЗУ в память видеокарты является дорогой операцией
Где ты такое вообще вычитал в "по материалам Википедии"? Или это перевод "because there are less rendering state changes by binding once"?
SkybladeУчастникwww19 сен. 201116:05#4
nes
>Эм... его еще двести лет назад изобрели, че нового?
Термина не было на геймдеве. Я читаю на форуме про атлас и не могу понять, о чём идёт речь.

entryway
> Что за чушь? Где ты такое вообще вычитал в "по материалам Википедии"? Или это
> перевод "because there are less rendering state changes by binding once"?
1. Перевод не дословный.
2. Это предложение я написал на основе вот этой статьи: http://blog.wonderville.ru/texture-atlas/ Думаю, мысль передал верно. Если нет, всегда рад уточнить и дополнить термин.

EugeneУчастникwww19 сен. 201116:18#5
Skyblade
> 2. Это предложение я написал на основе вот этой статьи:
> http://blog.wonderville.ru/texture-atlas/ Думаю, мысль передал верно. Если нет,
> всегда рад уточнить и дополнить термин.
Вопрос один - в каком месте ты нашел копирование?
entrywayПостоялецwww19 сен. 201116:22#6
-Eugene-
> Вопрос один - в каком месте ты нашел копирование?
В первом абзаце.
EugeneУчастникwww19 сен. 201116:42#7
entryway
Я ему.
clcПостоялецwww19 сен. 201117:54#8
преимущества описаны ммм... неверно
это:
переключение на текстуру сведено к 1
один текстурный слот
в некоторых случаях смена текстуры производиться сдвигом текстурных координат
минимизирована фрагментация видеопамяти

и добавить что: обычно подтекстуры равноразмерны (т.н. тайлы), но не всегда

SkybladeУчастникwww19 сен. 201118:31#9
-Eugene-
> Вопрос один - в каком месте ты нашел копирование?
В первом:
постоянное переключение текстур в виде копирования их из ОЗУ в память видеокарты

clc
> переключение на текстуру сведено к 1
1 чего? Какая единица измерения?

>один текстурный слот
Следующая фраза это подразумевает, может быть, раскрою чуть подробнее.

Кроме того, видеокарта может хранить только ограниченное количество текстур.

> в некоторых случаях смена текстуры производиться сдвигом текстурных координат
Я так и написал, только доступнее:
Подтекстуры можно накладывать путём указания текстурных координат на атласе, то есть выбирая только определённую часть изображения.

>минимизирована фрагментация видеопамяти
Добавим.

EugeneУчастникwww19 сен. 201118:40#10
Skyblade
> 1 чего? Какая единица измерения?
Единица измерения - "Раз".

> В первом:
Я не про текст, а про АПИ. Где там ты нашел частое копирование?

StiXУдалёнwww19 сен. 201118:55#11
Skyblade
> Я читаю на форуме про атлас и не могу понять, о чём идёт речь.
Skyblade
> Думаю, мысль передал верно.
Плохая идея писать о том, чего не знаешь, не понимаешь, ввиду того, что введешь в заблуждение других...
clcПостоялецwww19 сен. 201118:57#12
Skyblade
> Кроме того, видеокарта может хранить только ограниченное количество текстур.
видеокарта может одновременно использовать ограниченное число текстур (текстурных слотов)

> Подтекстуры можно накладывать путём указания текстурных координат на атласе....
наложение участка текстуры и быстрая смена не одно и то же
техника одна, но способы разные
сами текстурные координаты могут не изменяться, но могут обрабатываться

SkybladeУчастникwww19 сен. 201119:05#13
-Eugene-
> Я не про текст, а про АПИ. Где там ты нашел частое копирование?
Если у нас текстурных слотов меньше, чем мы хотим использовать текстур в кадре, то приходится часто (то есть на каждом кадре) копировать текстуры в видеокарту, разве не так?

clc
>наложение участка текстуры и быстрая смена не одно и то же
Я смену текстур (даже если у них одинаковые текстурные координаты) не рассматриваю, так как всё равно переключать текстуры, скорее всего, придётся, а эта операция либо не зависит от её размера, либо мало зависит, так как всё упирается в кол-во текстурных слотов.

ObjectУдалёнwww19 сен. 201119:10#14
Skyblade
> Если у нас текстурных слотов меньше, чем мы хотим использовать текстур в кадре, то приходится часто (то есть на каждом кадре) копировать текстуры в видеокарту,
> разве не так?
То есть по-твоему в видюху может быть загружено одновременно лишь 8 (или сколько там слотов) текстур?
Страницы: 1 2 3 4 5 Следующая »

/ Форум / Программирование игр / Графика

Тема в архиве.

2001—2018 © GameDev.ru — Разработка игр