다음을 통해 공유


텍스처 필터링(Direct3D 9)

Direct3D가 기본 개체를 렌더링할 때는 3D 기본 개체를 2D 화면에 매핑합니다. 이때 기본 개체에 텍스처가 있으면 Direct3D는 해당 텍스처를 사용하여 기본 개체의 2D 렌더링 이미지를 구성하는 각 픽셀 색상을 생성해야 합니다. 기본 개체의 화면 이미지를 구성하는 각 픽셀마다 해당 텍스처에서 색상 값을 가져와야 합니다. 이러한 프로세스를 텍스처 필터링이라고 합니다.

텍스처 필터 연산을 실행하면 사용할 텍스처까지 일반적으로 확대 또는 축소됩니다. 다시 말해서 자체 이미지보다 더 크거나 작은 기본 객체의 이미지로 매핑됩니다. 텍스처가 확대되면 다수의 픽셀이 단일 텍셀로 매핑될 수 있습니다. 그 결과 이미지가 뭉친 것처럼 보일 수 있습니다. 텍스처가 축소되면 종종 단일 픽셀이 다수의 텍셀로 매핑됩니다. 그 결과 이미지가 흐릿하거나 매끄럽지 못할 수 있습니다. 이러한 문제를 해결하려면 텍셀 색상을 혼합하여 픽셀에 알맞은 색상을 찾아야 합니다.

Direct3D는 복잡한 텍스처 필터링 프로세스를 간소화하였습니다. 제공되는 텍스처 필터링 유형은 선형 필터링, 이방성 필터링 및 Mipmap 필터링 등 세 가지입니다. 텍스처 필터링을 따로 선택하지 않으면 Direct3D가 근접점 샘플링이라고 하는 기법을 사용합니다.

각 텍스처 필터링 유형에는 장단점이 있습니다. 예를 들어 선형 텍스처 필터링에서는 최종 이미지에서 가장 자리가 톱니 모양처럼 뾰족하거나 뭉친 듯한 모양이 될 수 있습니다. 하지만 계산에 따른 오버헤드를 낮출 수 있는 텍스처 필터링 방법입니다. Mipmap 필터링은 특히 이방성 필터링과 함께 사용하면 대체로 최상의 결과를 이끌어냅니다. 하지만 Direct3D가 지원하는 기법 중에서 가장 많은 메모리를 소비해야 합니다.

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

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

참고

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

 

Direct3D 텍스처