Как сохранить dds файл. Диффузная карта dds. Как открывать файлы DDS

Опции DDS карт


Опции текстур с прозрачностью (альфа-каналом)

DXT3 для иконок и книг. В графе Mip-map надо выбрать NO (формат НЕ используется в Skyrim)
DXT5 лучшее качество для вещей и предметов, в графе Mip-map нужно выбирать All

Опции текстур без прозрачности:

DXT1 (статик, броня, оружие и так далее, в графе мип-мап нужно выбирать all)


Разновидности карт

Диффузная карта dds

Под этим определением понимается собственно сама базовая текстура, несущая информацию о поверхности и цвете.

Карта нормалей, префикс _n

Normal map - сделанная фильтром маска, сообщающая движку о перепадах неровностей на поверхности предмета. Добавляет текстуре объем.
- Формат карты высот и карты свечения, как правило, совпадает с форматом базовой текстуры, ее мипмаппинг так же.
- Для иконок, карт и книг OBLIVION НЕ нужна карта высот.
Информация в карте высот о цветах и узорах не читается - только об освещенности. Эта карта - прозрачная маска с преломлениями и искажениями. Как линза поверх вашего рисунка. Это позволит вам на базе текстуры, сделав ее черно белой, устроить вручную любой перепад света перед фильтрацией, чтобы сделать вашу карту высот точнее, скрыть детали, которые не нужно отличать от нуля, и наоборот, подчеркнуть те места, где на обычной текстуре нет перепада, но он нужен.

Карта свечения, префикс _g:

Glow map - черно-белая текстура свечения с альфаканалом. Все, что светится - должно быть белым. Все, что не светится - черным.

Карта глянца/зеркальности, префикс _m:

Mirror map - карта, добавляющая поверхности глянец с эффектом отражения окружения. Черный цвет - матовая поверхность без бликов и отражений, белый - полный блеск. (аналогично альфа-каналу карты _n, употребляется, когда карты нормалей и карты высот имеют формат DXT1, а блеск надо регулировать, в основном, в Skyrim

Карта блеска, префикс _s:

Specular map - карта, отвечающая за матовость/блеск поверхности (практически не используется в Oblivion, распространена в Skyrim)

Работа с альфа-каналом

В диффузной карте цвет альфа-канала в градации от черного к белому (серые тона) означает прозрачность текстуры.
Черный: полная прозрачность (текстура в этом месте "отсутствует")
Белый: полная непрозрачность

В карте нормалей цвет канала в градации от черного к белому (серые тона) будет означать блеск поверхности. (В Скайриме вместо этого для текстур БЕЗ канала DXT1 делается карта _s)
Черный: полная матовость
Белый: полный блеск

Выполнение заливки канала в Photoshop

У вас должно быть активно окно channels (каналы).
Есть два способа выполнить нужную заливку канала или выделения в нем.
- Если канала еще нет, выделяем нужное место на текстуре, заходим в каналы, и внизу окошка жмем иконку Add Alpha (добавить альфа-канал)
- Если канал уже есть, заходим в него, выделяем нужный участок или весь канал, с активным инструментом Выделение правой кнопкой щелкаем по выделенному месту. Выбираем Выполнить заливку. В открывшемся меню выбираем Черный или Белый и выставляем проценты.

Назначение прозрачности модели в Nifscope

Правой кнопкой про объекту - Node - Attach Properties - NiAlphaProperty

Примеры


Стекло
- модель с разрешением использовать прозрачность и с текстурами dds и _n.dds
- альфа-каналы залиты соответвенно ~50% и 20% черного .
Прозрачность и блеск.

Кожа
- 100% белого канал dds
- 80% черного канал _n.dds
Непрозрачная и с легким отливом

Лицо
- 100% белого канал dds
- 90% черного канал _n.dds
Матовая плотная поверхность

Вырезание элемента
- 100% черного в границах элемента в канале alpha диффузной карты (основной текстуры)

Яркий блеск
- 20% черного в канале alpha карты нормалей _n.dds

Ошибки при использовании плагина NVIDIA DDS

Распространенная ошибка Too many channel означает, что вы не выполнили сведение. Зайдите в столбец слоев, кликните правой кнопой по любому из них и выберите в выпадающем меню "Выполнить сведение" (flatten image).
- Отказ в сохранении даже при сделанном сведении означает, что размер вашей текстуры имеет нечетное значение. Стороны текстур должны быть четными. В идеале, сторона текстуры должна быть кратна 4: 64х64, 128х128, 256х256, 516х516 и так далее.

Советы текстурщикам

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

Самое приятное, если вы сможете нарисовать текстуру сами. Для этого можно воспользоваться многочисленными уроками.

Советую поступить так: найдите фактурную текстуру, скажем ткани. Повысьте контраст, снимите с нее кисть. Теперь у вас есть штамп участка ткани, которым вы можете выделять на текстуре одежды какие-то места.
Я делала бесшовную текстуру, тщательно изучив фотографию реконструктора в кольчуге. Выбрав ровное место сплетения, я отрезала крошечный квадратик. Потом вам кистью придется аккуратно подгонять его так, чтобы при многократном повторе он образовывал большое ровное без швов поле. Это требует опыта, и главное - участок должен быть очень ровно освещен.

Текстуру стены, дороги, металла стоит подгранжевать. Что означает это пафосное выражение? Гранж это грязь, старение, любые признаки действия энтропии. Царапины и зазубринки, следы полировки на металле, дождевые потеки, мох и трещинки на стенах, поношенность одежек, характерные для реализма. Для этого нужно создать набор кистей или скачать их ибо кистей сотни.

Достичь многих эффектов можно с помощью стилей и экшенов фотошопа, применяя их выборочно к отдельным участкам. Так можно сделать золото и серебро, например, камни и множество других вещей. Паттерны (бесшовные текстуры) тоже вам очень помогут. Скачать это все в сети не проблема. Со временем у вас останутся самые нужные вещи. У меня около 300 кистей и 200 паттернов, а так же около 50 Гб текстур, 6000 градиентов, 1500 стилей... в общем - вооружите свой фотошоп. Включите мозги и руки - создавайте свои текстуры, кисти, стили, паттерны, делайте их неповторимыми.

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

Для чего нужен?

Документы формата DDS содержат в себе информацию о 3D-текстурах. Это сжатые растровые изображения , которые применяются во многих 3D-приложениях, в особенности в компьютерных и консольных играх. Алгоритм сжатия позволяет использовать текстуры на таких консолях, как Xbox 360 и Play Station 3: Bethesda особенно часто делает объекты в своих играх через «дидиэс». Формат поддерживается большинством видеокарт , программой DirectX, а также программным обеспечением, которое выпускается производителями видеокарт.

Как открыть DDS?

Файл представляет собой растровую картинку. А значит, его можно открыть через графические редакторы. Вот только не всегда можно редактировать. Существуют специальные конвертеры, которые трансформируют эти файлы в более привычные для стандартного ПО форматы: .bmp, .jpeg и т. п. Это, например, Right Click Image Converter. Утилита быстро переведёт.dds в более «лёгкое» расширение.

С редактированием всё немного сложнее. Здесь уже не обойтись без помощи специальных программ для обработки растровых 3D-изображений. Открыть файл с этим расширением и в дальнейшем редактировать можно через такие программы, как Paint.NET, XnView, Windows Texture Viewer. Но больший интерес для каждого дизайнера представляет, наверное, Photoshop, с помощью которого удобнее работать с этим форматом, да и с другими тоже.

Photoshop

Чтобы открыть файл в Фотошопе , нужен плагин, выпускаемый компанией NVIDIA, - NVIDIA Texture Tools for Adobe Photoshop. Скачивается бесплатно, но, разумеется, нужно иметь уже установленный редактор от Adobe.

Лирика:

Все текстуры для игр от Bethesda, и, в частности, Skyrim представлены в формате .dds . Этот формат может содержать внутри себя несколько размеров одной и той же текстуры. Любой размер текстуры использовать нельзя, только: 8 , 16 , 32 , 64 , 128 , 256 , 1024 , 2048 и так далее. Все ресурсы запакованы в .bsa архивы с соответствующими названиями. Текстуры ещё называют картами. Каждая диффузная карта (цветная текстура) сопровождается, как минимум, картой нормалей - normal map , исключение составляют текстуры для эффектов и им подобные. Про карты нормалей хорошо написано на Вики . Если говорить коротко, то карты нормалей позволяют низкополигональной модели выглядеть высокополигональной, добавляя всякие мелкие впуклости и выпуклости, и ещё она сиреневая и имеет маркер _n (имя текстуры_n.dds) или, теперь ещё, _msn , так что, при её идентификации ошибиться невозможно. Есть ещё карта свечения - glow map , которая определяет какие области на текстуре будут светиться, а какие - нет, имеет маркер _g . А так же, исключительно для Skyrim, введена новая карта - маска глянца, имеет маркер _m , определяет, при её использовании (то есть, если её не добавлять, то глянца не будет вообще нигде на модели), какая часть текстуры будет отражать окружение и в какой степени. Движок Обливион сам находит и подгружает правильно маркированные карты, а, вот, для Скайрима нужно вносить все карты в модель принудительно, причём каждую в свой, специально для неё предназначенный слот. Вот, в общем то, и всё.

Инструментарий:

1. Adobe Photoshop
2. Плагин для Фотошопа от Nvidia для работы с форматом.dds и созданием карт нормалей.
3. Какой-нибудь распаковщик.bsa архивов. Например [b]BSA Browser
by Fawzib Rojas .
4. Важно! Прямые руки.
5. Немножко знать английский язык. Совсем чуть-чуть.

Практика:

Предполагается, что Фотошоп уже установлен, и мы умеем с ним более-менее сносно общаться.
Ставим плагин NVidia , он добавит способность Фотошопу работать с.dds форматом и пункт в меню Filter -> NVIDIA Tools -> NormalMapFilter .
Чтобы извлечь текстуру из BSA-архива , откроем скачанный BSA Browser , в нём откроем (Меню -> File -> Open...) нужный нам BSA-архив (Путь до папки Skyrim\Skyrim\Data\Skyrim - Textures.bsa ), выделим нужные нам файлы и извлечём их. Данный распаковщик предлагает два варианта извлечения: в произвольную папку (Меню -> Action -> Extract To ...) или сразу в папку Data (Меню -> Action -> Extract). Иерархия папок, в обоих случаях, будет создана автоматически.
Открываем текстуру в Фотошоп. При открытии, плагин поинтересуется настройками чтения в таком окне:


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


Разберём его поподробнее:
Верхний выпадающий список содержит настройки оптимизации и наличие\отсутствие альфа-канала и его тип. Все пункты нас не интересуют, только 4

DXT1 RGB - его выбираем для всех текстур без альфа-канала
DXT5 ARGB - для всех текстур с альфа-каналом
8.8.8 RGB - сохранение без сжатия и альфа-канала
8.8.8.8 ARGB - без сжатия с альфа-каналом

Последние 2 пункта эксплуатировать особо не стоит, ибо вес текстуры получится гораздо больше, они оправданы для текстур с очень плавными переходами цвета на больших площадях (например, карта нормалей для лиц, если сохранить со сжатием, то на лицах персонажей появятся некрасивые артефакты)

Generate MIP Maps - с доп. размерами (самый распространённый вариант)
Use Existing MIP Maps - выбрать доп. размеры самостоятельно
No MIP Maps - без доп. размеров

При сохранении с генерацией доп. размеров можно выбрать в выпадающем списке рядом: All (все возможные) или указать желаемое количество. Я всегда ставлю All.

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

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

Зачем нужны DDS файлы

Файлы с расширением dds предназначены для хранения изображений растрового формата. Рассматриваемый формат был разработан компанией Microsoft и изначально был создан SDK.

Что хранится в DDS файлах

Чаще всего файлы формата dds содержат данные о трехмерных текстурах. Они используются во многих программах для работы с 3d графикой, а также в современных играх с трехмерной графикой. В последнем случае в таких файлах хранятся текстуры и карты окружающей среды, которые задействуются в игровых приложениях. Кроме того, в файлах формата dds могут храниться заставки рабочего стола.

Формат.DDS разработан MS в целях использования в DirectX — он хранит данные о трехмерных текстурах, которые используются, к примеру, в играх

Одно из преимуществ формата заключается в том, что его поддерживают видеокарты DXTn, драйвера которых способны сжимать текстуры «на лету», что обеспечивает быстродействие. Сами файлы dds могут содержать текстуры в несжатом и в сжатом виде. Это позволяет широко применять такие файлы в современных консолях Play Station 3 и Xbox360.

Как открывать файлы DDS

Если вас интересует, как открыть dds файл с целью «просто посмотреть, что там внутри», то достаточно будет обычной программы-конвертера.

Очень удобно для этой цели приложение Right Click Image Converter, с помощью которого за несколько секунд можно конвертировать файл формата dds в , png и другие наиболее популярные форматы. Вам нужно будет просто щелкнуть правой кнопкой мышки по файлу и выбрать пункт “Convert to” (здесь надо будет выбрать необходимое расширение). Файл в выбранном формате будет сохранен в этой же папке.

Если вам надо редактировать файл dds или создать собственный, то можно воспользоваться, например, . Предварительно с ресурса developer nvidia com (предварительно пробелы необходимо заменить на точки) нужно загрузить NVIDIA Texture Tools для Фотошоп. Данный инструмент позволяет открыть файл dds и сохранить с тем же расширением. Для других программ, которые работают с графикой, разработаны свои фильтры, предоставляющие возможность просматривать файлы dds.

Ну а для того, чтобы полноценно работать с форматом dds в разных программах (в 3D-редакторах и других приложениях, обеспечивающих импорт/экспорт игровых моделей с текстурами), скачайте утилиту nVidia DDS Utilities – она доступна на сайте NVIDIA.

Итак, мы убедились, что открыть файл dds не так сложно – необходимо просто установить нужные приложения и фильтры к ним.

Загрузка сжатых текстур из файлов формата DDS.

Большинство программ для хранения сжатых текстур используют формат DDS (Direct Draw Surface). Как видно из названия, этот формат предназначен для приложений, использующих API DirectDraw и Direct3D. Формат DDS обладает следующими преимуществами по сравнению с другими распространёнными форматами: возможность хранения текстуры вместе со всеми MipMap-уровнями в одном файле, возможность сохранения 6-ти двухмерных текстур кубической текстуры в одном файле и, наконец, поддержка форматов сжатых текстур S3TC (DXT1, DXT2, DXT3, DXT4 и DXT5). Причём, не смотря на то, что этот формат был разработан для API DirectX, его можно довольно легко "подружить" и с OpenGL.

Существует множество утилит для создания DDS файлов: плагины для Photoshop, 3DS MAX и т.д. Для создания DDS файлов для этой статьи я использовал утилиту nvdxt, которую можно скачать либо с сайта NVIDIA Developer (http://developer.nvidia.com/), либо в составе примеров с этого сайта (). Хотя данная утилита и предназначена для работы в командной строке, ей очень просто пользоваться. Создавая примеры для этой статьи, я использовал команды следующего формата:

nvdxt.exe -file "имя файла" {-формат сжатия=dxt1/dxt3/dxt5}.

Т.е. если нам необходимо сжать файл wood.tga в wood.dds используя формат DXT5, то можно воспользоваться командой

Nvdxt.exe -file WOOD.TGA -dxt5.

Мы рассмотрим работу с файлами формата DDS с использование класса CTexture из состава NVIDIA OpenGL SDK. Конечно, с файлами формата DDS можно работать и напрямую, как мы поступили с форматом SCI, но это лишь усложнит программу и увеличит вероятность появления ошибок. Но если вам всё таки необходимо работать с DDS-файлами напрямую, то можно посоветовать посмотреть исходники класса CTexture.

Перед использованием этого класса в каталог с проектом программы следует скопировать файлы nv_dds.h и nv_dds.cpp, которые находятся в каталогах ":\include\shared" и ":\src\shared" соответственно. После этого первый файл подключается к программе директивой #include, второй - через меню Visual Studio (Project -> Add New Item ..., см. рис. 5).

Рисунок 5.

Использование этого класса проще всего показать на примере - модификации программы Ex03 из предыдущей части статьи, в которую добавлена поддержка чтения текстур из DDS-файлов (Ex04):

//Создание объекта для работы с файлами формата DDS CDDSImage image; if (!image.load(filename) ) { console.add("Bad file or file not found" ) ; glCompressedTexImage2DARB(texture0.target, 0 , image.format, image[ 0 ] .width, image[ 0 ] .height, 0 , image[ 0 ] .size, image[ 0 ] ) ; char str[ 200 , image[ 0 ] .mipmaps.size() ) ; console.add(str) ; //Загрузка остальных MipMap-уровней в видеопамять for (int i=0 ; i< image[ 0 ] .mipmaps.size() ; i++) { glCompressedTexImage2DARB(texture0.target, i+1 , image.format, image[ 0 ] .mipmaps[ i] .width, image[ 0 ] .mipmaps[ i] .height, 0 , image[ 0 ] .mipmaps[ i] .size, image[ 0 ] .mipmaps[ i] ) ; }

Как видно, работа с файлами формата DDS осуществляется при помощи объекта класса CDDSImage. Загрузка текстуры осуществляется методом load(), который в случае успешной загрузки возвращает ненулевое значение. Обратите внимание, что на самом деле метод load() принимает ещё и второй аргумент flipImage, который по умолчанию равен true. Если этот параметр равен true, то текстура переворачивается при загрузке. Загруженные текстуры сохраняются в объектах класса CTexture, которые находиться поле-векторе images класса CDDSImage, доступ которому возможен и использованием перегруженного оператора . Однако, если вы не используете кубических текстур, в поле images будет храниться всего одна текстура. Ширина, высота, формат пикселей и размер текстуры хранятся в полях width, height, format и size соответственно. Указатель на образ сжатой текстуры хранится в поле pixels подобъекта image, имеющего класс CSurface, причём доступ к полю pixels может быть осуществлен при помощи перегруженного оператора operator char* класса CTexture, т.е. вместо ссылки на образ сжатой текстуры можно просто указывать экземпляр класса CDDSImage.

Если DDS-файл содержит MipMap-уровни, то они будут размещены в объектах класса CSurface, которые находятся в поле-векторе image соответствующих объектов класса CTexture. Класс CSurface так же имеет поля width, height, format и size, которые аналогичны полям класса CTexture.

Как указывалось выше, файлы формата DDS могут содержать и образа несжатых текстур. Поэтому реальное приложение должно сначала определить формат пикселей текстуры, а затем использовать команды glTexImage() и glCompressedTexImage() для загрузки соответственно несжатых и сжатых текстур.

Стоит так же отметить небольшую модификацию интерактора консоли glut_console, в которую была добавлена поддержка истории команд.

Загрузку DDS файлов можно ещё упростить, воспользовавшись методом upload_texture_2D класса CDDSImage, использование которого продемонстрировано в следующем примере (Ex05):

CDDSImage image; if (!image.load(filename) ) { console.add("Bad file or file not found" ) ; return ; } //При использовании обычных (не кубических) текстур, первый параметр всегда равен 0. if (!image.upload_texture2D(0 , texture0.target) ) { console.add("Unsupported type of texture" ) ; return ; }

Кроме того, в этот пример добавлена поддержка работы с файлами tga. Это сделано для более точного анализа потери качества текстур при S3TC-компрессии, т.к. JPG-текстуры даже максимального качества всё равно проигрывают в качестве оригинальным текстурам.

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

Расширения ARB_texture_compression и EXT_texture_compression_s3tc поддерживаются всеми видеокартами NVIDIA начиная с GeForce256.

На этом всё.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: