DirectX Graphics 프로그래밍 가이드 고정 기능 파이프라인 텍스처 텍스처 필터링   [목차열람] [주소복사] [슬롯비우기]
텍스처 필터링
 
Microsoft DirectX 9.0

텍스처 필터링


Microsoft® Direct3D® 는 기본도형를 렌더링 할 때 3D 기본도형를 2D 스크린에 맵핑 한다. 기본도형가 텍스처를 가지고 있는 경우, Direct3D 는 그 텍스처를 사용해, 기본도형의 2D 렌더링 화면의 각 픽셀의 색을 생성해야 한다. 기본도형의 스크린 위에의 화면의 모든 픽셀에 대해서, 텍스처로부터 색값을 취득해야 한다. 이 처리는텍스처 필터링이라고 부른다.

텍스처 필터링 처리를 실행 할 때 사용하는 텍스처는 보통 확대 또는 축소된다. 즉, 텍스처는, 그 자체보다 큰 또는 작은 기본도형 화면에 맵핑 된다. 텍스처의 확대에 의해, 다수의 픽셀이 1 개의 텍셀에 맵핑 되는 일이 있다. 이 결과, 화면이 엉성해지는 일이 있다. 텍스처의 축소에서는, 많은 경우, 단일의 픽셀이 다수의 텍셀에 맵핑 된다. 이 결과, 화면이 불선명하게 되거나 톱니 모양이 생기는 일이 있다. 이러한 문제를 해결하려면 , 1 픽셀의 색이 되도록(듯이) 텍셀색의 혼합을 실행할 필요가 있다.

Direct3D 에서는, 텍스처 필터링의 복잡한 처리를 간소화한다. Direct3D 에서는, 선형 필터링, 비등방성 필터링, 밉맵 필터링의 3 종류의 텍스처 필터링을 사용할 수 있다. 텍스처 필터링을 선택하지 않는 경우, Direct3D 에서는 최근점샘플링이라고 하는 방법을 사용한다.

각각의 텍스처 필터링에는, 장점과 단점이 있다. 예를 들어, 선형 텍스처 필터링을 사용했을 경우, 최종적인 화면으로 엣지가 깔쭉깔쭉하게 되거나 화질이 엉성해지는 일이 있다. 그러나, 이 필터링은 오버헤드가 적다. 밉맵에 의한 필터링을 사용하면 보통은 최선의 결과를 얻을 수 있다. 특히, 비등방성 필터링과 조합해 사용했을 경우는 그렇다. 그러나, 이 필터링은, Direct3D 가 지원 하는 방법 중(안)에서 가장 메모리를 필요로 하는 것이다.

텍스처 인터페이스 포인터를 사용하는 애플리케이션에서는,IDirect3DDevice9::SetSamplerState 메서드를 호출해 현재의 텍스처 필터링 방법을 설정할 필요가 있다. 제 1 인수의 값을, 텍스처 필터링 방법을 선택하는 텍스처의 정수 인덱스 번호 (0 ~ 7)로 설정한다. 제 2 인수로서 D3DSAMP_MAGFILTER,D3DSAMP_MINFILTER, 또는 D3DSAMP_MIPFILTER 를 건네주어, 확대, 축소, 또는 밉맵 필터를 설정한다. 제 3 인수의 값으로D3DTEXTUREFILTERTYPE 열거형의 멤버를 건네준다.

여기에서는, Direct3D 로 지원 하는 텍스처 필터링 방법에 대해 설명한다. 설명하는 주제는, 다음과 같다.

  D3DRENDERSTATETYPE 열거형에 있는 텍스처 필터링 스테이트는, 텍스처 스테이지 스테이트로 옮겨지고 있지만, 이 렌더링 스테이트를 사용해도,IDirect3DDevice2 버전과는 대조적으로 IDirect3DDevice9::SetRenderState 의 실행이 실패할 것은 없다. 그 대신해, 시스템에서는, 이 렌더링 스테이트의 이펙트를 멀티 텍스처 cascade의 최초의 스테이지 (스테이지 0)에 맵핑 한다. 애플리케이션에서는, 종래의 렌더링 스테이트를 그것과 대응하는 텍스처 스테이지 스테이트와 병용 하지 않는 것. 예기치 않은 결과가 생길 우려가 있다.


© 2002 Microsoft Corporation. All rights reserved.
↑TOP