Что такое файл dds
Формат файла DDS (сокращение от DirectDraw Surface) содержит растровые изображения, используемые DirectX. Стандартный файл DDS содержит текстуры, фоны, обои, модели и карты текстур для компьютерных игр.
Метод сжатия формата DDS
Формат DDS может использовать сжатие, чтобы пожертвовать качеством для уменьшения размера файла, но это полностью необязательно. Формат использует алгоритм S3 Texture Compression. Данные файла DDS могут быть легко распакованы и обработаны с использованием стандартных функций и команд библиотеки DirectX.
Приложения в формате DDS
Формат файла DDS был создан для приложений рендеринга в реальном времени, таких как компьютерные игры. Использование растрового файла DDS в компьютерных играх делает игры более привлекательными для игрока. Файлы DDS также сокращают использование памяти совместимыми с DirectX графическими процессорами.
Происхождение формата DDS
Формат DDS был создан вместе со стандартом DirectX 7.0. Каждая новая версия DirectX добавляла дополнительные улучшения - DirectX 8.0 добавляла поддержку объемных текстур., Direct3D 10 добавлял массивы текстур, а Direct3D 11 вводил новый стандарт текстур, Direct3D.
Программы, которые поддерживают DDS расширение файла
В следующем списке перечислены программы, совместимые с файлами DDS, которые разделены на категории 4 в зависимости от операционной системы, в которой они доступны. DDS файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.
Программы, обслуживающие файл DDS
Updated: 01/04/2020
Как открыть файл DDS?
Отсутствие возможности открывать файлы с расширением DDS может иметь различное происхождение. К счастью, наиболее распространенные проблемы с файлами DDS могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Мы подготовили список, который поможет вам решить ваши проблемы с файлами DDS.
Шаг 1. Получить NVIDIA Texture Tools
Шаг 2. Проверьте версию NVIDIA Texture Tools и обновите при необходимости
Если проблемы с открытием файлов DDS по-прежнему возникают даже после установки NVIDIA Texture Tools, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия NVIDIA Texture Tools. Может также случиться, что создатели программного обеспечения, обновляя свои приложения, добавляют совместимость с другими, более новыми форматами файлов. Если у вас установлена более старая версия NVIDIA Texture Tools, она может не поддерживать формат DDS. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью NVIDIA Texture Tools.
Шаг 3. Назначьте NVIDIA Texture Tools для DDS файлов
Если у вас установлена последняя версия NVIDIA Texture Tools и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления DDS на вашем устройстве. Следующий шаг не должен создавать проблем. Процедура проста и в значительной степени не зависит от системы
Процедура изменения программы по умолчанию в Windows
- Щелкните правой кнопкой мыши на файле DDS и выберите « Открыть с помощью опцией».
- Нажмите Выбрать другое приложение и затем выберите опцию Еще приложения
- Последний шаг - выбрать опцию Найти другое приложение на этом. указать путь к папке, в которой установлен NVIDIA Texture Tools. Теперь осталось только подтвердить свой выбор, выбрав Всегда использовать это приложение для открытия DDS файлы и нажав ОК .
Процедура изменения программы по умолчанию в Mac OS
Шаг 4. Убедитесь, что DDS не неисправен
Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл DDS действительным. Проблемы с открытием файла могут возникнуть по разным причинам.
1. Убедитесь, что DDS не заражен компьютерным вирусом
Если файл заражен, вредоносная программа, находящаяся в файле DDS, препятствует попыткам открыть его. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. Если файл DDS действительно заражен, следуйте инструкциям ниже.
2. Убедитесь, что структура файла DDS не повреждена
3. Убедитесь, что у вас есть соответствующие права доступа
Существует вероятность того, что данный файл может быть доступен только пользователям с достаточными системными привилегиями. Переключитесь на учетную запись с необходимыми привилегиями и попробуйте снова открыть файл DirectDraw Surface.
4. Убедитесь, что в системе достаточно ресурсов для запуска NVIDIA Texture Tools
Операционные системы могут иметь достаточно свободных ресурсов для запуска приложения, поддерживающего файлы DDS. Закройте все работающие программы и попробуйте открыть файл DDS.
5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений
Современная система и драйверы не только делают ваш компьютер более безопасным, но также могут решить проблемы с файлом DirectDraw Surface. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов DDS.
Direct3D реализует формат файлов DDS для хранения несжатых или сжатых текстур (Дкстн). Формат файла реализует несколько разных типов, предназначенных для хранения различных типов данных, и поддерживает однослойные текстуры, текстуры с MIP-карты, карты кубов, карты томов и массивы текстур (в Direct3D 10/11). В этом разделе описывается компоновка файла DDS.
Сведения о создании текстуры в Direct3D 11 см. в разделе как создать текстуру. Справку по Direct3D 9 см. в разделе Поддержка текстур в D3DX (Direct3D 9).
Макет файла DDS
DDS-файл — это двоичный файл, который содержит следующую информацию:
Параметр DWORD (контрольное число), содержащий четырехсимвольное кодовое значение «DDS « (0x20534444).
Описание данных, содержащихся в файле.
Данные описаны с описанием заголовка с помощью _ заголовка DDS. формат пикселей определяется с помощью DDS _ PIXELFORMAT. Обратите внимание, что структуры DDS _ и DDS _ PIXELFORMAT заменяют нерекомендуемые структуры DDSURFACEDESC2, DDSCAPS2 и ддпикселформат DirectDraw 7. DDS _ ЗАГОЛОВОК является двоичным эквивалентом DDSURFACEDESC2 и DDSCAPS2. DDS _ PIXELFORMAT является двоичным эквивалентом ддпикселформат.
Если для DDS _ PIXELFORMAT dwFlags задано значение ддпф _ FourCC, а двфауркк имеет значение "содержимым DX10", то для размещения массивов текстур или форматов DXGI будет использоваться дополнительная структура _ заголовков DDS _ DXT10 , которая не может быть выражена в формате пикселей RGB, например в форматах с плавающей запятой, форматах sRGB и т. д. При наличии структуры _ _ DXT10 заголовков DDS полное описание данных будет выглядеть следующим образом.
Указатель на массив байтов, содержащий сведения о главной плоскости.
Указатель на массив байтов, содержащий сведения об остальных плоскостях, например об уровнях MIP, гранях в кубической текстуре, глубин в объемной текстуре. В статьях, ссылки на которые приведены ниже, представлены дополнительные сведения о структуре DDS-файлов для текстуры, кубической текстуры или объемной текстуры.
Библиотека D3DX (например, D3DX11. lib) и другие аналогичные библиотеки ненадежно или неодинаково предоставляют значение высоты в элементе двпитчорлинеарсизе структуры _ заголовков DDS . Поэтому при чтении и записи в файлы DDS рекомендуется вычислять шаг одним из следующих способов для указанных форматов:
Для форматов, сжатых в виде блоков, вычислите тон следующим образом:
Max (1, ((ширина + 3)/4)) * блочный размер
Размер блока составляет 8 байт для форматов DXT1, BC1 и BC4 и 16 байт для других форматов, сжатых в виде блока.
Для R8G8 _ B8G8, G8R8 _ G8B8, устаревших UYVY-упакованных и устаревших форматов YUY2-Упакованные, вычисляют шаг как:
((ширина + 1) >> 1) * четырех
Для других форматов Вычислите шаг как:
(ширина, * бит на пиксель + 7)/8
Для выравнивания байтов можно разделить на 8.
Вычисленное значение высоты не всегда равно пошаговому вызываемому средой выполнения, которое в некоторых ситуациях и в других ситуациях выдается в виде DWORD. Поэтому рекомендуется копировать строку сканирования за раз, а не пытаться копировать весь образ в одну копию.
Варианты DDS
Существуют некоторые распространенные варианты использования, где формат пикселей задан как код ДДПФ FourCC, _ где двфауркк имеет значение ПЕРЕЧИСЛЕНИЯ D3DFORMAT или DXGI _ . Невозможно определить, является ли значение перечисления D3DFORMAT или _ форматом DXGI, поэтому настоятельно рекомендуется использовать вместо него заголовок DXT10 "содержимым DX10" и заголовков _ заголовков DDS, _ чтобы хранить дксгиформат, когда базовый набор DDS _ PIXELFORMAT не может выразить этот формат.
Стандартный PIXELFORMAT DDS _ должен быть предпочтительным для обеспечения максимальной совместимости для хранения несжатых данных RGB и данных DXT1-5, так как не все средства DDS поддерживают расширение содержимым DX10.
Использование массивов текстур в Direct3D 10/11
Новые структуры DDS (_ заголовком DDS и _ заголовком dds _ DXT10) в Direct3D 10/11 расширяют формат файлов DDS для поддержки массива текстур, который является новым типом ресурсов в Direct3D 10/11. Ниже приведен пример кода, в котором показано, как получить доступ к различным уровням mipmap в массиве текстур с помощью новых заголовков.
Общие форматы файловых ресурсов DDS и связанное содержимое заголовка
Формат ресурса | dwFlags | двргббиткаунт | дврбитмаск | двгбитмаск | двббитмаск | двабитмаск |
---|---|---|---|---|---|---|
_Формат DXGI _ R8G8B8A8 _ UNORM D3DFMT _ A8B8G8R8 | RGBA для DDS _ | 32 | 0xFF | 0xff00 | 0xff0000 | 0xff000000 |
_Формат DXGI _ R16G16 _ UNORM D3DFMT _ G16R16 | RGBA для DDS _ | 32 | 0xFFFF | 0xffff0000 | ||
** _Формат DXGI _ R10G10B10A2 _ UNORM D3DFMT _ A2B10G10R10 | RGBA для DDS _ | 32 | 0x3ff | 0xffc00 | 0x3ff00000 | |
_Формат DXGI _ R16G16 _ UNORM D3DFMT _ G16R16 | заdds _ RGB | 32 | 0xFFFF | 0xffff0000 | ||
_Формат DXGI _ B5G5R5A1 _ UNORM D3DFMT _ A1R5G5B5 | RGBA для DDS _ | 16 | 0x7c00 | 0x3e0 | 0x1F | 0x8000 |
_Формат DXGI _ B5G6R5 _ UNORM D3FMT _ R5G6B5 | заdds _ RGB | 16 | 0xf800 | 0x7e0 | 0x1F | |
DXGI _ a8 _ UNORM D3DFMT _ A8 | заdds _ Alpha | 8 | 0xFF | |||
D3DFMT _ A8R8G8B8 | RGBA для DDS _ | 32 | 0xff0000 | 0xff00 | 0xFF | 0xff000000 |
D3DFMT _ X8R8G8B8 | заdds _ RGB | 32 | 0xff0000 | 0xff00 | 0xFF | |
D3DFMT _ X8B8G8R8 | заdds _ RGB | 32 | 0xFF | 0xff00 | 0xff0000 | |
** D3DFMT _ A2R10G10B10 | RGBA для DDS _ | 32 | 0x3ff00000 | 0xffc00 | 0x3ff | 0xc0000000 |
D3DFMT _ R8G8B8 | заdds _ RGB | 24 | 0xff0000 | 0xff00 | 0xFF | |
D3DFMT _ X1R5G5B5 | заdds _ RGB | 16 | 0x7c00 | 0x3e0 | 0x1F | |
D3DFMT _ A4R4G4B4 | RGBA для DDS _ | 16 | 0xf00 | 0xf0 | 0xF | число 0xF000 не |
D3DFMT _ X4R4G4B4 | заdds _ RGB | 16 | 0xf00 | 0xf0 | 0xF | |
D3DFMT _ A8R3G3B2 | RGBA для DDS _ | 16 | 0xE0 | 0x1c | 0x3 | 0xff00 |
D3DFMT _ A8L8 | _светимость DDS | 16 | 0xFF | 0xff00 | ||
D3DFMT _ L16 | _светимость DDS | 16 | 0xFFFF | |||
D3DFMT _ 8 | _светимость DDS | 8 | 0xFF | |||
D3DFMT _ A4L4 | _светимость DDS | 8 | 0xF | 0xf0 |
Формат ресурса | dwFlags | двфауркк |
---|---|---|
_Формат DXGI _ BC1 _ UNORM D3DFMT _ DXT1 | DDS _ FourCC | "DXT1" |
_Формат DXGI _ BC2 _ UNORM D3DFMT _ DXT3 | DDS _ FourCC | "DXT3" |
_Формат DXGI _ BC3 _ UNORM D3DFMT _ DXT5 | DDS _ FourCC | "DXT5" |
* _Формат DXGI _ BC4 _ UNORM | DDS _ FourCC | "BC4U" |
* _Формат DXGI _ BC4 _ снорм | DDS _ FourCC | "BC4S" |
* _Формат DXGI _ Bc5 _ UNORM | DDS _ FourCC | "ATI2" |
* _Формат DXGI _ Bc5 _ снорм | DDS _ FourCC | "BC5S" |
_Формат DXGI _ R8G8 _ B8G8 _ UNORM D3DFMT _ R8G8 _ B8G8 | DDS _ FourCC | "РГБГ" |
_Формат DXGI _ G8R8 _ G8B8 _ UNORM D3DFMT _ G8R8 _ G8B8 | DDS _ FourCC | "ГРГБ" |
* _Формат DXGI _ R16G16B16A16 _ UNORM D3DFMT _ A16B16G16R16 | DDS _ FourCC | 36 |
* _Формат DXGI _ R16G16B16A16 _ снорм D3DFMT _ Q16W16V16U16 | DDS _ FourCC | 110 |
* _Формат DXGI _ R16 _ float D3DFMT _ R16F | DDS _ FourCC | 111 |
* _Формат DXGI _ R16G16 _ float D3DFMT _ G16R16F | DDS _ FourCC | 112 |
* _Формат DXGI _ R16G16B16A16 _ float D3DFMT _ A16B16G16R16F | DDS _ FourCC | 113 |
* _Формат DXGI _ R32 _ float D3DFMT _ R32F | DDS _ FourCC | 114 |
* _Формат DXGI _ R32G32 _ float D3DFMT _ G32R32F | DDS _ FourCC | 115 |
* _Формат DXGI _ R32G32B32A32 _ float D3DFMT _ A32B32G32R32F | DDS _ FourCC | 116 |
D3DFMT _ DXT2 | DDS _ FourCC | "DXT2" |
D3DFMT _ DXT4 | DDS _ FourCC | "DXT4" |
D3DFMT _ UYVY | DDS _ FourCC | UYVY |
D3DFMT _ YUY2 | DDS _ FourCC | "YUY2" |
D3DFMT _ CxV8U8 | DDS _ FourCC | 117 |
Любой формат DXGI | DDS _ FourCC | СОДЕРЖИМЫМ DX10 |
* = Надежный модуль чтения DDS должен иметь возможность обрабатывать эти коды устаревших форматов. Тем не менее такой модуль чтения DDS должен предпочесть использовать расширение заголовка СОДЕРЖИМЫМ DX10 при записи этих кодов форматов, чтобы избежать неоднозначности.
** = Из-за некоторых долгосрочных проблем в распространенных реализациях модулей чтения и записи DDS, самым надежным способом записи данных 10:10:10:2-Type является использование расширения заголовка СОДЕРЖИМЫМ DX10 с кодом _ формата DXGI "24" (то есть _ форматом DXGI _ R10G10B10A2 _ UNORM Value). _Данные A2R10G10B10 D3DFMT должны быть преобразованы в данные типа 10:10:10:2 перед их записью в виде _ _ файла DDS формата DXGI R10G10B10A2 _ UNORM.
Все текстуры для игр от Bethesda, и, в частности, Skyrim представлены в формате .dds . Этот формат может содержать внутри себя несколько размеров одной и той же текстуры. Любой размер текстуры использовать нельзя, только: 8 , 16 , 32 , 64 , 128 , 256 , 1024 , 2048 и так далее. Все ресурсы запакованы в .bsa архивы с соответствующими названиями. Текстуры ещё называют картами. Каждая диффузная карта (цветная текстура) сопровождается, как минимум, картой нормалей - normal map , исключение составляют текстуры для эффектов и им подобные. Про карты нормалей хорошо написано на
Лучше отметить всё так, как на изображении, кроме последней галки, тут на ваше усмотрение: хотите каждый раз видеть это окно, оставляйте галку, не хотите - убирайте. Пункт Load MIP Maps отвечает за открытие всех или одного размера текстуры, рекомендую выключить его. Все размеры нам открывать не нужно, они автоматически сгенерируются при сохранении текстуры.
Изменяем текстуру. Этот пункт я сейчас не буду разворачивать, нас интересуют только настройки.
Теперь сохраняем. Тут немножко посложнее окно выскочит:
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 содержат в себе информацию о 3D-текстурах. Это сжатые растровые изображения, которые применяются во многих 3D-приложениях, в особенности в компьютерных и консольных играх. Алгоритм сжатия позволяет использовать текстуры на таких консолях, как Xbox 360 и Play Station 3: Bethesda особенно часто делает объекты в своих играх через «дидиэс». Формат поддерживается большинством видеокарт, программой DirectX, а также программным обеспечением, которое выпускается производителями видеокарт.
Как открыть DDS?
Файл представляет собой растровую картинку. А значит, его можно открыть через графические редакторы. Вот только не всегда можно редактировать. Существуют специальные конвертеры, которые трансформируют эти файлы в более привычные для стандартного ПО форматы: .bmp, .jpg и т. п. Это, например, Right Click Image Converter. Утилита быстро переведёт .dds в более «лёгкое» расширение.
Photoshop
Чтобы открыть файл в Фотошопе, нужен плагин, выпускаемый компанией NVIDIA, — NVIDIA Texture Tools for Adobe Photoshop. Скачивается бесплатно, но, разумеется, нужно иметь уже установленный редактор от Adobe.
После установки плагина вы сможете открыть DDS в Фотошопе. Однако работать с ними далеко не так просто, как с обычными фотографиями или картинками. Если вы вдруг решили быстро освоить основы обработки и дизайна игровых объектов, даже при наличии опыта редактирования в Фотошопе вам придётся попотеть. Каждая текстура имеет свои размеры, различные сложные характеристики.
Всерьёз решили освоить .dds и научиться пилить свои моды для таких игр, как Fallout или Elder Scrolls? У вас всё получится, просто проведите несколько часов за тренировками и просмотром различных обучающих видео по редактированию.
Читайте также: