Primitive Topologien

Direct3D 10 und höher unterstützen verschiedene primitive Typen (oder Topologien), die durch den enumerierten Typ D3D _ primitiver _ Topologie dargestellt werden. Diese Typen definieren, wie Vertices interpretiert und von der Pipeline gerendert werden.

Grundlegende primitive Typen

Die folgenden grundlegenden primitiven Typen werden unterstützt:

Eine Visualisierung der einzelnen primitiven Typen finden Sie im Diagramm weiter unten in diesem Thema in der Richtung "Richtung" und führenden Scheitelpunkt Positionen.

Die Eingabe-Assembler-Phase liest Daten aus Scheitel Punkten und Index Puffern, assembliert die Daten in diese primitiven und sendet die Daten dann an die restlichen Pipeline Stufen. (Sie können die Verknüpfung id3d11devicecontext aus:: iasetprimitivetopology -Methode verwenden, um den primitiven Typ für die Eingabe-Assembler-Phase anzugeben.)

Primitive Nähe

Alle Typen von Direct3D 10 und höher (mit Ausnahme der Punkt Liste) stehen in zwei Versionen zur Verfügung: ein primitiver Typ mit der Nähe und ein primitiver Typ ohne Unterschied. Primitive mit einer bestimmten Konsistenz enthalten einige der umgebenden Scheitel Punkte, während primitive ohne die unter Verwendung nur die Scheitel Punkte des zielprimitives enthalten. Beispielsweise verfügt die primitive Zeilen Liste (dargestellt durch den _ _ _ LineList-Wert D3D primitive Topologie ) über eine entsprechende Zeilen Listen primitive, die die Bedeutung (dargestellt durch den Wert der " D3D _ primitive _ Topology _ LineList _ ADJ ") enthält.

Angrenzende primitive dienen dazu, weitere Informationen über die Geometrie bereitzustellen, die nur über einen Geometry-Shader sichtbar sind. Die Verwendung ist nützlich für Geometry-Shader, die die Silhouette-Erkennung, die Schatten Volumeverschlüsselung usw. verwenden.

Nehmen Sie z. b. an, Sie möchten eine Dreiecks Liste mit Informationen zeichnen. Eine Dreiecks Liste, die 36 Scheitel Punkte (mit der Konsistenz) enthält, ergibt 6 abgeschlossene primitive. Primitive mit der Verwendung (mit Ausnahme von Zeilen Streifen) enthalten genau doppelt so viele Scheitel Punkte wie die äquivalente primitive, wobei jeder weitere Scheitelpunkt ein angrenzender Scheitelpunkt ist.

Richtung und führende Scheitelpunkt Positionen

Wie in der folgenden Abbildung dargestellt, ist ein führender Scheitelpunkt der erste nicht benachbarte Scheitelpunkt in einem primitiven. Für einen primitiven Typ können mehrere führende Vertices definiert werden, sofern jeder für einen anderen primitiven verwendet wird. Bei einem Dreiecks Streifen mit der Sicherheit sind die führenden Scheitel Punkte 0, 2, 4, 6 usw. Bei einem Zeilen Streifen mit der Sicherheit sind die führenden Vertices 1, 2, 3 usw. Ein angrenzender primitiv hat andererseits keinen führenden Scheitelpunkt.

Die folgende Abbildung zeigt die Scheitelpunkt Anordnung für alle primitiven Typen, die vom Eingabe Assembler erzeugt werden können.

Diagramm der Scheitelpunkt Anordnung für primitive Typen

Die Symbole in der vorangehenden Abbildung werden in der folgenden Tabelle beschrieben.

Symbol name BESCHREIBUNG
Symbol für einen Scheitelpunkt Scheitelpunkt Ein Punkt im 3D-Raum.
Symbol für die Richtung der Richtung Richtung Die Scheitelpunkt Reihenfolge beim Assemblieren eines primitiven. Kann im Uhrzeigersinn oder gegen den Uhrzeigersinn stehen; Geben Sie dies durch Aufrufen von ID3D11Device1:: CreateRasterizerState1an.
Symbol für führenden Scheitelpunkt Führender Scheitelpunkt Der erste nicht benachbarte Scheitelpunkt in einem primitiven, der Daten pro Konstante enthält.

 

Erzeugen mehrerer Striche

Sie können mehrere Striche durch die Bereichs Bearbeitung generieren. Sie können einen Strip-Cut ausführen, indem Sie die Funktion restartstrip HLSL explizit aufrufen oder einen speziellen Indexwert in den Index Puffer einfügen. Dieser Wert ist – 1, d. h. 0xFFFFFFFF für 32-Bit-Indizes oder 0xFFFF für 16-Bit-Indizes. Ein Index von – 1 gibt einen expliziten ' Cut ' oder ' restart ' des aktuellen Streifens an. Der vorherige Index schließt den vorherigen primitiven oder Strip ab, und der nächste Index startet einen neuen primitiven oder Strip. Weitere Informationen zum Erstellen mehrerer Striche finden Sie unter Geometry-Shader-Stufe.

Hinweis

Sie benötigen die Hardware auf Featureebene 10,0 oder höher, da nicht alle 10 Level9-Hardware diese Funktionalität implementiert.

 

Ersten Einstieg in die Input-Assembler Phase

Pipeline Stufen (Direct3D 10)