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


Пример текстур DDS

Для несжатой текстуры используйте флаги DDSD_PITCH и DDPF_RGB; для сжатой текстуры используйте флаги DDSD_LINEARSIZE и DDPF_FOURCC. Для текстуры mipmapped используйте DDSD_MIPMAPCOUNT, DDSCAPS_MIPMAP и флаги DDSCAPS_COMPLEX, а также элемент счетчика mipmap. Если создаются MIP-карты, все уровни до 1–1 обычно записываются.

Для сжатой текстуры размер каждого изображения уровня MIP обычно составляет одну четвертую величину предыдущего размера( не менее 8 (DXT1) или 16 (DXT2-5) байтов (для квадратных текстур). Используйте следующую формулу для вычисления размера каждого уровня для некверной текстуры:

max(1, ( (width + 3) / 4 ) ) x max(1, ( (height + 3) / 4 ) ) x 8(DXT1) or 16(DXT2-5)

В этой таблице перечислены объем пространства, занятого каждым слоем для текстуры 256–256 R8G8B8, без сжатия.

Компоненты DDS # Байт
заголовок 128
256-к-256 основное изображение 196608
Изображение 128-к-128 mipmap 49152
64-по-64 mipmap image 12288
Изображение 32-по-32 mipmap 3072
Изображение mipmap с 16 по 16 768
Изображение mipmap от 8 до 8 192
Изображение mipmap от 4 до 4 48
Изображение mipmap от 2 до 2 12
Изображение mipmap от 1 до 1 3

 

В этой таблице перечислены объем пространства, занятого каждым слоем для одной текстуры с помощью сжатия (DXT1).

Компоненты DDS # Байт
заголовок 128
256-к-64 основное изображение 8192
Изображение 128-32 mipmap 2048
Изображение mipmap с 64 по 16 512
32-по-8 mipmap image 128
Изображение mipmap с 16 по 4 32
Изображение mipmap от 8 до 2 16
Изображение mipmap от 4 до 1 8
Изображение mipmap с 2 по 1 8
Изображение mipmap от 1 до 1 8

 

В этой таблице перечислены объем пространства, занятого каждым слоем для одной текстуры с использованием формата сжатия DXGI (в данном случае BC3_UNORM), поэтому требуется расширенный заголовок:

Компоненты DDS # Байт
заголовок (FourCC, равный DX10) 128
расширенный заголовок (набор форматов DXGI для DXGI_FORMAT_BC3_UNORM) 20
256-к-64 основное изображение 16384
Изображение 128-32 mipmap 4096
Изображение mipmap с 64 по 16 1024
32-по-8 mipmap image 256
Изображение mipmap с 16 по 4 64
Изображение mipmap от 8 до 2 32
Изображение mipmap от 4 до 1 16
Изображение mipmap с 2 по 1 16
Изображение mipmap от 1 до 1 16

 

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