Direct3D 애플리케이션은 기본 형식의 모든 꼭짓점에 텍스처 좌표를 할당할 수 있습니다. 자세한 내용은 텍스처 좌표(Direct3D 9)참조하세요. 일반적으로 꼭짓점에 할당하는 u 및 v-텍스처 좌표는 0.0~1.0 범위입니다. 그러나 해당 범위 밖에 텍스처 좌표를 할당하여 특정 특수 텍스처 효과를 만들 수 있습니다.
텍스처 주소 지정 모드를 설정하여 [0.0, 1.0] 범위를 벗어난 텍스처 좌표로 Direct3D가 수행하는 작업을 제어합니다. 애플리케이션이 텍스처 주소 모드를 설정하여 텍스처가 기하학적 프리미티브 위에 타일링되도록 할 수 있습니다.
Direct3D를 사용하면 애플리케이션에서 텍스처 래핑을 수행할 수 있습니다. 텍스처 주소 지정 모드를 D3DTADDRESS_WRAP 설정은 텍스처 래핑을 수행하는 것과 동일하지 않습니다. 텍스처 주소 지정 모드를 D3DTADDRESS_WRAP 설정하면 원본 텍스처의 여러 복사본이 현재 기본 형식에 적용되고 텍스처 래핑을 사용하도록 설정하면 시스템에서 텍스처 다각형을 래스터화하는 방법이 변경됩니다. 자세한 내용은 텍스처 래핑(Direct3D 9)참조하세요.
텍스처 래핑을 효과적으로 사용하도록 설정하면 [0.0, 1.0] 범위 외부의 텍스처 좌표가 유효하지 않으며 이러한 연체 텍스처 좌표를 래스터화하는 동작은 이 경우에 정의되지 않습니다. 텍스처 래핑을 사용하도록 설정하면 텍스처 주소 지정 모드가 사용되지 않습니다. 텍스처 래핑을 사용하는 경우 애플리케이션이 0.0보다 낮거나 1.0보다 높은 텍스처 좌표를 지정하지 않도록 주의하세요.
주소 지정 모드 설정
IDirect3DDevice9::SetSamplerState 메서드를 호출하여 개별 텍스처 스테이지에 대한 텍스처 주소 지정 모드를 설정할 수 있습니다. Sampler 매개 변수에서 원하는 텍스처 스테이지 식별자를 지정합니다. Type 매개 변수를 D3DSAMP_ADDRESSU, D3DSAMP_ADDRESSV 또는 D3DSAMP_ADDRESSW 값으로 설정하여 u-, v 또는 w 주소 지정 모드를 개별적으로 업데이트합니다. Value 매개 변수는 설정되는 모드를 결정합니다. D3DTEXTUREADDRESS 열거형 형식의 멤버일 수 있습니다. 텍스처 스테이지의 현재 텍스처 주소 모드를 검색하려면 D3DSAMPLERSTATETYPE 열거형의 D3DSAMP_ADDRESSU, D3DSAMP_ADDRESSV 또는 D3DSAMP_ADDRESSW 멤버를 사용하여 IDirect3DDevice9::GetSamplerState호출하여 정보를 원하는 주소 모드를 식별합니다.
디바이스 제한 사항
시스템은 일반적으로 0.0 및 1.0 범위를 벗어난 텍스처 좌표를 허용하지만, 하드웨어 제한은 종종 해당 범위의 텍스처 좌표 범위를 벗어나는 정도에 영향을 줍니다. 렌더링 디바이스는 디바이스 기능을 검색할 때 D3DCAPS9 구조체의 MaxTextureRepeat 멤버에서 이 제한을 전달합니다. 이 멤버의 값은 디바이스에서 허용하는 텍스처 좌표의 전체 범위를 설명합니다. 예를 들어 이 값이 128이면 입력 텍스처 좌표가 -128.0에서 +128.0 범위로 유지되어야 합니다. 이 범위를 벗어나는 텍스처 좌표로 꼭짓점을 전달하는 것은 유효하지 않습니다. 자동 텍스처 좌표 생성 및 텍스처 좌표 변환의 결과로 생성된 텍스처 좌표에 동일한 제한이 적용됩니다.
MaxTextureRepeat 해석은 D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 기능 비트의 영향을 받습니다. 이 비트를 설정하면 MaxTextureRepeat 멤버의 값이 설명된 대로 정확하게 사용됩니다. 그러나 D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 설정되지 않은 경우 텍스처 반복 제한은 텍스처 좌표로 인덱싱된 질감의 크기에 따라 달라집니다. 이 경우 유효한 텍스처 좌표 범위를 계산하려면 MaxTextureRepeat 가장 큰 수준의 현재 텍스처 크기로 크기를 조정해야 합니다. 예를 들어 텍스처 차원이 32이고 maxTextureRepeat 경우 실제 유효한 텍스처 좌표 범위는 512/32 = 16이므로 이 디바이스의 텍스처 좌표는 -16.0에서 +16.0 범위 내에 있어야 합니다.
텍스처 주소 지정 모드에 대한 추가 정보는 다음 항목에 포함되어 있습니다.
- 래핑 텍스처 주소 모드(Direct3D 9)
- 미러 텍스처 주소 모드(Direct3D 9)
- 클램프 텍스처 주소 모드(Direct3D 9)
- 테두리 색상 텍스처 주소 모드 (Direct3D 9)
관련 항목