DirectX 9 im Visier

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

Fließender Übergang
Die längeren Vertex-Shader-2.0-Programme ermöglichen räumliches Licht mit vielen Lichtquellen nun in einem Rechenschritt. Die längeren Vertex-Shader-2.0-Programme ermöglichen räumliches Licht mit vielen Lichtquellen nun in einem Rechenschritt. Schwierigkeit: Für Einsteiger
Den Übergang zwischen den zwei neuen Shader-Versionen 2.0 und 3.0 gestaltet Microsoft fließend. Erfüllt ein Grafikchip nur Teile der 3.0-Spezifikation, so liegen diese nicht etwa brach: Der Programmierer kann die Hardware nutzen, sofern er das Vorhandensein der jeweiligen Shader-Funktion per DirectX-Abfrage (Auslesen der "Caps") überprüft. So können Grafikchips, welche die Shader-2.0-Spezifikation übertreffen, ohne die Version 3.0 zu erfüllen, dennoch voll ausgereizt werden.

Höhere Programmiersphären
Schwierigkeit: Für Fortgeschrittene
Der größere Funktionsumfang und speziell die längeren Shader-Programme haben auch ihre Schattenseiten. Selbst erfahrene Programmierer verlieren ab einigen Dutzend kryptischer Shader-Anweisungen in hardwarenaher Maschinensprache schnell den Überblick. Die von den Vertex Shadern und Pixel Shadern genutzte Assembler-Programmiersprache eignete sich bisher zwar gut zum Erstellen einfacher und vor allem schneller Grafikeffekte, versagt aber bei komplexeren Grafikalgorithmen für realistische Charakter-, Effekte- und Umgebungsdarstellungen. Wie heute bei der Entwicklung von Software üblich, können mit DirectX 9 auch Grafikeffekte mit einer "höheren", "C"-ähnlichen Programmiersprache programmiert werden. Die Programmier haben durch die Nutzung der "High Level Shader Language" (HLSL) zwar keinen direkten Einfluss auf Leistungsoptimierung, erstellen Grafikeffekte dank fließtextähnlicher Programmanweisungen aber schneller und unabhängiger von der Zielhardware.

Ein von Microsoft geliefertes Übersetzungsprogramm ("Compiler") wandelt die in der Hochsprache geschriebenen Shader-Programme in die bekannten Pixel- und Vertex-Shader-Anweisungen um und optimiert diese. Die Entwickler geben dabei an, welchen Shader-Standard der Compiler nutzen soll. Auf den ersten Blick wirkt die HLSL etwas lieblos konzipiert. Mit nur einer Seite Dokumentation und wenigen Beispielen im DirectX-9-Entwicklerkit macht es Microsoft den Programmierern nicht gerade leicht, den Einstieg in die HLSL zu finden. S3 und vor allem Ati helfen aber aus und machen sich für den Einsatz der DirectX-HLSL stark. Entwickler werden mit aufwendigen Onlineseminaren (z. B. WEBCODE 226A) unterstützt. Leider ist die HLSL nicht in der Lage, Grafikeffekte automatisch in mehrere Berechnungsdurchgänge zu zerlegen, sofern der Grafikchip die vom Compiler erzeugte Programmlänge nicht verarbeiten kann. Effekteprogrammierer müssen daher umständlicherweise die Limitationen der zugrunde liegenden Assembler-Sprachen kennen.

Mehrere Schreibziele (MRTs)
 Pixel Shader und Vertex Shader 2.0 in Aktion – der 3DMark2003 überrascht mit pixelgenauer und winkelabhängiger Optik im Doom-3-Stil. Pixel Shader und Vertex Shader 2.0 in Aktion – der 3DMark2003 überrascht mit pixelgenauer und winkelabhängiger Optik im Doom-3-Stil. Schwierigkeit: Für Fortgeschrittene
"Multiple Rendering Targets" gibt dem Spieleentwickler die Möglichkeit, während einer Pixelberechnung Zwischenresultate in Bildspeichern abzulegen. Diese können hierbei ein unterschiedliches Farbformat (z. B. Niedrig- und Hochpräzision) nutzen. Bleistift- oder Comic-Optik lässt sich mit diesem Feature einfacher rendern, außerdem sind kinoähnliche Fokussierungseffekte realisierbar.

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