Share via


Higher-Order Grundtypen (Direct3D 9)

Direct3D 9 unterstützt Punkte, Linien, Dreiecke und Rastergrundtypen. Diese wurden erweitert, um die Interpolation höherer Ordnung über linear hinaus zu unterstützen. Während Dreiecke und Linien eine räumliche Ausdehnung aufweisen, wurden sie bisher beide mit linearer Interpolation gerendert. In Direct3D 9 unterstützt Direct3D das Rendern dieser primitiven Typen mit höherer Ordnung bis zu quintischer Interpolation. Darüber hinaus wird jetzt ein neuer quad-primitiver Typ unterstützt. Dieser neue Typ kann auch mit Interpolation höherer Ordnung gerendert werden. Dieses Feature wird in erster Linie durch Anforderungen an die Animation und das Rendern von Charakteren gesteuert. Es kann auch für andere Oberflächen wie Gelände oder Wasser verwendet werden.

Grundtypen höherer Ordnung unterstützen interpolation höherer Ordnung, wenn sie als Listen, Strips, Lüfter oder indizierte Gitter an die API übertragen werden. Dies wird erreicht, indem zusätzliche Informationen verwendet werden, die in den Scheitelpunkten selbst codiert sind. Beispielsweise können normale Vektoren verwendet werden, um Tangentenebenen an den Scheitelpunkten zu definieren, um die kubische Interpolation zu ermöglichen. Die meisten Implementierungen unterstützen die Interpolation höherer Ordnung durch Tessellation in planare Dreiecke. Der Tessellationsschritt wird logisch vor der Vertex-Shaderphase angewendet. Da die Vertex-Shader-API keine Semantik für ihre Eingabedaten aufzwingt, wird ein spezieller Mechanismus bereitgestellt, um die Vertexstreamkomponente zu identifizieren, die die Position darstellt, und optional den normalen Vektor. Alle anderen Komponenten werden entsprechend interpoliert.

In diesem Abschnitt werden Grundtypen höherer Reihenfolge vorgestellt und erläutert, wie sie in Ihren Anwendungen verwendet werden können. Die Informationen sind in die folgenden Themen unterteilt.

Verbesserte Qualität durch Auflösungsverbesserung

Aktuelle Grundtypen eignen sich nicht ideal für die Darstellung glatter Oberflächen. Interpolationsmethoden höherer Ordnung, z. B. kubische Polynome, ermöglichen genauere Berechnungen beim Rendern von gekrümmten Formen. Dies sorgt für erhöhten Realismus, indem facetierende Artefakte reduziert oder beseitigt werden, die an Silhouettenrändern oder auf der spiegelförmigen Oberflächenbeleuchtung sichtbar sind. Wenn tessellation auf dem Chip auftritt, wirken sich die dreieckigen Dreiecke nicht auf die Busbandbreite aus. In vielen Fällen kann eine kleine Menge an Tessellation Verbesserungen der Bildqualität mit minimalen Auswirkungen auf die Leistung bieten.

Direct3D 9 bietet eine einfache Möglichkeit, die Auflösungsverbesserung auf Inhalte anzuwenden, die von vorhandenen polygonorientierten Tools und Kunstpipelines erstellt wurden. Die Anwendung muss nur einen gewünschten Tessellationsgrad bereitstellen und die Daten mithilfe der Standarddreiecksyntax übertragen, die normale Vektoren enthält.

Direkte Zuordnung über Spline-Based Tools

Viele aktuelle Erstellungstools unterstützen Grundtypen höherer Ordnung, um leistungsfähigere Modellierungsvorgänge als bei planaren Dreiecksgittern üblicherweise zu ermöglichen. Wenn sie effizient verwendet werden, sodass die Anzahl der generierten Patches angemessen ist, können solche Tools Inhalte erzeugen, die direkt von der API gerendert werden können. Um diese Anforderung zu erfüllen, wurde ein neuer Einstiegspunkt hinzugefügt, der den eingehenden Vertexdatenstrom als 2D-Array von Kontrollpunkten interpretiert und in die gewünschte Auflösung einfügt.

Vertexpipeline