다음을 통해 공유


DDS 큐브 맵 예제

입방형 환경 맵의 경우 압축되지 않은 형식이나 압축된 형식을 사용하여 큐브의 하나 이상의 얼굴이 파일에 기록되며 모든 얼굴의 크기는 같아야 합니다. 모든 얼굴에는 동일한 수의 밉맵 수준이 있어야 하지만 각 얼굴에는 밉맵이 정의되어 있을 수 있습니다. 파일에 큐브 맵, DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP 및 하나 이상의 DSCAPS2_CUBEMAP_POSITIVEX/Y/Z 및/또는 DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z를 설정해야 합니다. 얼굴은 양수 x, 음수 x, 긍정 y, 음수 y, 양수 z, 음수 z 순으로 작성되며 누락된 얼굴은 생략됩니다. 각 얼굴은 기본 이미지로 쓰여지고 밉맵 수준이 뒤따릅니다.

예를 들어 양의 x, 음수 y 및 양의 z 면이 있는 256x256 큐브 맵, DXT1의 픽셀 형식 및 모든 Mipmap 수준에는 다음이 포함됩니다.

DDS 구성 요소 # 바이트
header 128
256x256 긍정 x 기본 이미지 32768
128x128 양수 x 밉맵 이미지 8192
64x64 긍정 x 밉맵 이미지 2048
32x32 양수 x 밉맵 이미지 512
16x16 긍정 x 밉맵 이미지 128
8x8 양수 x 밉맵 이미지 32
4x4 양수 x 밉맵 이미지 8
2x2 양수 x 밉맵 이미지 8
1x1 양수 x 밉맵 이미지 8
y mipmap 이미지에 대해 이전 9개의 레이어를 반복합니다. 43704
z mipmap 이미지에 대해 이전 9개의 레이어를 반복합니다. 43704

 

DirectX 8부터 큐브 맵은 정의된 모든 얼굴과 함께 저장됩니다.

DXGI 큐브 맵

Direct3D 10.x 및 Direct3D 11의 입방 환경 맵은 6개의 이미지가 있는 2D 텍스처 배열과 동일하며 DDS 파일에 저장할 수 있습니다. Direct3D 10.1 및 Direct3D 11을 사용하면 하드웨어는 6개 이미지(6, 12, 18, 24 등)의 배수로 자체 2D 텍스처 배열인 큐브맵 배열을 지원할 수도 있습니다.

예를 들어 2D 텍스처 배열로 BC6H 형식으로 저장된 Mipmap 수준이 있는 256 by-256 큐브맵은 다음과 같습니다.

DDS 구성 요소 # 바이트
header("DX10"의 FourCC) 128
확장 헤더(DXGI 형식이 95 [DXGI_FORMAT_BC6H_UF16]로 설정됨, 차원 값 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], 배열 크기 6, 0x4 기타 플래그 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) 20
256x256 배열 항목 0(양의 x) 기본 이미지 65536
128x128 배열 항목 0(양수 x) Mipmap 이미지 16384
64x64 배열 항목 0(양수 x) Mipmap 이미지 4096
32x32 배열 항목 0(양수 x) Mipmap 이미지 1024
16x16 배열 항목 0(양수 x) Mipmap 이미지 256
8x8 배열 항목 0(양수 x) Mipmap 이미지 64
4x4 배열 항목 0(양수 x) Mipmap 이미지 16
2x2 배열 항목 0(양수 x) Mipmap 이미지 16
1x1 배열 항목 0(양수 x) Mipmap 이미지 16
배열 항목 1(음수 x) Mipmap 이미지에 대해 이전 9개 계층을 반복합니다. 87408
배열 항목 2(양수 y) Mipmap 이미지에 대해 이전 9개 계층을 반복합니다. 87408
배열 항목 3(음수 y) Mipmap 이미지에 대해 이전 9개 계층을 반복합니다. 87408
배열 항목 4(양수 z) mipmap 이미지에 대해 이전 9개 계층을 반복합니다. 87408
배열 항목 5(음수 z) mipmap 이미지에 대해 이전 9개 계층을 반복합니다. 87408

 

DDS에 대한 프로그래밍 가이드