Работа с форматом .dds — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Работа с форматом .dds — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
м
Строка 35: Строка 35:
 
При работе с текстурами сталкера не нужно разбираться во всех режимах. Достаточно знать только эти:
 
При работе с текстурами сталкера не нужно разбираться во всех режимах. Достаточно знать только эти:
  
8:8:8 RGB - несжатый вариант сохранения текстур БЕЗ альфы
+
<code>8:8:8 RGB - несжатый вариант сохранения текстур БЕЗ альфы
 +
 
 
8:8:8:8 ARGB - несжатый вариант сохранения текстур С альфой
 
8:8:8:8 ARGB - несжатый вариант сохранения текстур С альфой
 +
 
DXT1 (без альфы) - сжатый формат сохранения текстур БЕЗ альфы (сжатие до 8 раз).
 
DXT1 (без альфы) - сжатый формат сохранения текстур БЕЗ альфы (сжатие до 8 раз).
 +
 
DXT1 (с альфой 1 бит) - сжатый формат сохранения текстур С 1-битной альфой (сжатие до 8 раз).
 
DXT1 (с альфой 1 бит) - сжатый формат сохранения текстур С 1-битной альфой (сжатие до 8 раз).
 +
 
DXT3 - сжатый формат сохранения текстур С альфой, имеющей индексированную палитру меньше 256 цветов (сжатие до 4 раз).
 
DXT3 - сжатый формат сохранения текстур С альфой, имеющей индексированную палитру меньше 256 цветов (сжатие до 4 раз).
DXT5 - сжатый формат сохранения текстур С полноцветной альфой (сжатие до 4 раз).
+
 
 +
DXT5 - сжатый формат сохранения текстур С полноцветной альфой (сжатие до 4 раз).</code>
  
 
Сжатие DXT всегда ведет к ухудшению качества текстуры, и при нескольких ее пересохранениях в сжатый формат качество падает до такого уровня, что ее уже нелья восстановить средствами фотошопа. Поэтому настоятельно рекомендую использовать сжатие только в самом последнем шаге, когда текстура полностью готова и не планируется ее дальнейшее изменение.
 
Сжатие DXT всегда ведет к ухудшению качества текстуры, и при нескольких ее пересохранениях в сжатый формат качество падает до такого уровня, что ее уже нелья восстановить средствами фотошопа. Поэтому настоятельно рекомендую использовать сжатие только в самом последнем шаге, когда текстура полностью готова и не планируется ее дальнейшее изменение.

Версия 17:45, 9 февраля 2018


Внимание! Уроки расчитаны на пользователей, уже достаточно хорошо освоивших фотошоп. Различные вопросы типа "а где находится эта кнопачка???" здесь не рассматриваются.


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

Для начала нужно убедиться, что в фотошопе установлен плагин dds от nVidia. Его можно скачать с моего сайта. После его установки мы получаем возможность работать с форматом .dds в фотошопе.

А теперь немного теории.

Необходимо ознакомиться с такими понятиями как режим формата ддс, альфа, мип-уровни (MIP-maps), скайбокс (cubemap).

Мип-уровни Представим себе старый запорожец. Вот мы подходим к нему вплотную. Ржавчина внизу кузова, трещины на стекле, покосившаяся ручка на дверце, царапина на крыле. все в максимальных деталях. Отходим метров на 30, уже видим все не так четко, можем различить ржавчину, но царапину на крыле уже не увидим. Отойдем еще на 50 метров. Там уж о деталях говорить не приходится, так как видим практически только очертания. отойдем еще на 100 м, и от запора остается только пятно на горизонте.

Примерно так и работают мип уровни. Если объект находится близко, к нему подставляется текстура максимального разрешения, при удалении от объекта текстура заменяется на ее копию, но меньшего разрешения, если еще дальше отойти от объекта, разрешение текстуры будет еще меньше. Это делается для того, чтобы не отрисовывать детали, которые мы все равно не увидим с расстояния, это позволит сэкономить ресурсы системы и избавит картинку от излишней четкости.

Текстура в формате .dds может содержать в себе несколько своих дубликатов но с разным разрешением. Например, если мы сохраняем текстуру с разрешением 512*512, так же автоматически в файл сохранится эта же текстура с разрешениями 256*256, 128*128, 64*64, 32*32, и т.д. обычно число таких текстур в одном файле достигает 13. И если вспомнить тот запорожец, то когда мы находимся к нему вплотную, на него наложена текстура 512*512, отойдем на 30 метров, разрешение текстуры изменится до 256*256, еще на 30 метров - уже 128*128, и при дальнейшем удалении от запора его текстура будет уменьшаться дальше.

Но далеко не для всех текстур нужны мип-уровни. Если взять например текстуры интерфейса, например кнопки, окна, иконки инвентаря. Мы ведь не можем отойти от них на 100 метров, значит и мип-уровни для них не нужны. Этой логике и нужно следовать, указывая в настройках, сохранять мип-мапы в файл или нет.

Альфа Текстуры перед сохранением в ддс всегда должны быть в формате RGB со сведенными слоями, т.е стандартная прозрачность в ддс не поддерживается. Ее роль играет альфа (A) - 4-й канал формата RGB. Обычно она используется, когда для текстуры необходимо установить прозрачные участки или другие дополнительные свойства. В сталкере на альфу так же может быть повешан глянец для статического освещения. Важно! Текстуры рельефа состоят из 4 каналов, поэтому альфа для них нужна всегда!

Если альфа отвечает за прозрачность, то яркость пикселя обратно пропорциональна прозрачности текстуры. То есть чем темнее участок альфы - тем прозрачнее текстура на этом участке. Если альфа отвечает за глянец, то текстура в тех местах, где альфа светлее, будет блестеть слабее, а в темных местах альфы - сильнее.

Для разных целей необходима альфа разной глубины цвета. Например для всех полупрозрачных объектов, которые должны отбрасывать тень - альфа 1-битная. (т.е. альфа состоит только из черного цвета и белого) К этим объектам относится листва деревьев, сетчатый забор, решетки на полу или потолке, трава. Для объектов, тень от которых не зависит от прозрачности - используется полноцветная альфа (8 бит).

Сохранять или не сохранять альфу в ддс и с какой глубиной цвета - можно указать в настройках при сохранении текстуры.

Режимы формата .dds формат поддерживает множество вариантов сохранения текстур разного количества каналов и их глубины цвета, так же он поддерживает сжатие. При работе с текстурами сталкера не нужно разбираться во всех режимах. Достаточно знать только эти:

8:8:8 RGB - несжатый вариант сохранения текстур БЕЗ альфы
 
8:8:8:8 ARGB - несжатый вариант сохранения текстур С альфой
 
DXT1 (без альфы) - сжатый формат сохранения текстур БЕЗ альфы (сжатие до 8 раз).
 
DXT1 (с альфой 1 бит) - сжатый формат сохранения текстур С 1-битной альфой (сжатие до 8 раз).
 
DXT3 - сжатый формат сохранения текстур С альфой, имеющей индексированную палитру меньше 256 цветов (сжатие до 4 раз).
 
DXT5 - сжатый формат сохранения текстур С полноцветной альфой (сжатие до 4 раз).

Сжатие DXT всегда ведет к ухудшению качества текстуры, и при нескольких ее пересохранениях в сжатый формат качество падает до такого уровня, что ее уже нелья восстановить средствами фотошопа. Поэтому настоятельно рекомендую использовать сжатие только в самом последнем шаге, когда текстура полностью готова и не планируется ее дальнейшее изменение.

Сжатый формат DXT поддерживает только разрешения, кратные 8, т.е размеры сторон 8, ... 64, 128, 256, 512... пикс. и т.д. поэтому не пытайтесь сохранять текстуру неподходящего разрешения, например 400х400, кнопка ОК в таких случаях будет серой.

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

А теперь практика.

Попробуем открыть любой файл в формате ддс. Если текстура содержит мип-уровни (MIP-maps), то вылезет такое окно:

Dds work1.png Если мы ответили "нет", то открывается обычная текстура, как мы привыкли видеть. Обычно следует отвечать "нет", если конечно у вас нет желания редактировать каждый мип-уровень в отдельности. Лично я никогда этим не пользуюсь, и всегда нажимаю "нет". И Вам не советую. А если мы ответим "да", то перед нами предстанет что то типа этого:

Dds work2.jpg

Не рекомендую продолжать работу с текстурой в таком виде, исключая случаи, когда вы абсолютно уверены в своих действиях. В обычном случае лучше закрыть ее и открыть снова, ответив "нет" в вышеописанном окошке.

Далее смотрим, есть ли у текстуры альфа, если есть, то и сохранять текстуру после обработки следует с альфой.

Dds work8.jpg

Напоминаю. Если текстура с альфой сохраняется для дальнейших тестов, то используем режим (8:8:8:8 ARGB), а если вариант текстуры окончателен, то сохраняем в DXT5 или DXT1 (с альфой 1 бит).

Для варианта текстуры без альфы используем (8:8:8 RGB) - для дальнейшей обработки, DXT1 (без альфы) - окончательный вариант.

После обработки нужно сохранить текстуру. Если обработка незначительная, и не было добавлено новых слоев, то используем меню "сохранить", а если созданы дополнительные слои, то удобно использовать "сохранить как...", при этом сведение слоев производить не нужно.

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

Dds work3.png

В группе "Save format" указывается режим сохранения текстуры, а так же тип текстуры из трех: "2D texture" (обычная текстура), "cubemap" (скайбокс), "volume texture" (судя по всему текстура рельефа, я никогда этот тип не использовал). Про скайбоксы будет сказано ниже.

В группе "Mip-map generation" указывается, сохранять или нет мип-уровни в текстуру. первый флажок - сохранять, третий - не сохранять, а второй - это для спецов, тех, кто ответил "да" на вопрос "загружать ли мип-уровни" при открытии текстуры.

Далее идет несколько кнопок, позволяющих произвести более точную настройку работы плагина. Из них можно выделить:

Image options - позволяет настроить некоторые параметры сохранения текстур, например качество сохранения, сглаживание альфы, смена каналов местами и т.д. Так как эти опции не имеют прямого влияния на саму работу с форматом ддс, оставлю их вам на изучение методом тыка, понятней будет.

Dds work4.png

Sharpening - здесь можно изменить четкость мип-уровней. Режим легкого заострения (sharpen soft) позволит немного повысить детализацию объектов вдалеке. я всегда пользуюсь этим режимом.

Dds work5.jpg

Config - здесь настраивается работа плагина в целом. например если мы хотим отключить вопрос при открытии текстуры "загружать или нет мип-уровни", то нужно снять галку с опции "Ask to load mip-maps".

Dds work6.png

Остальное нам не пригодится. Выставив нужные опции в вышеописанных параметрах, жмем "Save"

Теперь подробнее о некоторых специфических типах текстур:

Карты рельефа (bump и bump#) Эти текстуры сохраняются так же как и обычные текстуры с полноцветной альфой, т.е. либо (8:8:8:8 ARGB), либо DXT5. Далее, не следует буквально воспринимать цвета текстур рельефа, наподобие "в сталкире бамп зиленый, а фильтр нвидии делает синий, как быть???" Причина здесь только в порядке каналов. Обычно 3 карта нормалей, которая обычно является белой, находится на канале B, и придает тем самым синий оттенок текстуре в целом. В сталкере же эта карта находится на канале G, поэтому оттенок зеленый. При этом если карту интенсивности блика (канал R) сделать светлой, то в целом текстура bump сталкера будет выглядеть желтоватой.

Скайбоксы (cubemap) Это файлы в формате .dds, которые содержат в себе 6 разных текстур одинакового разрешения, и не имеют мип-мапов. Обычно используются для оформления небесного свода, построенного в виде куба. В фотошопе все 6 текстур для удобства работы выстроены в ряд, (например в Гимпе они расположены на разных слоях):

Dds work7.jpg

Порядок следования текстур стандартизован. В интернете можно найти множество заготовок скайбоксов, выстроенных именно в этом порядке.

При сохранении скайбоксов необходимо указывать в "Save format" режим "cubemap", отключать мип-уровни и альфу. Ну вот и все, что необходимо знать по ддс smile Удачи в работе!


Фильтрация мип-уровней

В сталкере, как и в остальных играх, существует технология мип-уровней. Основная цель этой технологии - сохранение разрешения текстуры при удалении от камеры и устранение некрасивого муара, который может появляться по мере приближения камеры к текстуре. Поскольку MIP-карты создаются заранее, данная технология мало загружает текстурную память, давая значительный выигрыш качества картинки и облегчая вычисления в реальном времени.

Мип уровни, которые создаются при увеличении/уменьшении изображения, следуют определённому алгоритму, который задает параметры для их создания. Здесь предоставлены основные фильтры мип-фильтрации, которые наиболее часто встречаются в современных 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 и может добиться лучших результатов с изображением с высокой детализацией.


Автор - Argus

Добавил - Quadratic13

Другие места
LANGUAGE