다음을 통해 공유


텍스처 필터링(Direct3D 9)

Direct3D가 기본 형식을 렌더링하면 3D 기본 형식을 2D 화면에 매핑합니다. 기본 형식에 텍스처가 있는 경우 Direct3D는 해당 텍스처를 사용하여 기본 형식의 2D 렌더링 이미지에서 각 픽셀에 대한 색을 생성해야 합니다. 기본 형식의 화면 이미지에 있는 모든 픽셀에 대해 텍스처에서 색 값을 가져와야 합니다. 이 프로세스를 텍스처 필터링이라고 합니다.

텍스처 필터 작업을 수행할 때 사용되는 텍스처도 일반적으로 확대 또는 축소됩니다. 즉, 자체보다 크거나 작은 기본 이미지로 매핑됩니다. 텍스처를 확대하면 여러 픽셀이 하나의 텍셀에 매핑될 수 있습니다. 결과는 두툼한 모양일 수 있습니다. 텍스처를 축소하면 단일 픽셀이 여러 텍셀에 매핑되는 경우가 많습니다. 결과 이미지는 흐리게 표시되거나 별칭이 지정될 수 있습니다. 이러한 문제를 해결하려면 픽셀의 색에 도달하려면 텍셀 색의 일부 혼합을 수행해야 합니다.

Direct3D는 복잡한 텍스처 필터링 프로세스를 간소화합니다. 선형 필터링, 이방성 필터링 및 mipmap 필터링의 세 가지 유형의 텍스처 필터링을 제공합니다. 텍스처 필터링을 선택하지 않으면 Direct3D는 가장 가까운 지점 샘플링이라는 기술을 사용합니다.

각 유형의 텍스처 필터링에는 장점과 단점이 있습니다. 예를 들어 선형 텍스처 필터링은 최종 이미지에서 들쭉날쭉한 가장자리 또는 두툼한 모양을 생성할 수 있습니다. 그러나 텍스처 필터링의 계산 오버헤드가 낮은 방법입니다. 밉맵으로 필터링하면 특히 이방성 필터링과 결합하면 최상의 결과를 생성합니다. 그러나 Direct3D에서 지원하는 기술의 메모리가 가장 많이 필요합니다.

텍스처 인터페이스 포인터를 사용하는 애플리케이션은 IDirect3DDevice9::SetSamplerState 메서드를 호출하여 현재 텍스처 필터링 메서드를 설정해야 합니다. 첫 번째 매개 변수의 값을 텍스처 필터링 메서드를 선택하는 텍스처의 정수 인덱스 번호(0-7)로 설정합니다. 두 번째 매개 변수로 D3DSAMP_MAGFILTER, D3DSAMP_MINFILTER 또는 D3DSAMP_MIPFILTER를 전달하여 확대, 축소 또는 미프맵핑 필터를 설정합니다. D3DTEXTUREFILTERTYPE 열거형 형식의 멤버를 세 번째 매개 변수의 값으로 전달합니다.

이 섹션에서는 Direct3D에서 지원하는 텍스처 필터링 메서드를 제공합니다. 다음 항목으로 구성됩니다.

메모

D3DRENDERSTATETYPE 열거형 형식에 있는 텍스처 필터링 렌더링 상태는 텍스처 스테이지 상태로 대체되지만 IDirect3DDevice2 버전과 달리 IDirect3DDevice9::SetRenderState사용하려고 하면 실패하지 않습니다. 대신 시스템은 이러한 렌더링 상태의 효과를 멀티텍스처 캐스케이드의 첫 번째 단계인 0단계에 매핑합니다. 예측할 수 없는 결과가 발생할 수 있으므로 애플리케이션은 레거시 렌더링 상태를 해당 텍스처 스테이지 상태와 혼합해서는 안 됩니다.

 

Direct3D 텍스처