Freigeben über


Texturfilterung

Texturfilterung erzeugt eine Farbe für jedes Pixel im 2D-gerenderten Bild des Grundtyps, wenn ein Grundtyp gerendert wird, indem ein 3D-Grundtyp auf einem 2D-Bildschirm zugeordnet wird.

Wenn Direct3D einen Grundtyp rendert, wird der 3D-Grundtyp einem 2D-Bildschirm zugeordnet. Wenn der Grundtyp eine Textur aufweist, muss Direct3D diese Textur verwenden, um eine Farbe für jedes Pixel im gerenderten 2D-Bild des Grundtyps zu erzeugen. Für jedes Pixel im Bildschirmbild des Grundtyps muss ein Farbwert aus der Textur abgerufen werden. Dieser Prozess wird als Texturfilterung bezeichnet.

Wenn ein Texturfiltervorgang ausgeführt wird, wird die verwendete Textur in der Regel auch vergrößert oder verkleinert. Mit anderen Worten, sie wird einem primitiven Bild zugeordnet, das größer oder kleiner als sich selbst ist. Die Vergrößerung einer Textur kann dazu führen, dass viele Pixel einem Texel zugeordnet werden. Das Ergebnis kann eine blockige Darstellung sein. Die Minimierung einer Textur bedeutet häufig, dass ein einzelnes Pixel vielen Texeln zugeordnet ist. Das resultierende Bild kann verschwommen oder aliasiert werden. Um diese Probleme zu beheben, müssen einige Mischungen der Texelfarben durchgeführt werden, um zu einer Farbe für das Pixel zu gelangen.

Direct3D vereinfacht den komplexen Prozess der Texturfilterung. Es bietet Ihnen drei Arten von Texturfilterung – lineare Filterung, anisotropische Filterung und Mipmap-Filterung. Wenn Sie keine Texturfilterung auswählen, verwendet Direct3D eine Technik, die als Sampling für den nächstgelegenen Punkt bezeichnet wird.

Jede Art der Texturfilterung hat Vor- und Nachteile. Die lineare Texturfilterung kann z. B. Ränder oder eine blockige Darstellung im endgültigen Bild erzeugen. Es handelt sich jedoch um eine Rechen-Low-Overhead-Methode der Texturfilterung. Das Filtern mit Mipmaps erzeugt in der Regel die besten Ergebnisse, insbesondere bei Kombination mit anisotropischer Filterung. Es erfordert jedoch den größten Arbeitsspeicher der Von Direct3D unterstützten Techniken.

Arten der Texturfilterung

Direct3D unterstützt die folgenden Texturfilteransätze.

In diesem Abschnitt

Thema Beschreibung

Sampling am nächstgelegenen Punkt

Anwendungen müssen keine Texturfilterung verwenden. Direct3D kann so festgelegt werden, dass die Texeladresse berechnet wird, die häufig nicht als ganze Zahlen ausgewertet wird, und die Farbe des Texels mit der nächstgelegenen ganzzahligen Adresse kopiert. Dieser Vorgang wird als Sampling am nächstgelegenen Punkt bezeichnet.

Bilineare Texturfilterung

Die bilineare Filterung berechnet den gewichteten Mittelwert der 4 Texel, die dem Samplingpunkt am nächsten sind. Dieser Filteransatz ist genauer und gängiger als die Filterung am nächstgelegenen Punkt. Dieser Ansatz ist effizient, da er in moderner Grafikhardware implementiert wird.

Anisotropische Texturfilterung

Anisotropie ist die Verzerrung, die in den Texeln eines 3D-Objekts sichtbar ist, dessen Oberfläche in Bezug auf die Bildschirmebene in einem Winkel ausgerichtet ist. Wenn ein Pixel von einem anisotropen Grundtyp texeln zugeordnet wird, wird die Form verzerrt.

Texturfilterung mit Mipmaps

Eine Mipmap ist eine Sequenz von Texturen, von denen jede eine schrittweise niedrigere Auflösungsdarstellung desselben Bilds ist. Die Höhe und Breite der einzelnen Bilder oder Ebenen in der Mipmap ist eine Potenz von zwei kleiner als die vorherige Ebene.

 

Texturen