Freigeben über


Texturumbruch

Durch das Texturumbruch wird die grundlegende Art und Weise geändert, wie Direct3D texturierte Polygone mithilfe der für jeden Scheitelpunkt angegebenen Texturkoordinaten rastert. Beim Rastern eines Polygons interpoliert das System zwischen den Texturkoordinaten an den Scheitelpunkten des Polygons, um die Texel zu bestimmen, die für jedes Pixel des Polygons verwendet werden sollen. Normalerweise behandelt das System die Textur als 2D-Ebene, interpoliert neue Texel, indem er die kürzeste Route von Punkt A innerhalb einer Textur zu Punkt B nimmt. Wenn Punkt A die U-, v-Position (0,8, 0,1) und Punkt B (0,1,0,1) darstellt, sieht die Interpolationslinie wie das folgende Diagramm aus.

Diagramm einer Interpolation zwischen zwei Punkten

Beachten Sie, dass der kürzeste Abstand zwischen A und B in dieser Abbildung ungefähr durch die Mitte der Textur verläuft. Durch aktivieren der U-Textur- oder v-Texturkoordinatenumbruch ändert sich, wie Direct3D die kürzeste Route zwischen Texturkoordinaten in u-Richtung und v-Richtung wahrnimmt. Die Texturumbruch bewirkt, dass der Rasterizer die kürzeste Route zwischen Texturkoordinatensätzen nimmt, wobei davon ausgegangen wird, dass 0,0 und 1,0 übereinstimmen. Das letzte Bit ist der schwierige Teil: Sie können sich vorstellen, dass die Aktivierung des Texturumbruchs in eine Richtung bewirkt, dass das System eine Textur so behandelt, als ob es um einen Zylinder gewickelt wurde. Betrachten Sie beispielsweise das folgende Diagramm.

Diagramm einer Textur und zwei Umbruchpunkte um einen Zylinder

Die vorangehende Abbildung zeigt, wie sich der Umbruch in der U-Richtung auf die Interpolation der Texturkoordinaten des Systems auswirkt. Wenn Sie dieselben Punkte wie im Beispiel für normale oder nichtwrappte Texturen verwenden, können Sie sehen, dass die kürzeste Route zwischen Den Punkten A und B nicht mehr in der Mitte der Textur liegt. es liegt jetzt über der Grenze, wo 0,0 und 1.0 zusammen vorhanden sind. Das Umbrechen in v-Richtung ist ähnlich, mit der Ausnahme, dass sie die Textur um einen Zylinder umschließt, der sich auf seiner Seite befindet. Der Umbruch in u-Richtung und v-Richtung ist komplexer. In dieser Situation können Sie die Textur als Torus oder Ring betrachten.

Die am häufigsten verwendete praktische Anwendung für den Texturumbruch besteht darin, die Umgebungszuordnung durchzuführen. In der Regel erscheint ein Objekt, das mit einer Umgebungskarte strukturiert ist, sehr reflektierend und zeigt ein gespiegeltes Bild der Umgebung des Objekts in der Szene. Für diese Diskussion stellen Sie einen Raum mit vier Wänden dar, die jeweils mit einem Buchstaben R, G, B, Y und den entsprechenden Farben bemalt wurden: Rot, Grün, Blau und Gelb. Die Umgebungskarte für einen so einfachen Raum könnte wie die folgende Abbildung aussehen.

Abbildung vertikaler Streifen von Rot, Grün, Blau und Gelb

Stellen Sie sich vor, dass die Decke des Raums durch eine perfekt reflektierende, vierseitige Säule gehalten wird. Die Zuordnung der Umgebungsstruktur zur Säule ist einfach; Die Säule sieht so aus, als ob sie die Buchstaben und Farben widerspiegelt, ist nicht so einfach. Das folgende Diagramm zeigt einen Drahtrahmen der Säule mit den entsprechenden Texturkoordinaten, die in der Nähe der oberen Scheitelpunkte aufgeführt sind. Der Nahtpunkt, an dem der Umbruch die Kanten der Textur überschreitet, wird mit einer gepunkteten Linie angezeigt.

Diagramm eines Rechtecks mit einer gepunkteten Linie

Wenn der Umbruch in der U-Richtung aktiviert ist, zeigt die texturierte Säule die Farben und Symbole aus der Umgebungszuordnung entsprechend an, und am Nahtplatz vor der Textur wählt der Rasterizer ordnungsgemäß die kürzeste Route zwischen den Texturkoordinaten aus, vorausgesetzt, dass U-Koordinaten 0,0 und 1,0 dieselbe Position aufweisen. Die texturierte Säule sieht wie in der folgenden Abbildung aus.

Abbildung einer Säule, die aus roten, grünen, blauen und gelben Quadranten besteht

Wenn der Texturumbruch nicht aktiviert ist, interpoliert der Rasterizer nicht in die Richtung, die zum Generieren eines glaubwürdigen, reflektierten Bilds erforderlich ist. Vielmehr enthält der Bereich an der Vorderseite der Säule eine horizontal komprimierte Version der Texel zwischen u-Koordinaten 0,175 und 0,875, während sie durch die Mitte der Textur gehen. Der Umbrucheffekt ist ruiniert.

Verwechseln Sie den Texturumbruch nicht mit den ähnlich benannten Texturadressierungsmodi. Der Texturumbruch wird vor der Texturadressierung ausgeführt. Stellen Sie sicher, dass die Texturumbruchdaten keine Texturkoordinaten außerhalb des Bereichs von [0,0, 1.0] enthalten, da dadurch nicht definierte Ergebnisse erzeugt werden. Weitere Informationen zur Texturadressierung finden Sie unter Texturadressierungsmodi.

Umbruch der Verdrängungszuordnung

Verdrängungszuordnungen werden vom Tesselationsmodul interpoliert. Da der Umbruchmodus für das Tessellationsmodul nicht angegeben werden kann, kann der Texturumbruch nicht mit Verdrängungszuordnungen ausgeführt werden. Eine Anwendung kann eine Reihe von Scheitelpunkten verwenden, die die Interpolation in eine beliebige Richtung umbrechen erzwingen. Die Anwendung kann auch die Interpolation angeben, die als einfache lineare Interpolation durchgeführt werden soll.

Texturen