Поделиться через


Пример карты кубов DDS

Для карт кубической среды один или несколько лиц куба записываются в файл, используя несжатые или сжатые форматы, а все лица должны иметь одинаковый размер. Каждое лицо может иметь определенные mip-карты, хотя все лица должны иметь одинаковое количество уровней mipmap. Если файл содержит карту куба, необходимо задать DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP и одну или несколько DSCAPS2_CUBEMAP_POSITIVEX/Y/Z и/или DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z. Лица написаны в порядке: положительные x, отрицательные x, положительные y, отрицательные y, положительные z, отрицательные z, с любыми отсутствующими лицами опущены. Каждое лицо записывается с его основным изображением, за которым следует любой уровень mipmap.

Например, карта куба 256–256 с положительными x, отрицательными y и положительными z-лицами, форматом пикселей DXT1 и всеми уровнями mipmap будет содержать следующее:

Компоненты DDS # Байт
заголовок 128
256–256 положительный x основной образ 32768
128-к-128 положительное изображение x mipmap 8192
64-к-64 положительное изображение x mipmap 2048
32-к-32 положительное изображение x mipmap 512
16-к-16 положительное изображение x mipmap 128
8-к-8 положительное изображение mipmap x 32
4-к-4 положительное изображение x mipmap 8
2-к-2 положительное изображение x mipmap 8
1–1 положительное изображение mipmap x 8
повторите предыдущие 9 слоев для изображения mipmap y 43704
повторите предыдущие 9 слоев для изображения mipmap z 43704

 

Начиная с DirectX 8 карта куба хранится со всеми лицами, определенными.

Карты кубов DXGI

Карты кубической среды в Direct3D 10.x и Direct3D 11 эквивалентны массиву трехмерных текстур с 6 изображениями и могут храниться в таких файлах DDS. С Помощью Direct3D 10.1 и Direct3D 11 оборудование также может поддерживать массивы кубовых карт, которые сами являются массивами текстур 2D с несколькими из 6 изображений (6, 12, 18, 24 и т. д.).

Например, вот 256-256 кубовая карта с уровнями MIP-карты, хранящимися в формате BC6H в виде массива текстур 2D:

Компоненты DDS # Байт
заголовок (FourCC из DX10) 128
расширенный заголовок (формат DXGI имеет значение 95 [DXGI_FORMAT_BC6H_UF16], значение измерения 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], размер массива 1, неправильные флаги 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) 20
256–256 массива 0 (положительный x) основной образ 65536
128-к-128 массива запись 0 (положительное x) изображение mipmap 16384
64-по-64 массива записи 0 (положительное x) изображение mipmap 4096
32-по-32 массива записи 0 (положительное x) изображение mipmap 1024
16-по-16 массива записи 0 (положительное x) изображение mipmap 256
8-по-8 массива записи 0 (положительное x) изображение mipmap 64
4-по-4 массива запись 0 (положительное x) изображение mipmap 16
2-по-2 массива записи 0 (положительное x) изображение mipmap 16
Изображение mipmap с 1 по 1 массивом 0 (положительное x) 16
повторите предыдущие 9 слоев для изображения mipmap массива 1 (отрицательный x) 87408
повторите предыдущие 9 слоев для записи массива 2 (положительный y) изображение mipmap 87408
повторите предыдущие 9 слоев для записи массива 3 (отрицательный y) mipmap изображения 87408
повторите предыдущие 9 слоев для записи массива 4 (положительный z) mipmap изображения 87408
повторите предыдущие 9 слоев для записи массива 5 (отрицательный z) mipmap изображения 87408

 

Руководство по программированию для DDS