Génération automatique de Mipmaps (Direct3D 9)

Vous pouvez maintenant créer automatiquement un mipmap qui est une série de textures, chacune filtrée dans une résolution différente. Les Mipmaps sont couramment utilisés pour fournir différents niveaux de détail lors du rendu. La génération automatique de mipmaps au moment de la création de texture tire parti du filtrage matériel, car le mipmap réside dans la mémoire vidéo.

Pour générer automatiquement un mipmap, définissez une nouvelle D3DUSAGE_AUTOGENMIPMAP d’utilisation avant d’appeler CreateTexture. La génération de sous-niveau à partir de ce point est totalement transparente pour l’application. Seul le niveau de texture supérieur est accessible à l’application ; les sous-niveaux de texture ne sont pas accessibles, car ils ne seront créés que lorsque le pilote en a besoin. Dans les cas où la génération de sous-niveaux peut prendre beaucoup de temps, utilisez GenerateMipSubLevels pour indiquer au pilote qu’elle doit générer des sous-niveaux à un moment approprié pour l’application.

Filtrage Mipmap

SetAutoGenFilterType contrôle la qualité du filtrage pendant la génération automatique. La modification du type de filtre salit les sous-niveaux mipmap et provoque leur régénération. Utilisez GetAutoGenFilterType pour obtenir le type de filtre actuel. Le type de filtre par défaut est D3DTEXF_LINEAR. Si le pilote ne prend pas en charge un filtre linéaire, le type de filtre est défini sur D3DTEXF_POINT.

Ces méthodes n’ont aucun effet si la texture n’est pas créée avec D3DUSAGE_AUTOGENMIPMAP Et qu’aucun échec n’est retourné. Tous les types de filtres pris en charge par le pilote pour le filtrage de textures standard sont pris en charge pour les filtres générés automatiquement, à l’exception de D3DTEXF_NONE. Pour chaque type de ressource, les pilotes doivent prendre en charge tous les types de filtre signalés dans les majuscules de filtre de texture, CubeTexture et volumetexture correspondantes.

Pour case activée quels types de filtres sont pris en charge, case activée pour voir quelles majuscules sont prises en charge par les membres TextureFilterCaps et/ou CubeTextureFilterCaps de D3DCAPS9.

Prise en charge de Mipmap

D3DUSAGE_AUTOGENMIPMAP n’est qu’un indicateur, et le fait de le spécifier lors de la création de texture ou lors de l’appel de CheckDeviceFormat ne provoquerait pas d’erreur sur les types d’interface de pilote de périphérique (DDI).

L’appel de UpdateTexture n’est pas autorisé lorsque la source est un mipmap généré automatiquement, mais que la destination ne l’est pas. La source peut être un mipmap non généré automatiquement et la destination peut être un mipmap généré automatiquement. Dans ce cas, seul le niveau de correspondance le plus élevé est mis à jour. Tous les autres sous-niveaux sources sont ignorés. De même, lorsque la source et la destination sont générées automatiquement, seul le niveau correspondant le plus élevé est mis à jour. Les sous-niveaux de la source sont ignorés et les sous-niveaux de destination sont régénérés.

Pour case activée la prise en charge de la génération automatique de mipmaps, case activée de voir que D3DCAPS2_CANAUTOGENMIPMAP est défini. Si c’est le cas, appelez CheckDeviceFormat avec D3DUSAGE_AUTOGENMIPMAP. Si la valeur de retour est D3D_OK, les mipmaps sont générés automatiquement. Si la valeur de retour est D3DOK_NOAUTOGEN, cela signifie que l’appel de création réussit, mais qu’aucun mipmap n’est généré.

Direct3D Textures