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


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

Для текстуры тома используйте флагиDDSCAPS_COMPLEX, DDSCAPS2_VOLUME и DDSD_DEPTH и задайте dwDepth. Текстура объема является расширением стандартной текстуры для Direct3D 9; текстуру тома можно определить с помощью mIP-карт или без нее.

Для томов без MIP-карт каждый срез глубины записывается в файл по порядку. Если включены MIP-карты, все срезы глубины для заданного уровня MIP-карты записываются вместе, при этом каждый уровень содержит половину меньшего количества срезов предыдущего уровня с минимальным количеством 1.

Например, схема томов 64 на 64 на 4 с использованием формата пикселей R8G8B8 (3 байта на пиксель) со всеми уровнями MIP-карты будет содержать следующее:

Компоненты DDS # Байт
заголовок 128 байт
64 на 64 срез 1 из 4 main изображения. 12288 байт
64 на 64 срез 2 из 4 main изображения. 12288 байт
64 на 64 срез 3 из 4 main изображения. 12288 байт
64 на 64 срез 4 из 4 main изображения. 12288 байт
32 на 32 срез 1 из 2 MIP-изображения. 3072 байта
32 на 32 срез 2 из 2 MIP-изображения. 3072 байта
16 на 16 срез 1 из 1 MIP-изображения. 768 байт
8 на 8 срез 1 из 1 MIP-изображения. 192 байта
4 на 4 срез 1 из 1 MIP-изображения. 48 байт
2 на 2 срез 1 из 1 MIP-изображения. 12 байт
1 на 1 срез 1 из 1 MIP-изображения. 3 байта

 

Обратите внимание, что наименьший уровень MIP-карты составляет всего 3 байта, так как число битов равно 24 и на этом уровне не добавляется сжатие.

В DirectX 8 добавлена поддержка текстур томов.

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