Текстурный атлас - это большое изображение или "атлас", который содержит много изображений меньшего размера, каждое из которых является текстурой для какой-то части объекта.
Подтекстуры можно накладывать путём указания текстурных координат на атласе, то есть выбирая только определённую часть изображения. В приложениях, в которых часто используются мелкие текстуры, более эффективно хранить текстуры в текстурном атласе, так как:
Позволяет сократить количество смен состояний до одного для всего атласа.
Уменьшает количество занятых текстурных слотов до одного для всего атласа.
Минимизируется фрагментация видеопамяти.
Появляется возможность использования NPOT "текстур" (Т.е. атлас будет соблюдать Power of Two, а его элементы можно делать произвольного размера).
Однако, использование атласов может приводить к возникновению новых проблем:
Cовмещение краёв подтекстур становится нетривиальной задачей.
Становится сложно или невозможно использовать мипмаппинг
При использовании фильтрации текстуры необходимо добавлять отступы, чтобы соседние подтекстуры не смешивалась с нужной.
Создание атласов вручную может быть трудоёмко, поэтому потребуется использовать специальные программы для генерирования атласов.
Возникают небольшие потери памяти, так как часть атласа может быть не занята текстурами.
Типичным примером текстурного алтаса является текстура со шрифтом:
В ней все символы имеют одинаковую форму и размер (так называемые тайлы), однако, подтекстуры в общем случае могут располагаться произвольно.
> так как копирование текстуры из ОЗУ в память видеокарты является дорогой операцией
Где ты такое вообще вычитал в "по материалам Википедии"? Или это перевод "because there are less rendering state changes by binding once"?
nes >Эм... его еще двести лет назад изобрели, че нового?
Термина не было на геймдеве. Я читаю на форуме про атлас и не могу понять, о чём идёт речь.
entryway > Что за чушь? Где ты такое вообще вычитал в "по материалам Википедии"? Или это > перевод "because there are less rendering state changes by binding once"?
1. Перевод не дословный.
2. Это предложение я написал на основе вот этой статьи: http://blog.wonderville.ru/texture-atlas/ Думаю, мысль передал верно. Если нет, всегда рад уточнить и дополнить термин.
Skyblade > 2. Это предложение я написал на основе вот этой статьи: > http://blog.wonderville.ru/texture-atlas/ Думаю, мысль передал верно. Если нет, > всегда рад уточнить и дополнить термин.
Вопрос один - в каком месте ты нашел копирование?
преимущества описаны ммм... неверно
это:
переключение на текстуру сведено к 1
один текстурный слот
в некоторых случаях смена текстуры производиться сдвигом текстурных координат
минимизирована фрагментация видеопамяти
и добавить что: обычно подтекстуры равноразмерны (т.н. тайлы), но не всегда
Skyblade > Я читаю на форуме про атлас и не могу понять, о чём идёт речь. Skyblade > Думаю, мысль передал верно.
Плохая идея писать о том, чего не знаешь, не понимаешь, ввиду того, что введешь в заблуждение других...
Skyblade > Кроме того, видеокарта может хранить только ограниченное количество текстур.
видеокарта может одновременно использовать ограниченное число текстур (текстурных слотов)
> Подтекстуры можно накладывать путём указания текстурных координат на атласе....
наложение участка текстуры и быстрая смена не одно и то же
техника одна, но способы разные
сами текстурные координаты могут не изменяться, но могут обрабатываться
-Eugene- > Я не про текст, а про АПИ. Где там ты нашел частое копирование?
Если у нас текстурных слотов меньше, чем мы хотим использовать текстур в кадре, то приходится часто (то есть на каждом кадре) копировать текстуры в видеокарту, разве не так?
clc >наложение участка текстуры и быстрая смена не одно и то же
Я смену текстур (даже если у них одинаковые текстурные координаты) не рассматриваю, так как всё равно переключать текстуры, скорее всего, придётся, а эта операция либо не зависит от её размера, либо мало зависит, так как всё упирается в кол-во текстурных слотов.
Skyblade > Если у нас текстурных слотов меньше, чем мы хотим использовать текстур в кадре, то приходится часто (то есть на каждом кадре) копировать текстуры в видеокарту, > разве не так?
То есть по-твоему в видюху может быть загружено одновременно лишь 8 (или сколько там слотов) текстур?