Microsoft DirectX 2

         

Mipmaps


В DirectX 2, DirectDraw поддерживает поверхности текстуры mipmapped. Mipmap - последовательность текстур, каждая из которых - прогрессивно более низкая разрешающая способность,  предварительно фильтрованное представление того же самого изображения. Mipmapping - в вычислительном отношении дешевый путь улучшения качества представленных текстур. Каждое изображение или предварительно фильтровано, или уровень, или  мощность в mipmap в два меньшее чем предыдущий уровень. В DirectDraw, mipmaps представляется как цепочка присоединенных поверхностей. Самая высокая текстура разрешающей способности - в главе цепочки и имеет, как присоединение, следующий уровень mipmap, который имеет, в свою очередь, присоединяется, которое является следующим уровнем в mipmap, и так далее до самого низкого уровня разрешающей способности mipmap.

Чтобы создавать поверхность, представляющую одиночный уровень mipmap, определите флажок DDSCAPS_MIPMAP в поверхностном описании, переданном к IDirectDraw:: CreateSurface. Так как mipmap - тоже текстуры, флажок DDSCAPS_TEXTURE должен также быть определен. Возможно создать каждый уровень вручную и формировать цепочку  IDirectDrawSurface:: AddAttachedSurface. Однако, IDirectDraw:: CreateSurface метод может использоваться, чтобы формировать всю mipmap цепочку в одиночной операции.

Следующий пример показывает формирование цепочки пять mipmap уровней размером 256ґ256, 128ґ128, 64ґ64, 32ґ32 и 16ґ16.

DDSURFACEDESC       ddsd;

LPDIRECTDRAWSURFACE lpDDMipMap;

ZeroMemory(&ddsd, sizeof(ddsd));

ddsd.dwSize = sizeof(ddsd);

ddsd.dwFlags = DDSD_CAPS | DDSD_MIPMAPCOUNT;

ddsd.dwMipMapCount = 5;

ddsd.ddsCaps.dwCaps = DDSCAPS_TEXTURE |



Содержание раздела