다음을 통해 공유


텍스처 주소 지정 모드

Direct3D 애플리케이션은 모든 기본 객체의 꼭짓점에 텍스처 좌표를 지정할 수 있습니다. 일반적으로 꼭짓점에 할당되는 u 및 v-텍스처 좌표는 0.0~1.0(0.0과 1.0 포함)의 범위 내에 있습니다. 하지만 범위 외부에 텍스처 좌표를 지정할 경우 특수한 텍스처 효과를 생성할 수 있습니다. .

[0.0, 1.0] 범위를 벗어나는 텍스처 좌표에 대한 Direct3D의 기능은 텍스처 주소 지정 모드를 설정하여 제어합니다. 예를 들어 애플리케이션에서 텍스처가 기본 객체에 타일링되도록 텍스처 주소 지정 모드를 설정할 수 있습니다.

Direct3D는 애플리케이션에서 텍스처 래핑이 가능합니다. 텍스처 래핑을 참조하세요.

텍스처 래핑을 효과적으로 사용하면 [0.0, 1.0] 범위를 벗어나는 텍스처 좌표가 잘못된 것으로 나타나지만, 이 경우에는 잘못된 텍스처 좌표를 래스터화하는 동작이 정의되지 않았습니다. 텍스처 래핑을 사용하면 텍스처 주소 지정 모드는 사용하지 못합니다. 따라서 텍스처 래핑을 사용할 때는 애플리케이션이 텍스처 좌표를 0.0보다 낮게, 혹은 1.0보다 높게 지정하지 않도록 주의해야 합니다.

텍스처 주소 지정 모드에 대한 요약

텍스처 주소 지정 모드 설명
줄 바꿈 모든 정수 교차점에서 텍스처를 반복합니다.
미러 모든 정수 테두리에서 텍스처를 미러링합니다.
Clamp 텍스처 좌표를 [0.0, 1.0] 범위로 고정합니다. 클램프 모드에서는 텍스처를 한 번 적용한 다음 가장 자리 픽셀의 색상을 설정합니다.
테두리 색 0.0~1.0(0.0과 1.0 포함)의 범위를 벗어나는 모든 텍스처 좌표에 임의의 테두리 색을 사용합니다.

 

랩 텍스처 주소 모드

랩 텍스처 주소 모드에서는 Direct3D가 모든 정수 교차점에서 텍스처를 반복합니다.

예를 들어 애플리케이션이 기본 사각형을 생성한 다음 (0.0,0.0), (0.0,3.0), (3.0,3.0) 및 (3.0,0.0)의 텍스처 좌표를 지정한다고 가정하겠습니다. 이때 텍스처 주소 지정 모드를 "랩"으로 설정하면 다음 그림과 같이 텍스처가 u 및 v 방향으로 3회 적용됩니다.

illustration of a face texture wrapped in the u-direction and the v-direction

이것을 다음 미러 텍스처 주소 모드와 비교하세요.

미러 텍스처 주소 모드

미러 텍스처 주소 모드에서는 Direct3D가 모든 정수 테두리에서 텍스처를 미러링합니다.

예를 들어 애플리케이션이 기본 사각형을 생성한 다음 (0.0,0.0), (0.0,3.0), (3.0,3.0) 및 (3.0,0.0)의 텍스처 좌표를 지정한다고 가정하겠습니다. 이때 텍스처 주소 지정 모드를 "미러"로 설정하면 텍스처가 u 및 v 방향으로 3회 적용됩니다. 그 밖에 텍스처가 적용되는 모든 행과 열은 다음 그림과 같이 이전 행 또는 열의 미러 이미지입니다.

illustration of mirror images in a 3x3 grid

이것을 이전 랩 텍스처 주소 모드와 비교하세요.

클램프 텍스처 주소 모드

클램프 텍스처 주소 모드에서는 Direct3D가 텍스처 좌표를 [0.0, 1.0] 범위로 고정합니다. 또한 텍스처를 한 번 적용한 다음 가장 자리 픽셀의 색상을 설정합니다.

예를 들어 애플리케이션이 기본 사각형을 생성한 다음 텍스처 좌표 (0.0,0.0), (0.0,3.0), (3.0,3.0) 및 (3.0,0.0)을 기본 사각형의 꼭짓점에 지정한다고 가정하겠습니다. 이때 텍스처 주소 지정 모드를 "클램프"로 설정하면 텍스처가 한 번 적용됩니다. 열 상단과 행 끝의 픽셀 색상은 각각 기본 사각형의 상단과 오른쪽으로 확장됩니다.

다음은 클램프 텍스처를 나타낸 그림입니다.

illustration of a texture and a clamped texture

테두리 색 텍스처 주소 모드

테두리 색 텍스처 주소 모드에서는 Direct3D가 0.0~1.0(0.0과 1.0 포함)의 범위를 벗어나는 모든 텍스처 좌표에 테두리 색이라고 하는 임의의 색상을 사용합니다.

다음 그림에서는 애플리케이션이 빨간색 테두리를 사용하여 텍스처가 기본 객체에 적용되도록 지정하고 있습니다.

illustration of a texture and a texture with a red border

디바이스 제한

일반적으로 시스템이 0.0~1.0(0.0과 1.0 포함)의 범위를 벗어나는 텍스처 좌표를 허용하기는 하지만 하드웨어 제한으로 인해 범위를 벗어날 수 있는 텍스처 좌표에도 한계가 있습니다. 렌더링 디바이스에서 여러 가지 기능을 살펴보면 허용되는 텍스트 좌표의 전체 범위 한계가 표시됩니다.

예를 들어 한계 값이 128이면 입력되는 텍스처 좌표가 -128.0~+128.0의 범위를 벗어나서는 안 됩니다. 이 범위를 벗어나는 텍스트 좌표의 꼭짓점을 전달하면 무효 처리됩니다. 자동 텍스처 좌표 생성 및 텍스처 좌표 변환에 따라 생성된 텍스처 좌표에도 동일한 제한이 따릅니다.

텍스처 반복 제한은 텍스처 좌표에서 인덱싱되는 텍스처 크기에 따라 다릅니다. 이 경우에서 텍스처 차원이 32이고, 디바이스에서 허용하는 텍스처 좌표의 범위가 512라면 실제로 유효한 텍스처 좌표 범위는 512/32 = 16이 됩니다. 따라서 이 디바이스의 텍스처 범위는 -16.0~+16.0을 벗어나서는 안 됩니다.

질감