Пример сопоставления куба DDS
Для сопоставлений с кубическими средами в файл записывается один или несколько граней куба в несжатом или сжатом формате, и все лица должны иметь одинаковый размер. Для каждого лица могут быть определены MIP-карты, хотя все лица должны иметь одинаковое количество уровней MIP-карты. Если файл содержит карту куба, следует задать DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP и один или несколько DSCAPS2_CUBEMAP_POSITIVEX,Y/Z и/или DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z. Лица записываются в порядке: положительные x, отрицательные x, положительные y, отрицательные y, положительные z, отрицательные z, при этом отсутствующие лица опущены. Каждое лицо записывается с помощью main изображения, за которым следуют все уровни MIP-карты.
Например, карта куба 256 на 256 с положительными x, отрицательными y и положительными z гранями, форматом пикселей DXT1 и всеми уровнями MIP-карты будет содержать следующее:
Компоненты DDS | # Байт |
---|---|
заголовок | 128 |
Изображение 256 на 256 положительных x main | 32768 |
Изображение MIP 128 на 128 положительных x | 8192 |
Изображение MIP 64 на 64 положительных x | 2048 |
Изображение MIP 32 на 32 положительных x | 512 |
Изображение MIP 16 на 16 положительных x | 128 |
Изображение mip-карты 8 на 8 положительных x | 32 |
Изображение mip-карты 4 на 4 положительных x | 8 |
Изображение MIP 2 на 2 положительных x | 8 |
Изображение mip-карты 1 на 1 положительное x | 8 |
повторите предыдущие 9 слоев для изображения MIP-карты Y | 43704 |
повторить предыдущие 9 слоев для изображения z mipmap | 43704 |
Начиная с DirectX 8, карта куба хранится со всеми определенными лицами.
DXGI Cube Maps
Карты кубических сред в Direct3D 10.x и Direct3D 11 эквивалентны массиву двухd-текстур с 6 изображениями и могут храниться в файлах DDS. При использовании Direct3D 10.1 и Direct3D 11 оборудование также может поддерживать массивы кубовых карт, которые сами являются массивами двухD-текстур с кратными 6 изображениями (6, 12, 18, 24 и т. д.).
Например, ниже приведена кубовая карта размером 256 на 256 с уровнями MIP-карты, хранящихся в формате BC6H в виде массива двухD-текстур:
Компоненты DDS | # Байт |
---|---|
заголовок (FourCC из "DX10") | 128 |
расширенный заголовок (формат DXGI имеет значение 95 [DXGI_FORMAT_BC6H_UF16], значение измерения 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], размер массива 6, флаги 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) | 20 |
256 на 256 массива запись 0 (положительное x) main изображении | 65536 |
128 на 128 запись массива 0 (положительное x) изображение MIP-карты | 16384 |
64 на 64 массива запись 0 (положительное x) изображение MIP-карты | 4096 |
32 на 32 массива запись 0 (положительное x) изображение MIP-карты | 1024 |
16 на 16 массива запись 0 (положительное x) изображение MIP-карты | 256 |
8 на 8 запись массива 0 (положительное x) изображение MIP-карты | 64 |
4 на 4 массива запись 0 (положительное x) изображение MIP-карты | 16 |
Изображение MIP-карты с 0 записью массива 2 на 2 (положительное x) | 16 |
1-на-1 запись массива 0 (положительное x) изображение MIP-карты | 16 |
повторите предыдущие 9 слоев для записи массива 1 (отрицательное изображение x) MIP-карты | 87408 |
повторите предыдущие 9 слоев для записи массива 2 (положительное y) изображения MIP-карты | 87408 |
Повторите предыдущие 9 слоев для записи 3 (отрицательное значение y) mIP-карты массива | 87408 |
Повторите предыдущие 9 слоев для MIP-изображения записи массива 4 (положительный z) | 87408 |
Повторите предыдущие 9 слоев для записи массива 5 (отрицательное Z) изображение MIP-карты | 87408 |
Связанные темы