DirectX 9 im Visier

0
News Thilo Bayer Als bevorzugte Quelle auf Google hinzufügen

Schleifen und Sprünge
Der Spieletest 1 des 3DMark2003 sieht sehr gut aus, nutzt aber keine Pixel Shader und läuft damit auch auf DirectX-7-Grafikkarten. Der Spieletest 1 des 3DMark2003 sieht sehr gut aus, nutzt aber keine Pixel Shader und läuft damit auch auf DirectX-7-Grafikkarten. Schwierigkeit: Für Fortgeschrittene
Da die Spieleprogrammierer gewisse Teile ihres Programms nun mehrmals nacheinander ausführen lassen können (Schleifenfunktionalität), liegt die tatsächlich ausgeführte Instruktionsanzahl möglicherweise deutlich über der maximalen Programmlänge. Beide Vertex-Shader-Standards (2.0 und 3.0) legen die Obergrenze aber bei rund 65.000 ausgeführten Instruktionen fest. Für Vertex Shader 2.0 optional und für die Version 3.0 zwingend erforderlich ist die Fähigkeit, Positionssprünge innerhalb des Programmablaufs abhängig von Berechnungsresultaten durchzuführen (Beispiel: Wenn Wert in Speicherplatz A größer als Wert in Speicherplatz B, dann gehe an Programmposition X, sonst an Position Y). Diese dynamische Flusskontrolle gibt dem Programmierer mehr Möglichkeiten in die Hand, als die ebenfalls neu eingeführte "statische" Ablaufsteuerung. Letztere dient lediglich der Leistungsoptimierung mehrerer ähnlicher Shader-Programme. Indem im Vertex-Shader-Programm vorhandene, aber für die jeweilige Dreieckssequenz unwichtige Berechnungsanweisungen deaktiviert werden, kann die erneute Übertragung von nur minimal unterschiedlichem Programmcode zum Chip verhindert werden. Das bereits geladene Vertex-Shader-Programm kommt dann nochmals zum Einsatz. Ähnliche Ziele verfolgt die Funktion "Vertex Stream Frequency" der Vertex-Shader-Version 3.0. Sie sorgt dafür, dass nicht bei jedem Vertex-Shader-Aufruf die Eingabedaten neu geladen werden müssen.

Pixel Shader 2.0 & 3.0
DirectX 9 bringt genauere Formate für Texturen und Bump Maps (rechts) und verhindert Berechnungsungenauigkeiten (links). DirectX 9 bringt genauere Formate für Texturen und Bump Maps (rechts) und verhindert Berechnungsungenauigkeiten (links). Schwierigkeit: Für Fortgeschrittene
Für Pixelberechnungen stellt Microsoft neue, hochpräzise Berechnungs-, Speicher- und Texturformate bereit. Neben einem 64-bittigen Ganzzahlformat arbeiten die neuen Pixel Shader in einem über den ganzen Wertebereich konstant genauen Fließkommaformat. Farbberechnungen müssen dabei mit mindestens 64 Bit, Texturberechnungen mit mindestens 128 Bit Genauigkeit erfolgen. Die höhere Berechnungsgenauigkeit verhindert Farbverfälschungen oder nicht wiedererkennbare Berechnungsresultate aufgrund von Rundungsfehlern. Gigantisch ist der Sprung in der maximalen Programmlänge. Statt 28 Instruktionen erlaubt der Pixel Shader 2.0 nun 96 Instruktionen lange Programme in einem Berechnungsschritt, im Pixel-Shader-3.0-Standard liegt der Wert gar bei satten 512 Instruktionen. Für den Pixel-Shader-3.0-Standard verlangt Microsoft dieselben Flusskontrollfähigkeiten wie im Vertex Shader, die maximale Anzahl ausführbarer Instruktionen (inklusive Wiederholungen von Programmteilen) liegt dann bei rund 32.000. Beim Pixel Shader 2.0 ist keine Ablaufsteuerung notwendig. Statt nur sechs Texturschichten sehen die Pixel Shader 2.0 und 3.0 bis zu 16 Schichten vor. Dabei kann jedoch nur an acht unterschiedlichen Stellen (Texturkoordinaten) in den Texturen gelesen werden. Das heißt, der Programmierer kann nur acht verschiedene Koordinatenangaben (z. B. Texturwert 12 von rechts, Texturwert 245 von oben) nutzen, diese aber mehrfach auf verschiedenen Texturen anwenden. Da einige Texturen (beispielsweise die Basisstruktur- und Verschmutzungstexturen) sowieso in derselben Größe respektive an derselben Stelle über das Dreieck gestülpt werden, ist dies nicht so dramatisch.

Artikel teilen

Per E-Mail versenden

0
  1. Seite 1
  2. Seite 2
  3. Seite 3
  • Print / Abo
    Apps
    PCGH Magazin 07/2026 PC Games 06/2026 play5 07/2026 N-Zone 06/2026 Linux Magazin 06/2026 LinuxUser 06/2026 Raspberry Pi Geek 07/2026
    PC Games Hardware PC Games Linux Magazin Raspberry Pi Geek Computec Kiosk