×
Меню
Индекс

DDS_Mip-levels

Пара слов про сами мип-уровни и ддс формат.
 
(С) выдержка из Сказа про Бамп 2.0 о ДДС формате. (оригинальный текст тов. Майк с Фуллреста)

ДДС - Формат с отличным сжатием за счет удаления некоторой информации, которая глазом не фиксируется (или очень мало фиксируется). (прим. ред. - только не в случае Бампа, там все очень заметно)
В общем, как и jpg - поддерживает создание мип-уровней (mip-level's)
mip-maps - это уменьшенные в два раза на каждый уровень копии оригинального изображения.
Чем дальше находится объект от игрока, тем меньшая по размерам текстура используется для этого объекта, с одной стороны, это уменьшает нагрузку на видео карту, с другой стороны, при уменьшении текстуры происходит ее фильтрация и она будет смотреться сглаженной, а не зернистой. В случае, если большая текстура натянута на маленький объект, у текстуры 1024*1024 - 9 мип-уровней, и если объект расположен на границе видимости, для него будет применена не вся огромная текстура, а последний мип-уровень 2*2, почувствуйте разницу...
ДДС - поддерживает разные типы сохранения изображения, а главное - альфа-канал, все DXT - это 24 бита на RGB информацию и отличаются только по сохранению альфа-канала.

Примечание.
На самом деле, кол-во мипуровней и формат текстуры никак не сказываются на разгрузке видеопамяти.
Т.е. не важно на каком удалении вы от объекта и какого размера на нем мип-карта, объем занятой памяти у видеокарты не изменяется.
 
Примечание.
Также, для работы мип-уровней важна не только текстура их содержащая, но и размер шага текстуры на объекте!
Т.е. на малые полигоны будет накладываться дальний мип-уровень, а на большие - ближний.
Это будет хорошо видно, если зашкурить некую модель содержащую разноразмерые полигоны, в режиме FACE. Т.е. на каждый полигон накладывается полная копия текстуры а не какой-то участок оной.
В этом случае можно увидеть, практически все мип-уровни в действии на одном объекте не отходя от него!
Это следует учитывать создавая текстуры с измененными лодами!
 
Кол-во мип-уровней в текстуре зависит от ее размера в т.ч.
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096
Сначала идут самые большие, для максимально приближенных поверхностей.
Затем по убывающей.
Ниже 32 пикселей различить что либо, проблематично.
 
Впрочем, Мип-уровни хороши не только для оптимизации натягивания текстур на модель, но и  для создания интересных эффектов.
 
Однако, для текстур используемых в эффектах, это не дает результата.
Т.к. они всегда используют самый большой мип-уровень.
Для таких текстур, можно вовсе не создавать, или удалять уже имеющиеся мип-уровни.

http://stalkerin.gameru.net/wiki/index.php?title=Работа_с_форматом_.dds
Фильтрация мип-уровней
(прим. ред. при создании текстур в МВ обычно просто не заморачиваются с настройками фильтрации МЛ, оставляя все по умолчанию, работает и ладно! Поэтому доподлинно не известно, что там может, а что не может работать).
В сталкере, как и в остальных играх, существует технология мип-уровней. Основная цель этой технологии - сохранение разрешения текстуры при удалении от камеры и устранение некрасивого муара, который может появляться по мере приближения камеры к текстуре. Поскольку MIP-карты создаются заранее, данная технология мало загружает текстурную память, давая значительный выигрыш качества картинки и облегчая вычисления в реальном времени.
 
Но далеко не для всех текстур нужны мип-уровни. Если взять например текстуры интерфейса, например кнопки, окна, иконки инвентаря. Мы ведь не можем отойти от них на 100 метров, значит и мип-уровни для них не нужны. Этой логике и нужно следовать, указывая в настройках, сохранять мип-мапы в файл или нет.
 
Мип уровни, которые создаются при увеличении/уменьшении изображения, следуют определённому алгоритму, который задает параметры для их создания. Здесь предоставлены основные фильтры мип-фильтрации, которые наиболее часто встречаются в современных 3Д-играх:
 
1. Box
2. Point
3. Adwanced
4. Kaiser
5. Triangle
6. Gaussian
7. Quadratic
8. Sinc
9. Blackman
10. Hanning
11. Hamming
12. Mitchell
13. Catrom
14. Cubic
15. Bessel
 Interpolated Filters (Интерполированные фильтры - простые)
Adwanced – расширенная версия Box, вблизи градиент немного мягче, вдали сильнее перепады.
Box - При уменьшении изображения он будет усреднять и объединять пиксели вместе. Чем меньшее изображение, тем больше пикселей будет усредняться. Любой пиксель который попадает в “box” будет непосредственно использоваться для расчета цвета нового пикселя.
Point - Использование настроек данного фильтра, практически означает то же, что и использовать не масштабированный фильтр интерполяции.
Triangle - Билинейный интерполяционный фильтр, просто берет интерполяцию ближайшей окрестности на один шаг вперёд. Вместо, того чтобы непосредственно усреднять близкие друг к другу пиксели, как это делает “Box”, он оценивает их по тому, как близко новые позиции пикселей к исходным пикселям в окрестности. Чем ближе новый пиксель к исходному пикселю изображения, тем больше цвета этот пиксель даёт. Это в результате дает более глобальное усреднение цветов, когда изображение уменьшено в размере.
 
Blurring Filters (блюревые фильтры)
Gaussian - очень полезный фильтр для изображений, так как он гарантирует хорошее удаления высокочастотного шума, и этим можно хорошо управлять (удалением шума.
Quadratic - совсем чуть-чуть более блюровый чем Gaussian.
 
Cubic Filters (Кубические фильтры)
Cubic - даёт эффект мыльности, размытия при уменьшении масштаба, но это хороший фильтр для увеличения масштаба.
Catrom - фильтр представляет собой хорошо известный стандартный Cubic фильтр, зачастую используется как функция интерполяции, и доступный под тем же именем. Этот фильтр даёт достаточно острые края, но без выраженного изменения в градиенте на больших увеличениях масштаба изображения.
Mitchell - производит более четкое изображение, чем Catrom и может добиться лучших результатов с изображением с высокой детализацией.
 
Sharpening - здесь можно изменить четкость мип-уровней. Режим легкого заострения (sharpen soft) позволит немного повысить детализацию объектов вдалеке. я всегда пользуюсь этим режимом.
Автор - Argus (С)