> Видеокарта может одновременно использовать ограниченное число текстур (текстурных слотов), поэтому использование одной большой текстуры позволяет сократить количество смен состояний.
Фраза в стиле:
"У нас в магазине продаётся хлеб, поэтому в африке дождь".
StiX
> Плохая идея писать о том, чего не знаешь, не понимаешь, ввиду того, что введешь в заблуждение других...
+1
RPG
> А есть качественный софт для генерации текстурных атласов?
У НВ есть какаято тулза по атласам, но я не пользовал.
Я свои тулзы писал для этого.
clc
Да, почему это не атлас? Если бы каждую часть персонажа мы хранили отдельным изображением, то это не было бы атласом. А тут как раз всё в одной картинке.
Executor
>Фраза в стиле:
>"У нас в магазине продаётся хлеб, поэтому в африке дождь"
Больше конкретики, пожалуйста. Если фраза неправильна или некорректна, то вы, очевидно, знаете, как написать правильно. Почему же не предлагаете верный вариант?
Это тестурная развёртка, думаю врядли это можно назвать атласом, так как в текстуре хранится одна текстура персонажа. Вот если бы, кроме текстуры перса, там была бы текстура оружия например, то уже атласом можно было назвать.
Executor
Имхо, суть атласа не в том, что хранится, а как хранится.
Skyblade
> Да, почему это не атлас?
Потому что это лишь неполное использование текстурной поверхности. Скажем - не самая оптимальная раскладка.
Skyblade
> Имхо, суть атласа не в том, что хранится, а как хранится.
имхо: как храниться и как используется
Skyblade
> Больше конкретики, пожалуйста. Если фраза неправильна или некорректна, то вы,
> очевидно, знаете, как написать правильно. Почему же не предлагаете верный
> вариант?
Фраза построена не корректно.
Из первого нельзя сделать вывод про второе. Нет связи между первой частью предложения и второй.
Вторая часть - да, но это не имеет никакой связи с количеством текстурных слотов.
Тебе уже писали об этом по пунктам:
1) Уменьшение количество биндов текстуры до 1.
2) Уменьшение занимаемых текстурных слотов до 1 (в случае когда было несколько текстур на разных слотах конечно же).
3) Последовательность в памяти.
Но ещё стоит и описать минусы атласов:
1) Геморный враппинг.
2) Бубны для мипмапов.
3) Надо делать бордюры, если будет фильтрация.
4) Надо делать тулзы для упаковки атласов.
Executor
Поправил пункты + добавил минусы.
> 3) Последовательность в памяти.
Всё-таки "минимизация фрагментации" достаточно полно описывает ситуацию.
clc
>имхо: как храниться и как используется
Вот в этом месте поподробнее. Я считаю, что атласы могут быть построены оптимально и неоптимально, но они всё равно остаются атласами.
Приведите контрпример, когда на одной текстуре расположены несколько подтекстур, но она не обладает свойствами и преимуществами атласа (то есть выгоднее использовать несколько отдельных текстур вместо одной).
Skyblade
> Всё-таки "минимизация фрагментации" достаточно полно описывает ситуацию.
Ну я и не предлагаю копипастить мои слова. :)
> Имхо, суть атласа не в том, что хранится, а как хранится.
А какая разница? Совершенно пофиг какие данные хранятся и как они расположены.
Атлас - это несколько текстур в одной текстуре, так?
В случае персонажа, на прошлой странице, там одна текстура, нет?
Executor
> Я свои тулзы писал для этого.
С упаковкой или просто тайлы?
Executor
> 1) Геморный враппинг.
> 2) Бубны для мипмапов.
> 3) Надо делать бордюры, если будет фильтрация.
> 4) Надо делать тулзы для упаковки атласов.
В атласы обычно пакуют 2D спрайты, там ни мипов, ни фильтрации как правило нет. Что касается развертки то просто делают по текстуре на объект, рациональность использования текстуры ограничена криворукостью моделлера. А грамотная прога для упаковки спрайтов сгенерит и враппер для движка. Потом в движке такую текстуру даже легче использовать.
Я нашел одну неплохую прогу, написанную на java, хорошо то что кроссплатформенная, но алгоритм упаковки оставляет желать лучшего, а экспорт в xml который ой как не хочется парсить.
В плюсы от себя добавлю возможность безболезненного сохранения non-power-of-two картинок.
У меня кое-что даже получилось (как раз 40+40+10 спрайтов нужно укатать в одну текстуру), но в силу строения движка есть повторяющиеся спрайты и хотелось бы чтобы помимо пакинга она ещё и объединяла их.
P.S. какой кривой на форуме img тег :-O
Executor
> Ну я и не предлагаю копипастить мои слова. :)
Конечно, потому что вот так:
1) Геморный враппинг.
2) Бубны для мипмапов.
3) Надо делать бордюры, если будет фильтрация.
4) Надо делать тулзы для упаковки атласов.
я написать не могу, надо адаптировать :)
Executor
> В случае персонажа, на прошлой странице, там одна текстура, нет?
Кажется, нужно уточнить, что вы вкладываете в понятие "текстура" в данном случае. Потому что у меня ощущение, что вашу фразу нужно читать примерно так:
Атлас - это несколько [модельных] текстур в одной текстуре [видеокарты], так?
Я в определении не различаю понятие текстуры, которая предназначается для одной или разных моделей. Для меня текстура - это то изображение, что хранится в памяти видеокарты.
Skyblade
> атласы могут быть построены оптимально и неоптимально
всегда оптимально, причём зная некоторые параметры мы сможем выбирать любой сходный участок пользуясь минимумом средств
Executor
> Атлас - это несколько текстур в одной текстуре, так?
это текстурный кеш
в примере к термину это атлас, а упаковщик от RPG делает текстуры
ну и в минусы возможную небольшую потерю памяти (под выравнивание в POT)
правко: в том-то и прикол, что выборка разных частей текстуры и наложение на разные объекты это свойство текстуры и, следовательно, атласа. Но нам нужны отличия атласа.
правко+:
>1. Позволяет сократить количество смен состояний до одного для всего атласа.
>2. Уменьшает количество занятых текстурных слотов до одного для всего атласа.
до одного для всех текстур в атласе (т.к. сам атлас переключается скоко угодно раз. т.е. раз установив атлас, мы установим все текстуры в нём разом)
clc
> правко: в том-то и прикол, что выборка разных частей текстуры и наложение на
> разные объекты это свойство текстуры и, следовательно, атласа. Но нам нужны
> отличия атласа.
В моём понимании всё, что сливается в одну текстуру вместо использования отдельных - уже атлас. Поэтому хочется увидеть какие-то источники, доказывающие, что определение неполное. Либо услышать ещё мнения, чтобы определиться, достаточно ли хранить несколько подтекстур в одной, чтобы она стала атласом.
P.S. Что такое POT?
Skyblade
не смогу похоже обьяснить
разные текстуры в одной - это текстурный кеш
атлас - специализированный кеш
POT = power-of-two
мипмапинг это трилинейная фильтрация
RPG
> С упаковкой или просто тайлы?
С упаковкой.
> В атласы обычно пакуют 2D спрайты, там ни мипов, ни фильтрации как правило нет.
Для ландшафта я юзал атласы. И думаю не только я.
Skyblade
> Атлас - это несколько [модельных] текстур в одной текстуре [видеокарты], так?
Да, что-то вроде того.
Можно подругому сказать. Атлас - это несколько изображений в одной текстуре.
Например логотип билайна, порезанный на части и разнесённый по текстуре в разные углы не станет атласом, это всё ещё одно изображение логотипа Билайна.
Покрайней мере такое определение, даёт более чёткие границы того, где атлас, а где нет.
clc
> разные текстуры в одной - это текстурный кеш
> атлас - специализированный кеш
Согласен.
Правда я бы предпочёл не пользоваться для атласов такой терминологией, потому что обычно под кешем понимается что-то временно хранящееся там.
пожалуйста
хранилище, склад, сторэдж, банк :)
Тема в архиве.