DirectX Graphics 프로그래밍 가이드 고정 기능 파이프라인 텍스처 밉맵의 자동 생성   [목차열람] [주소복사] [슬롯비우기]
밉맵의 자동 생성
 
Microsoft DirectX 9.0

밉맵의 자동 생성


밉맵을 자동 생성 하면, 텍스처의 생성중에 하드웨어 필터링을 이용한 완전한 투명도등의 기능을 사용하는 것이 가능하게 된다. 특히 밉맵 렌더링 타겟으로는 자동 생성은 유효하다. 밉맵 렌더링 타겟은 비디오 메모리내에 존재하므로, 소프트웨어 필터링에서는 효율적으로 적용할 수 없다.

밉맵을 자동적으로 생성하려면 , 생성시에 새로운 사용 방법 D3DUSAGE_AUTOGENMIPMAP 를 설정한다. 그 이후의 서브 레벨의 생성은, 애플리케이션에 있어 완전하게 투과적으로 된다. 하드웨어에 따라서는, 서브 레벨의 생성에 시간이 걸리는 경우가 있다. 이 때문에,IDirect3DBaseTexture9::GenerateMipSubLevels 를 사용해, 애플리케이션에 있어 적절한 시기에 서브 레벨을 생성하기 위한 힌트를 드라이버에게 전할 수가 있다.

IDirect3DBaseTexture9::SetAutoGenFilterType 는, 자동 생성시의 필터링의 품질을 제어한다. 필터 타입을 변경 하면, 밉맵 서브 레벨이 "더티" 가 되어 재생성된다.

현재의 필터 타입을 얻어오려면,IDirect3DBaseTexture9::GetAutoGenFilterType 를 사용한다. 텍스처의 생성시로 설정되는 (디폴트의) 필터 타입은 D3DTEXF_LINEAR 이다. 드라이버가 선형 필터를 지원 하고 있지 않는 경우, 필터 타입은 D3DTEXF_POINT 로 설정된다.

D3DUSAGE_AUTOGENMIPMAP 를 사용하지 않고 생성 한 텍스처에서는, 이러한 메서드는 무효이며, 에러도 돌려주어지지 않다. D3DTEXF_NONE 를 제외하는 자동 생성된 텍스처에 대해서는, 드라이버가 보통의 텍스처 필터링으로 지원 하고 있는 필터 타입은 모두 지원 하고 있다. 드라이버는, 각 리소스 타입에 대응하는 텍스처, 큐브 텍스처, 볼륨 텍스처의 필터 능력으로 보고되고 있는 필터 타입을 모두 지원 해야 한다.

전송원이 자동 생성된 밉맵이며, 목적지가 그렇지 않은 경우,IDirect3DDevice9::UpdateTexture 는 무효이다. 전송원이 자동 생성된 밉맵이 아니고, 목적지가 자동 생성된 밉맵인 경우는 유효하다. 이 경우, 일치하는 최상정도의 레벨만이 갱신된다. 전송원의 그 외의 서브 레벨은 모두 무시된다. 같이 전송원 및 목적지가 함께 자동 생성된 것인 경우도, 최상정도의 일치하는 레벨만이 갱신된다. 전송원의 서브 레벨은 무시되어, 목적지의 서브 레벨은 재생성된다.

자동 생성 밉맵을 생성 하는 경우,Levels 파라미터는 0 또는 1 으로 설정해야 한다.

밉맵의 자동 생성이 지원 되고 있는지 조사하려면 , D3DCAPS2_CANAUTOGENMIPMAP 가 설정되어 있는지 확인한다. 설정되어 있는 경우는, D3DUSAGE_AUTOGENMIPMAP 을 지정해 IDirect3D9::CheckDeviceFormat 를 호출한다. 반환값이 D3D_OK 인 경우, 밉맵의 자동 생성이 보증되고 있다. 반환값이 D3DOK_NOAUTOGEN 인 경우는, 생성의 호출은 성공하지만, 밉맵은 생성되지 않는다.

지원 되는 필터 타입을 확인하려면 ,D3DCAPS9TextureFilterCaps 또는 CubeTextureFilterCaps, 혹은 그 양쪽 모두의 멤버가 지원 하는 능력을 조사한다.

마지막으로, D3DUSAGE_AUTOGENMIPMAP 은 단순한 힌트이며, 텍스처의 생성 또는 IDirect3D9::CheckDeviceFormat 로 이것을 지정해도 장치 드라이버 인터페이스 (DDI) 타입에 관한 에러는 발생하지 않기 때문에, 주의 해야 한다.

관련 항목



© 2002 Microsoft Corporation. All rights reserved.
↑TOP