다음을 통해 공유


DDS 텍스처 예제

압축되지 않은 질감의 경우 DDSD_PITCH 사용하고 플래그를 DDPF_RGB; 압축된 텍스처의 경우 DDSD_LINEARSIZE 및 DDPF_FOURCC 플래그를 사용합니다. mipmapped 텍스처의 경우 DDSD_MIPMAPCOUNT, DDSCAPS_MIPMAP 및 DDSCAPS_COMPLEX 플래그와 mipmap 개수 멤버를 사용합니다. Mipmap이 생성되면 1-1까지의 모든 수준이 일반적으로 기록됩니다.

압축된 텍스처의 경우 각 Mipmap 수준 이미지의 크기는 일반적으로 이전 크기의 1/4이며 최소 8(DXT1) 또는 16(DXT2-5) 바이트(제곱 텍스처의 경우)입니다. 다음 수식을 사용하여 제곱이 아닌 질감의 각 수준 크기를 계산합니다.

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

이 표에서는 압축을 사용하지 않고 256-by-256 R8G8B8 텍스처에 대해 각 계층에서 사용하는 공간의 양을 나열합니다.

DDS 구성 요소 # 바이트
머리글 128
256 by-256 기본 이미지 196608
128-by-128 mipmap 이미지 49152
64-by-64 Mipmap 이미지 12288
32-by-32 밉맵 이미지 3072
16-by-16 밉맵 이미지 768
8-by-8 밉맵 이미지 192
4-by-4 밉맵 이미지 48
2-by-2 밉맵 이미지 12
1-1 mipmap 이미지 3

 

이 표에서는 압축(DXT1)을 사용하여 동일한 텍스처에 대해 각 계층에서 사용하는 공간의 양을 나열합니다.

DDS 구성 요소 # 바이트
머리글 128
256-by-64 기본 이미지 8192
128-by-32 Mipmap 이미지 2048
64-by-16 밉맵 이미지 512
32-by-8 mipmap 이미지 128
16-by-4 Mipmap 이미지 32
8-by-2 밉맵 이미지 16
4-by-1 밉맵 이미지 8
2-by-1 밉맵 이미지 8
1-1 mipmap 이미지 8

 

이 표에서는 DXGI 압축 형식(이 경우 BC3_UNORM)을 사용하여 동일한 텍스처에 대해 각 계층이 사용하는 공간의 양을 나열합니다. 따라서 확장 헤더가 필요합니다.

DDS 구성 요소 # 바이트
header(FourCC가 "DX10"으로 설정됨) 128
확장 헤더(DXGI_FORMAT_BC3_UNORM DXGI 형식으로 설정) 20
256-by-64 기본 이미지 16384
128-by-32 Mipmap 이미지 4096
64-by-16 밉맵 이미지 1024
32-by-8 mipmap 이미지 256
16-by-4 Mipmap 이미지 64
8-by-2 밉맵 이미지 32
4-by-1 밉맵 이미지 16
2-by-1 밉맵 이미지 16
1-1 mipmap 이미지 16

 

DDS 대한 프로그래밍 가이드