Автоматическое создание MIP-карт (Direct3D 9)
Теперь вы можете автоматически создать MIP-карту, которая является рядом текстур, каждая из которых фильтруется по другому разрешению. Mipmap обычно используются для предоставления различных уровней детализации при отрисовке. Автоматическое создание MIP-карт во время создания текстуры использует аппаратное фильтрацию, так как mipmap находится в памяти видео.
Чтобы автоматически создать MIP-карту, задайте новый D3DUSAGE_AUTOGENMIPMAP использования перед вызовом CreateTexture. Создание вложенных приложений с этой точки является полностью прозрачным для приложения. Приложение доступно только на верхнем уровне текстуры; Вложенные области текстуры недоступны, так как они будут созданы только при необходимости драйвером. В случаях, когда создание вложенных модулей может занять много времени, используйте GenerateMipSubLevels, чтобы указать драйверу, что он должен создавать вложенные показатели за раз, подходящий для приложения.
Фильтрация mipmap
SetAutoGenFilterType управляет качеством фильтрации во время автоматического создания. Изменение типа фильтра загрязняет вложенные значения MIP-карты и приводит к повторному их восстановлению. Используйте GetAutoGenFilterType, чтобы получить текущий тип фильтра. Тип фильтра по умолчанию — D3DTEXF_LINEAR. Если драйвер не поддерживает линейный фильтр, для типа фильтра будет задано значение D3DTEXF_POINT.
Эти методы не влияют, если текстура не создается с D3DUSAGE_AUTOGENMIPMAP и не возвращается сбой. Все типы фильтров, поддерживаемые драйвером для регулярной фильтрации текстур, поддерживаются для автоматического создания, кроме D3DTEXF_NONE. Для каждого типа ресурсов драйверы должны поддерживать все типы фильтров, сообщаемые в соответствующей текстуре, CubeTexture и ограничениях фильтров volumetexture.
Чтобы проверить поддерживаемые типы фильтров, проверьте, какие крышки поддерживаются элементами TextureFilterCaps и/или CubeTextureFilterCaps D3DCAPS9.
Поддержка Mipmap
D3DUSAGE_AUTOGENMIPMAP является только указанием и указанием этого во время создания текстуры или при вызове CheckDeviceFormat не приведет к ошибке ни в одном из типов интерфейса драйвера устройства (DDI).
Вызов UpdateTexture является незаконным, если источник является автоматически созданным MIP-картой, но назначение не является. Источник может быть не автоматически созданным mipmap, а назначение может быть автоматически созданным mIP-карты. В этом случае обновляется только самый верхний уровень сопоставления. Все остальные вложенные значения источника игнорируются. Аналогичным образом, когда источник и назначение создаются автоматически, обновляется только самый верхний уровень сопоставления. Подсети из источника игнорируются, а вложенные подсети назначения создаются повторно.
Чтобы проверить поддержку автоматического создания MIP-карт, проверьте, установлен ли D3DCAPS2_CANAUTOGENMIPMAP. Если это так, вызовите CheckDeviceFormat с D3DUSAGE_AUTOGENMIPMAP. Если возвращаемое значение равно D3D_OK, то mIP-карты гарантированно будут автоматически генерированы. Если возвращаемое значение D3DOK_NOAUTOGEN, это означает, что вызов создания завершится успешно, но не будет создано mipmaps.
Связанные разделы