텍스처 좌표 형식(Direct3D 9)

Direct3D의 텍스처 좌표에는 다양한 차원 수준의 텍스처를 처리하는 1, 2, 3 또는 4개의 부동 소수점 요소가 포함될 수 있습니다. 크기가 1 x n인 텍스처 표면인 1D 텍스처는 하나의 텍스처 좌표로 처리됩니다. 가장 일반적인 경우인 2D 텍스처는 일반적으로 사용자 및 v라고 하는 두 개의 텍스처 좌표로 처리됩니다. Direct3D는 두 가지 유형의 3D 텍스처, 입방 환경 맵 및 볼륨 텍스처를 지원합니다. 입방 환경 맵은 실제로 3D는 아니지만 3 요소 벡터로 처리됩니다. 자세한 내용은 입방 환경 매핑(Direct3D 9)을 참조하세요.

고정 함수 FVF 코드(Direct3D 9)에 설명된 대로 애플리케이션은 꼭짓점 형식으로 텍스처 좌표를 인코딩합니다. 꼭짓점 형식에는 여러 텍스처 좌표 집합이 포함될 수 있습니다. D3DFVF_TEX8 D3DFVF 를 통한 D3DFVF_TEX0 사용하여 텍스처 좌표가 없는 꼭짓점 형식 또는 최대 8개의 집합을 설명합니다.

각 텍스처 좌표 집합에는 1~4개의 요소가 있을 수 있습니다. D3DFVF_TEXTUREFORMAT4 플래그를 통한 D3DFVF_TEXTUREFORMAT1 집합의 텍스처 좌표에 있는 요소 수를 설명하지만 이러한 플래그는 자체에서 사용되지 않습니다. 대신 D3DFVF_TEXCOORDSIZEN 매크로 집합은 이러한 플래그를 사용하여 꼭짓점 형식의 특정 텍스처 좌표 집합에서 사용되는 요소 수를 설명하는 비트 패턴을 만듭니다. 이러한 매크로는 요소 수가 정의되는 좌표 집합의 인덱스를 식별하는 단일 매개 변수를 허용합니다. 다음 예제에서는 이러한 매크로를 사용하는 방법을 보여 줍니다.

// This vertex format contains two sets of texture coordinates.
// The first set (index 0) has 2 elements, and the second set 
// has 1 element. The description for this vertex format would be: 
//     dwFVF = D3DFVF_XYZ  | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX2 |
//             D3DFVF_TEXCOORDSIZE2(0) | D3DFVF_TEXCOORDSIZE1(1); 
//
typedef struct CVF
{
    D3DVECTOR position;
    D3DVECTOR normal;
    D3DCOLOR  diffuse;
    float     u, v;   // 1st set, 2D
    float     t;      // 2nd set, 1D
} CustomVertexFormat;

참고

입방 환경 맵 및 볼륨 텍스처를 제외하고 래스터라이저는 두 개 이상의 요소를 사용하여 텍스처를 처리할 수 없습니다. 애플리케이션은 텍스처 좌표에 대해 최대 3개의 요소를 제공할 수 있지만 텍스처가 큐브 맵, 볼륨 텍스처 또는 D3DTTFF_PROJECTED 텍스처 변환 플래그가 사용되는 경우에만 사용할 수 있습니다. D3DTTFF_PROJECTED 플래그를 사용하면 래스터라이저가 처음 두 요소를 세 번째(또는 n) 요소로 나눕니다. 자세한 내용은 텍스처 좌표 변환(Direct3D 9)을 참조하세요.

 

텍스처 좌표