DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 열거형 D3DFORMAT   [목차열람] [주소복사] [슬롯비우기]
D3DFORMAT
 
Microsoft DirectX 9.0

D3DFORMAT


다양한 종류의 표면 포맷을 정의한다.

구문

typedef enum _D3DFORMAT {

...(values)

} D3DFORMAT;

포맷에는 몇개의 종류가 있다.

모든 포맷은, 왼쪽에서 오른쪽으로 최상정도 비트 (MSB)로부터 최하정도 비트 (LSB)의 순서에 나타나고 있다. 예를 들어, D3DFORMAT_ARGB 는, MSB 채널 A (알파)로부터 LSB 채널 B (파랑)의 순서이다. 표면 데이터를 암벽 횡단 할 때 데이터는 LSB 로부터 MSB 의 순서로 메모리에 저장 된다. 이것은, 메모리내의 채널의 순서가, LSB (파랑)로부터 MSB (알파)의 순서인 것을 의미한다.

미정도리의 채널 (G16R16 나 A8 등)을 포함한 포맷의 디폴트값은 1 이다. 유일한 예외는 A8 포맷으로, 3 개의 컬러 채널에 대해서 000 에 초기화된다.

부호 없음 포맷

이러한 정수는, 픽셀 셰이더에 대한 텍스처 주소 명령의 작동코드를 참조한다.

부호 없음 포맷의 데이터는, 정이 아니면 안된다. 부호 없음 포맷에서는, 적 (R), 록 (G), 청 (B), 알파 (A), 휘도(Luminance) (L), 팔레트 (P) 데이터를 조합해 사용한다. 팔레트 데이터는, 색팔레트의 인덱스 생성에 사용하므로, 컬러 인덱스 데이터라고도 부른다.

부호 없음 포맷의 플래그포맷
D3DFMT_R8G8B82024 비트의 RGB 픽셀 포맷으로, 채널 근처 8 비트를 사용한다.
D3DFMT_A8R8G8B82132 비트의 알파 첨부 ARGB 픽셀 포맷으로, 채널 근처 8 비트를 사용한다.
D3DFMT_X8R8G8B82232 비트의 RGB 픽셀 포맷으로, 각 색에 8 비트가 확보되고 있다.
D3DFMT_R5G6B52316 비트의 RGB 픽셀 포맷으로, 빨강에 5 비트, 초록에 6 비트, 파랑에 5 비트를 사용한다.
D3DFMT_X1R5G5B52416 비트의 픽셀 포맷으로, 그 중 5 비트는 각 색을 위해서(때문에) 확보되고 있다.
D3DFMT_A1R5G5B52516 비트의 픽셀 포맷으로, 각 색에 5 비트, 알파에 1 비트가 확보되고 있다.
D3DFMT_A4R4G4B42616 비트의 ARGB 픽셀 포맷으로, 채널 마다 4 비트를 사용한다.
D3DFMT_R3G3B2278 비트의 RGB 텍스처 포맷으로, 빨강에 3 비트, 초록에 3 비트, 파랑에 2 비트를 사용한다.
D3DFMT_A8288 비트의 알파만.
D3DFMT_A8R3G3B22916 비트의 ARGB 텍스처 포맷으로, 알파에 8 비트, 빨강과 초록에 각각 3 비트, 파랑에 2 비트를 사용한다.
D3DFMT_X4R4G4B43016 비트의 RGB 픽셀 포맷으로, 색 마다 4 비트를 사용한다.
D3DFMT_A2B10G10R103132 비트의 픽셀 포맷으로, 각 색에 10 비트, 알파에 2 비트를 사용한다.
D3DFMT_A8B8G8R83232 비트의 알파 첨부 ARGB 픽셀 포맷으로, 채널 근처 8 비트를 사용한다.
D3DFMT_X8B8G8R83332 비트의 RGB 픽셀 포맷으로, 각 색에 8 비트가 확보되고 있다.
D3DFMT_G16R163432 비트의 픽셀 포맷으로, 초록과 빨강에 각각 16 비트를 사용한다.
D3DFMT_A2R10G10B103532 비트의 픽셀 포맷으로, 적·록·청에 각각 10 비트, 알파에 2 비트를 사용한다.
D3DFMT_A16B16G16R163664 비트의 픽셀 포맷으로, 성분 마다 16 비트를 사용한다.
D3DFMT_A8P8408 비트의 알파가 붙은 8 비트의 컬러 인덱스 데이터.
D3DFMT_P8418 비트의 컬러 인덱스 데이터.
D3DFMT_L8508 비트의 휘도(Luminance)만.
D3DFMT_L168116 비트의 휘도(Luminance)만.
D3DFMT_A8L85116 비트로, 알파와 휘도(Luminance)에 각각 8 비트를 사용한다.
D3DFMT_A4L4528 비트로, 알파와 휘도(Luminance)에 각각 4 비트를 사용한다.

부호 첨부 포맷

부호 첨부 포맷의 데이터는, 정이어도 부여도 괜찮다. 부호 첨부 포맷에서는, (U), (V), (W), (Q) 데이터를 조합해 사용한다.

부호 첨부 포맷의 플래그포맷
D3DFMT_V8U86016 비트의 범프 맵 포맷으로, u 데이터와 v 데이터에 각각 8 비트를 사용한다.
D3DFMT_Q8W8V8U86332 비트의 범프 맵 포맷으로, 채널 마다 8 비트를 사용한다.
D3DFMT_V16U166432 비트의 범프 맵 포맷으로, 채널 마다 16 비트를 사용한다.
D3DFMT_Q16W16V16U1611064 비트의 범프 맵 포맷으로, 성분 마다 16 비트를 사용한다.
D3DFMT_CxV8U811716 비트의 보통 압축 포맷. 텍스처 샘플러는 다음과 같이 C 채널을 계산한다. C = sqrt(1 - U2 - V2)

믹스 포맷

믹스 포맷에는, 부호 없음 데이터와 부호 첨부 데이터를 조합해 저장 할 수 있다.

믹스 포맷의 플래그포맷
D3DFMT_L6V5U561휘도(Luminance) 첨부의 16 비트 범프 맵 포맷으로, 휘도(Luminance)에 6 비트, v 와 u 에 각각 5 비트를 사용한다.
D3DFMT_X8L8V8U862휘도(Luminance) 첨부의 32 비트 범프 맵 포맷으로, 채널 마다 8 비트를 사용한다.
D3DFMT_A2W10V10U106732 비트의 범프 맵 포맷으로, 알파에 2 비트, w, v, u 에 각각 10 비트를 사용한다.

FOURCC 포맷

4 문자 코드 (FOURCC) 포맷의 데이터는, 압축 데이터이다.

MAKEFOURCC

4 문자 코드를 생성하는 매크로를 다음에 나타낸다.

#define MAKEFOURCC(ch0, ch1, ch2, ch3)                              \
                ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) |   \
                ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))

정의 끝난 FOURCC 포맷을 다음에 나타낸다.

FOURCC 플래그포맷
D3DFMT_MULTI2_ARGB8MAKEFOURCC('M', 'E', 'T', '1')MultiElement 텍스처 (압축 없음)
D3DFMT_G8R8_G8B8MAKEFOURCC('G', 'R', 'G', 'B')YUY2 (Y0U0, Y1V0, Y2U2 등)에 유사한 16 비트에 팩 된 RGB 포맷. 색값을 올바르게 나타내기 위해서(때문에), 픽셀의 페어를 필요로 한다. 페어의 1 번째의 픽셀은, 초록의 8 비트 (상위 8 비트)와 빨강의 8 비트 (하위 8 비트)를 포함한다. 2 번째의 픽셀은, 초록의 8 비트 (상위 8 비트)와 파랑의 8 비트 (하위 8 비트)를 포함한다. 2 개의 픽셀은, 함께 빨강과 파랑의 성분을 공유하고 있지만, 동시에 각각이 고유의 초록 성분 (G0R0, G1B0, G2R2 등)을 갖는다. 텍스처 샘플러는, 픽셀 셰이더내를 참조할 경우에 색을 정규화하지 않는다. 색은 0.0f ~ 255.0f 의 범위대로 된다. 이것은 모든 프로그래밍 가능한 픽셀 셰이더 모델에 들어맞는다. 고정 기능 픽셀 셰이더에 경우는, 하드웨어로 0. f ~ 1. f 의 범위에 정규화할 필요가 있어, 본질적으로 YUY2 텍스처로서 처리할 필요가 있다. 이 포맷을 공개하는 하드웨어는,D3DCAPS9 의 PixelShader1xMaxValue 멤버가, 그 범위를 처리할 수 있는 값으로 설정되지 않으면 안 된다.
D3DFMT_R8G8_B8G8MAKEFOURCC('R', 'G', 'B', 'G')UYVY (U0Y0, V0Y1, U2Y2 등)에 유사한 16 비트에 팩 된 RGB 포맷. 색값을 올바르게 나타내기 위해서(때문에), 픽셀의 페어를 필요로 한다. 페어의 1 번째의 픽셀은, 초록의 8 비트 (하위 8 비트)와 빨강의 8 비트 (상위 8 비트)를 포함한다. 2 번째의 픽셀은, 초록의 8 비트 (하위 8 비트)와 파랑의 8 비트 (상위 8 비트)를 포함한다. 2 개의 픽셀은, 함께 빨강과 파랑의 성분을 공유하고 있지만, 동시에 각각이 고유의 초록 성분 (R0G0, B0G1, R2G2 등)을 갖는다. 텍스처 샘플러는, 픽셀 셰이더내를 참조할 경우에 색을 정규화하지 않는다. 색은 0.0f ~ 255.0f 의 범위대로 된다. 이것은 모든 프로그래밍 가능한 픽셀 셰이더 모델에 들어맞는다. 고정 기능 픽셀 셰이더에 경우는, 하드웨어로 0. f ~ 1. f 의 범위에 정규화할 필요가 있어, 본질적으로 YUY2 텍스처로서 처리할 필요가 있다. 이 포맷을 공개하는 하드웨어는,D3DCAPS9 의 PixelShader1xMaxValue 멤버가, 그 범위를 처리할 수 있는 값으로 설정되지 않으면 안 된다.
D3DFMT_DXT1MAKEFOURCC('D', 'X', 'T', '1')DXT1 압축 텍스처 포맷
D3DFMT_DXT2MAKEFOURCC('D', 'X', 'T', '2')DXT2 압축 텍스처 포맷
D3DFMT_DXT3MAKEFOURCC('D', 'X', 'T', '3')DXT3 압축 텍스처 포맷
D3DFMT_DXT4MAKEFOURCC('D', 'X', 'T', '4')DXT4 압축 텍스처 포맷
D3DFMT_DXT5MAKEFOURCC('D', 'X', 'T', '5')DXT5 압축 텍스처 포맷
D3DFMT_UYVYMAKEFOURCC('U', 'Y', 'V', 'Y')UYVY 포맷 (PC98 준거)
D3DFMT_YUY2MAKEFOURCC('Y', 'U', 'Y', '2')YUY2 포맷 (PC98 준거)

버퍼 포맷

깊이 버퍼, 스텐실 버퍼, 정점 버퍼, 인덱스 버퍼는, 각각 고유의 포맷을 갖는다.

버퍼 플래그포맷
D3DFMT_D16_LOCKABLE7016 비트의 Z 버퍼 비트 깊이.
D3DFMT_D327132 비트의 Z 버퍼 비트 깊이.
D3DFMT_D15S17316 비트의 Z 버퍼 비트 깊이로, 15 비트가 깊이 채널에, 1 비트가 스텐실 채널에 확보되고 있다.
D3DFMT_D24S87532 비트의 Z 버퍼 비트 깊이로, 깊이 채널에 24 비트, 스텐실 채널에 8 비트를 사용한다.
D3DFMT_D24X87732 비트의 Z 버퍼 비트 깊이로, 깊이 채널에 24 비트를 사용한다.
D3DFMT_D24X4S47932 비트의 Z 버퍼 비트 깊이로, 깊이 채널에 24 비트, 스텐실 채널에 4 비트를 사용한다.
D3DFMT_D32F_LOCKABLE82깊이값을 표준 IEEE 부동 소수점수(실수)값으로 나타내는 잠금 가능한 포맷.
D3DFMT_D24FS88324 비트의 깊이 (24 비트 부동 소수점 포맷 - 20e4)와 8 비트의 스텐실을 포함한, 잠글 수 없는 포맷.
D3DFMT_D168016 비트의 Z 버퍼 비트 깊이.
D3DFMT_VERTEXDATA100정점 버퍼 표면을 기술한다.
D3DFMT_INDEX1610116 비트의 인덱스 버퍼의 비트 깊이.
D3DFMT_INDEX3210232 비트의 인덱스 버퍼의 비트 깊이.

D3DFMT_D16_LOCKABLE 를 제외하는 모든 스텐실 포맷은, 각 픽셀에 특정의 비트 오더를 지정하지 않기 때문에, 드라이버는 깊이 채널로서 지정된 비트수보다 넓은 채널을 사용할 수 있다 (다만, 스텐실 채널은 사용할 수 없다).

부동 소수점 포맷

이러한 플래그는, 부동 소수점의 표면 포맷에 사용한다. 채널 근처 16 비트를 사용하는 이러한 포맷은, s10e5 포맷이라고도 부른다.

부동 소수점의 플래그포맷
D3DFMT_R16F11116 비트의 부동 소수점 포맷으로, 빨강의 채널에 16 비트를 사용한다.
D3DFMT_G16R16F11232 비트의 부동 소수점 포맷으로, 빨강의 채널에 16 비트, 초록의 채널에 16 비트를 사용한다.
D3DFMT_A16B16G16R16F11364 비트의 부동 소수점 포맷으로, 알파·청·록·적의 채널 마다 16 비트를 사용한다.

IEEE 포맷

이러한 플래그는, 부동 소수점의 표면 포맷에 사용한다. 채널 근처 32 비트를 사용하는 이러한 포맷은, s23e8 포맷이라고도 부른다.

부동 소수점의 플래그포맷
D3DFMT_R32F11432 비트의 부동 소수점 포맷으로, 빨강의 채널에 32 비트를 사용한다.
D3DFMT_G32R32F11564 비트의 부동 소수점 포맷으로, 빨강의 채널에 32 비트, 초록의 채널에 32 비트를 사용한다.
D3DFMT_A32B32G32R32F116128 비트의 부동 소수점 포맷으로, 알파·청·록·적의 채널 마다 32 비트를 사용한다.

그 외

그 외의 플래그는, 이것뿐이어, 미정도리의 포맷에 사용한다.

그 외의 플래그포맷
D3DFMT_UNKNOWN0표면 포맷은 불명하다.

백 버퍼 또는 디스플레이 포맷

이러한 포맷은, 백 버퍼 또는 디스플레이 에 대해서만 유효하다.

포맷백 버퍼. 디스플레이
A2R10G10B10xx (풀 스크린 모드만)
A8R8G8B8x
X8R8G8B8xx
A1R5G5B5x
X1R5G5B5xx
R5G6B5xx

주의

비트 오더는, 최상정도 바이트가 선두이다. 따라서, D3DFMT_A8L8 는, 이 2 바이트 포맷의 상위 바이트가 알파인 것을 나타내고 있다. D3DFMT_D16 는, 16 비트의 정수값으로, 애플리케이션으로 잠금 가능한 표면을 나타낸다.

픽셀 포맷이 선택되고 있는 것은, 확립되어 있는 FOURCC 방식을 도입할 뿐만 아니라, 하드웨어 벤더가 정의하는 확장 포맷의 표현을 가능하게 하기 위한(해)이다. Microsoft® Direct3D® 런타임이 인식하는 포맷군은,D3DFORMAT 로 정의되고 있다.

독립한 하드웨어 vender (IHV)가 제공하는 포맷 및 많은 FOURCC 코드는, 일람에는 나타나지 않기 때문에 주의할 필요가 있다. 이 열거형의 포맷은, 런타임에 의해 인정되고 있는 점이 다른 포맷과 다르다. 즉, 레퍼런스 래스터라이저는, 이러한 형태의 모두로 동작한다. IHV 제공의 포맷은, 카드 마다 각각의 IHV 가 지원 한다.

관련 항목



© 2002 Microsoft Corporation. All rights reserved.
↑TOP