Automatische Generierung von Mipmaps (Direct3D 9)

Sie können jetzt automatisch eine Mipmap erstellen, bei der es sich um eine Reihe von Texturen handelt, die jeweils in einer anderen Auflösung gefiltert sind. Mipmaps werden häufig verwendet, um beim Rendern unterschiedliche Detailebenen bereitzustellen. Das automatische Generieren von Mipmaps während der Texturerstellung nutzt die Hardwarefilterung, da sich die mipmap im Videospeicher befindet.

Um eine mipmap automatisch zu generieren, legen Sie vor dem Aufrufen von CreateTexture eine neue Verwendung D3DUSAGE_AUTOGENMIPMAP fest. Die Sublevelgenerierung ist ab diesem Zeitpunkt für die Anwendung völlig transparent. Nur die oberste Texturebene ist für die Anwendung zugänglich. auf die Texturunterebenen kann nicht zugegriffen werden, da sie nur bei Bedarf vom Treiber erstellt werden. In Fällen, in denen die Generierung von Unterebenen viel Zeit in Anspruch nehmen kann, verwenden Sie GenerateMipSubLevels , um dem Treiber anzuzeigen, dass er Unterebenen zu einem für die Anwendung geeigneten Zeitpunkt generieren soll.

Mipmap-Filterung

SetAutoGenFilterType steuert die Filterqualität während der automatischen Generierung. Das Ändern des Filtertypdirrators bewirkt, dass die mipmap-Unterebenen neu generiert werden. Verwenden Sie GetAutoGenFilterType , um den aktuellen Filtertyp abzurufen. Der Standardfiltertyp ist D3DTEXF_LINEAR. Wenn der Treiber keinen linearen Filter unterstützt, wird der Filtertyp auf D3DTEXF_POINT festgelegt.

Diese Methoden haben keine Auswirkungen, wenn die Textur nicht mit D3DUSAGE_AUTOGENMIPMAP Erstellt wird und kein Fehler zurückgegeben wird. Alle Filtertypen, die vom Treiber für die reguläre Texturfilterung unterstützt werden, werden für automatisch generierte Filter mit Ausnahme von D3DTEXF_NONE unterstützt. Für jeden Ressourcentyp sollten Treiber alle Filtertypen unterstützen, die in den entsprechenden Texturen, CubeTexture und Volumetexture-Filterkappen gemeldet werden.

Um zu überprüfen, welche Filtertypen unterstützt werden, überprüfen Sie, welche Caps von den Membern TextureFilterCaps und/oder CubeTextureFilterCaps von D3DCAPS9 unterstützt werden.

Mipmap-Unterstützung

D3DUSAGE_AUTOGENMIPMAP ist nur ein Hinweis, und wenn Sie dies während der Texturerstellung oder beim Aufrufen von CheckDeviceFormat angeben, führt dies bei keinem der DDI-Typen (Device Driver Interface) zu einem Fehler.

Das Aufrufen von UpdateTexture ist unzulässig, wenn es sich bei der Quelle um eine automatisch generierte mipmap handelt, das Ziel aber nicht. Die Quelle kann eine nicht automatisch generierte mipmap und das Ziel eine automatisch generierte mipmap sein. In diesem Fall wird nur die oberste übereinstimmende Ebene aktualisiert. Alle anderen Quellunterebenen werden ignoriert. Auf ähnliche Weise wird nur die oberste übereinstimmende Ebene aktualisiert, wenn sowohl die Quelle als auch das Ziel automatisch generiert werden. Die Unterebenen aus der Quelle werden ignoriert, und die Zielunterebenen werden neu generiert.

Um die Unterstützung für die automatische Generierung von Mipmaps zu überprüfen, überprüfen Sie, ob D3DCAPS2_CANAUTOGENMIPMAP festgelegt ist. Wenn dies der Grund ist, rufen Sie CheckDeviceFormat mit D3DUSAGE_AUTOGENMIPMAP auf. Wenn der Rückgabewert D3D_OK ist, wird garantiert, dass die mipmaps automatisch generiert werden. Wenn der Rückgabewert D3DOK_NOAUTOGEN ist, bedeutet dies, dass der Create-Aufruf erfolgreich ist, aber keine mipmaps generiert werden.

Direct3D-Texturen