Mipmap 자동 생성(Direct3D 9)

이제 각각 다른 해상도로 필터링된 일련의 텍스처인 Mipmap을 자동으로 만들 수 있습니다. Mipmap은 렌더링할 때 다양한 수준의 세부 정보를 제공하는 데 일반적으로 사용됩니다. 텍스처 생성 시 Mipmap을 자동으로 생성하게 하면 Mipmap이 비디오 메모리에 상주하여 하드웨어 필터링을 이용하기 때문입니다.

Mipmap을 자동으로 생성하려면 CreateTexture를 호출하기 전에 새 사용량 D3DUSAGE_AUTOGENMIPMAP 설정합니다. 이 시점부터의 하위 수준 생성은 애플리케이션에 완전히 투명합니다. 최상위 텍스처 수준만 애플리케이션에서 액세스할 수 있습니다. 텍스처 구슬은 드라이버에서 필요한 경우에만 만들어지므로 액세스할 수 없습니다. 하위 수준 생성에 많은 시간이 걸릴 수 있는 경우 GenerateMipSubLevels 를 사용하여 애플리케이션에 적합한 시간에 sublevel을 생성해야 한다는 것을 드라이버에 암시합니다.

Mipmap 필터링

SetAutoGenFilterType 은 자동 생성 중에 필터링 품질을 제어합니다. 필터 유형을 변경하면 mipmap이 더러워지고 다시 생성됩니다. GetAutoGenFilterType을 사용하여 현재 필터 형식을 가져옵니다. 기본 필터 유형은 D3DTEXF_LINEAR. 드라이버가 선형 필터를 지원하지 않으면 필터 유형이 D3DTEXF_POINT 설정됩니다.

이러한 메서드는 D3DUSAGE_AUTOGENMIPMAP 사용하여 텍스처를 만들지 않은 경우 영향을 주지 않으며 오류가 반환되지 않습니다. 일반 텍스처 필터링을 위해 드라이버에서 지원하는 모든 필터 형식은 D3DTEXF_NONE 제외하고 자동 생성에 대해 지원됩니다. 각 리소스 종류에 대해 드라이버는 해당 텍스처, CubeTexture 및 volumetexture 필터 대문자로 보고된 모든 필터 형식을 지원해야 합니다.

지원되는 필터 형식을 검사 검사 D3DCAPS9의 TextureFilterCaps 및/또는 CubeTextureFilterCaps 멤버에서 지원되는 대문자를 확인합니다.

Mipmap 지원

D3DUSAGE_AUTOGENMIPMAP 힌트일 뿐이며 텍스처를 만들거나 CheckDeviceFormat 을 호출할 때 이를 지정해도 DDI(디바이스 드라이버 인터페이스) 형식에 오류가 발생하지 않습니다.

원본이 자동으로 생성된 mipmap이지만 대상이 아닌 경우 UpdateTexture 를 호출하는 것은 불법입니다. 원본은 자동으로 생성되지 않는 mipmap일 수 있으며 대상은 자동으로 생성된 mipmap일 수 있습니다. 이 경우 가장 일치하는 최상위 수준만 업데이트됩니다. 다른 모든 원본 하위 수준도 무시됩니다. 마찬가지로 원본과 대상이 모두 자동으로 생성되면 가장 일치하는 최상위 수준만 업데이트됩니다. 원본의 sublevel은 무시되고 대상 하위 값은 다시 생성됩니다.

mipmap 자동 생성에 대한 지원을 검사 검사 D3DCAPS2_CANAUTOGENMIPMAP 설정되어 있는지 확인합니다. 이 경우 D3DUSAGE_AUTOGENMIPMAP사용하여 CheckDeviceFormat을 호출합니다. 반환 값이 D3D_OK 경우 mipmap이 자동으로 생성되도록 보장됩니다. 반환 값이 D3DOK_NOAUTOGEN 경우 이는 만들기 호출이 성공하지만 생성된 mipmap이 없음을 의미합니다.

Direct3D 텍스처