DirectX - DirectX

DirectX
Microsoft-DirectX-Logo-wordmark.svg
Entwickler Microsoft
Erstveröffentlichung 30. September 1995 ; vor 26 Jahren ( 1995-09-30 )
Stabile Version
12 Ultimative API / 10. November 2020 ; vor 11 Monaten ( 2020-11-10 )
Betriebssystem Microsoft Windows , Dreamcast , Xbox , Xbox 360 , Xbox One , Xbox Series X und Series S
Typ API
Webseite www .microsoft .com / directx Bearbeiten Sie dies auf Wikidata

Microsoft DirectX ist eine Sammlung von Anwendungsprogrammierschnittstellen (APIs) für die Bearbeitung von Aufgaben im Zusammenhang mit Multimedia , insbesondere Spieleprogrammierung und Video, auf Microsoft- Plattformen. Ursprünglich begannen die Namen dieser APIs alle mit "Direct", wie Direct3D , DirectDraw , DirectMusic , DirectPlay , DirectSound und so weiter. Der Name DirectX wurde als Kurzbezeichnung für all diese APIs geprägt (das X steht für die jeweiligen API-Namen) und wurde bald zum Namen der Sammlung. Als Microsoft sich später daran machte, eine Spielekonsole zu entwickeln, wurde das X als Grundlage des Namens Xbox verwendet , um darauf hinzuweisen, dass die Konsole auf der DirectX-Technologie basiert. Die X- Initiale wurde bei der Benennung von APIs, die für die Xbox entwickelt wurden, wie XInput und dem Cross-Platform Audio Creation Tool (XACT), übernommen, während das DirectX-Muster für Windows-APIs wie Direct2D und DirectWrite fortgesetzt wurde .

Direct3D (die 3D-Grafik-API in DirectX) wird häufig bei der Entwicklung von Videospielen für Microsoft Windows und die Xbox- Konsolenlinie verwendet. Direct3D wird auch von anderen Softwareanwendungen für Visualisierungs- und Grafikaufgaben wie etwa CAD/CAM-Engineering verwendet. Da Direct3D die am weitesten verbreitete Komponente von DirectX ist, werden die Namen „DirectX“ und „Direct3D“ häufig synonym verwendet.

Das DirectX Software Development Kit (SDK) besteht aus Laufzeitbibliotheken in weiterverteilbarer binärer Form zusammen mit begleitender Dokumentation und Headern für die Codierung. Ursprünglich wurden die Laufzeiten nur von Spielen oder explizit vom Benutzer installiert. Windows 95 wurde nicht mit DirectX gestartet, aber DirectX war in Windows 95 OEM Service Release 2 enthalten. Windows 98 und Windows NT 4.0 wurden beide mit DirectX geliefert, wie alle seither veröffentlichten Windows-Versionen. Das SDK steht als kostenloser Download zur Verfügung. Während die Laufzeiten proprietäre Closed-Source-Software sind, wird für die meisten SDK-Beispiele Quellcode bereitgestellt. Ab der Veröffentlichung von Windows 8 Developer Preview wurde DirectX SDK in Windows SDK integriert.

Entwicklungsgeschichte

Ende 1994 war Microsoft bereit, Windows 95 , sein nächstes Betriebssystem, herauszubringen . Ein wichtiger Faktor für den Wert, den die Verbraucher darauf legen würden, waren die Programme, die darauf laufen könnten. Microsoft-Mitarbeiter Alex St. John hatte mit verschiedenen Spieleentwicklern diskutiert, wie wahrscheinlich es wäre, ihre MS-DOS- Spiele auf Windows 95 zu bringen, und fand die Antworten überwiegend negativ; Programmierer hatten festgestellt, dass die Windows-Umgebung im Vergleich zu MS-DOS oder anderen Spieleplattformen schwieriger zu entwickeln ist. Es gab auch starke Kompatibilitätsängste; Ein bemerkenswerter Fall davon stammt aus Disneys Animated Storybook: The Lion King, das auf der WinG- Programmierschnittstelle basierte . Aufgrund zahlreicher inkompatibler Grafiktreiber von neuen Compaq- Computern, die nicht mit der im Lieferumfang des Spiels enthaltenen WinG-Schnittstelle getestet wurden, stürzte es auf vielen Desktop-Systemen so häufig ab, dass Eltern Disneys Call-In-Hotlines überflutet hatten .

St. John erkannte, dass die Widerstände für die Spieleentwicklung unter Windows eine Einschränkung darstellen würden, und rekrutierte zwei zusätzliche Ingenieure, Craig Eisler und Eric Engstrom , um eine bessere Lösung zu entwickeln, um mehr Programmierer dazu zu bringen, Spiele für Windows zu entwickeln. Das Projekt erhielt den Codenamen Manhattan-Projekt, da in Bezug auf das gleichnamige Projekt aus dem Zweiten Weltkrieg die Idee darin bestand, die in Japan entwickelten Videospielkonsolen durch Personalcomputer mit Microsofts Betriebssystem zu ersetzen. Es hatte ursprünglich das Strahlungssymbol als Logo verwendet, aber Microsoft bat das Team, das Logo zu ändern. Das Management stimmte dem Projekt nicht zu, da es Windows bereits als Spieleplattform abschrieb, aber die drei engagierten sich für die Entwicklung dieses Projekts. Ihre rebellische Natur führte dazu, dass Brad Silverberg , der Senior Vice President von Microsofts Office-Produkten, das Trio "Beastie Boys" nannte.

Der Großteil der Arbeit der drei wurde im Rahmen anderer beauftragter Projekte durchgeführt, die gegen Ende 1994 begannen. Innerhalb von vier Monaten hatte das Team mit Unterstützung mehrerer Hardwarehersteller den ersten Satz von Anwendungsprogrammierschnittstellen (APIs) entwickelt, die sie auf der 1995 Konferenz für Spieleentwickler . Das SDK enthielt Bibliotheken wie DirectDraw für Grafikroutinen, DirectSound für Audio und DirectPlay für die Netzwerkkommunikation. Der "direkte" Teil der Bibliothek wurde benannt, da diese Routinen typischerweise Kernroutinen von Windows 95 umgangen und direkt auf die Computerhardware zugegriffen haben. Obwohl das Team es "Game SDK" ( Software Development Kit ) genannt hatte, kam der Name "DirectX" von einem Journalisten, der das Namensschema der verschiedenen Bibliotheken verspottet hatte. Das Team entschied sich, dieses Namensschema weiterhin zu verwenden und das Projekt DirectX zu nennen.

Die erste Version von DirectX wurde im September 1995 als Windows Games SDK veröffentlicht. Es war der Win32- Ersatz für die DCI- und WinG-APIs für Windows 3.1 . DirectX ermöglichte es allen Versionen von Microsoft Windows, beginnend mit Windows 95, Hochleistungs-Multimedia zu integrieren. Eisler schrieb in seinem Blog über den Wahnsinn, DirectX 1 bis 5 zu bauen.

Um mehr Entwickler an Bord DirectX zu bekommen, näherte sich Microsoft id Software ‚s John Carmack und bot an , Port Doom und Doom 2 von MS-DOS zu DirectX, kostenlos, mit id Beibehaltung aller Verlagsrechte an dem Spiel. Carmack stimmte zu und Gabe Newell von Microsoft leitete das Portierungsprojekt. Das erste Spiel wurde im August 1996 als Doom 95 veröffentlicht , das erste veröffentlichte DirectX-Spiel. Microsoft hat das Spiel stark beworben, indem Bill Gates in Anzeigen für den Titel auftauchte.

DirectX 2.0 wurde mit den Veröffentlichungen von Windows 95 OSR2 und Windows NT 4.0 Mitte 1996 zu einer Komponente von Windows selbst . Da Windows 95 selbst noch neu war und nur wenige Spiele dafür veröffentlicht wurden, förderte Microsoft DirectX stark bei Entwicklern, die Microsofts Fähigkeit, eine Spieleplattform in Windows zu entwickeln, im Allgemeinen misstrauisch waren. Alex St. John, der Evangelist für DirectX, veranstaltete auf der Computer Game Developers Conference 1996 eine aufwendige Veranstaltung, die der Spieleentwickler Jay Barnson als römisches Thema bezeichnete, darunter echte Löwen , Togas und etwas, das einem Indoor-Karneval ähnelt. Bei dieser Veranstaltung stellte Microsoft erstmals Direct3D und DirectPlay vor und demonstrierte das Spielen von Multiplayer MechWarrior 2 über das Internet.

Das DirectX-Team stand vor der anspruchsvollen Aufgabe, jede DirectX-Version mit einer Reihe von Computerhardware und -software zu testen . Mit jeder Beta- und Endversion wurde eine Vielzahl von verschiedenen Grafikkarten, Audiokarten, Motherboards, CPUs, Eingabegeräten, Spielen und anderen Multimedia-Anwendungen getestet. Das DirectX-Team erstellte und verteilte außerdem Tests, mit denen die Hardwareindustrie bestätigen konnte, dass neue Hardwaredesigns und Treiberversionen mit DirectX kompatibel sind.

Vor DirectX hatte Microsoft OpenGL in seine Windows NT- Plattform integriert. Zu dieser Zeit erforderte OpenGL "High-End"-Hardware und konzentrierte sich auf Engineering- und CAD- Anwendungen. Direct3D sollte eine von Microsoft kontrollierte Alternative zu OpenGL sein, die sich zunächst auf die Nutzung von Spielen konzentrierte. Mit dem Wachstum von 3D-Spielen entwickelte sich OpenGL, um Programmiertechniken für interaktive Multimedia-Anwendungen wie Spiele besser zu unterstützen, sodass Entwickler die Wahl haben, OpenGL oder Direct3D als 3D-Grafik-API für ihre Anwendungen zu verwenden. Zu diesem Zeitpunkt begann ein "Kampf" zwischen Anhängern des plattformübergreifenden OpenGL und des nur für Windows verfügbaren Direct3D. Bei Microsoft wurde OpenGL übrigens vom DirectX-Team unterstützt. Wenn sich ein Entwickler für die Verwendung der OpenGL 3D-Grafik-API entschieden hat, werden die anderen APIs von DirectX in Computerspielen häufig mit OpenGL kombiniert, da OpenGL nicht alle Funktionen von DirectX umfasst (wie Sound- oder Joystick-Unterstützung).

In einer konsolenspezifischen Version wurde DirectX als Basis für Microsofts Xbox- , Xbox 360- und Xbox One- Konsolen- API verwendet. Die API wurde gemeinsam von Microsoft und Nvidia entwickelt , die die benutzerdefinierte Grafikhardware entwickelt haben, die von der ursprünglichen Xbox verwendet wurde. Die Xbox-API ähnelte der DirectX-Version 8.1, ist aber wie andere Konsolentechnologien nicht aktualisierbar. Die Xbox hatte den Codenamen DirectXbox, wurde jedoch wegen ihres kommerziellen Namens zu Xbox abgekürzt.

Im Jahr 2002 veröffentlichte Microsoft DirectX 9 mit Unterstützung für die Verwendung viel längerer Shader-Programme als zuvor mit Pixel- und Vertex-Shader-Version 2.0. Seitdem hat Microsoft die DirectX-Suite kontinuierlich aktualisiert und Shader Model 3.0 in DirectX 9.0c eingeführt, das im August 2004 veröffentlicht wurde.

Im April 2005 wurde DirectShow aus DirectX entfernt und stattdessen in das Microsoft Platform SDK verschoben .

Es wurde bestätigt, dass DirectX in Microsofts Windows Phone 8 enthalten ist .

Echtzeit- Raytracing wurde 2018 als DXR angekündigt .

Logos

Das ursprüngliche Logo ähnelte einem deformierten Strahlungswarnsymbol . Umstritten war der ursprüngliche Name für das DirectX-Projekt "Manhattan Project", eine Anspielung auf die US-Atomwaffeninitiative . Alex St. John , damals Leiter der Microsoft DirectX-Evangelisation, behauptet, dass die Konnotation des endgültigen Ergebnisses des Manhattan-Projekts (der Atombombenabwürfe Japans ) beabsichtigt ist und dass DirectX und sein Schwesterprojekt, die Xbox (die a ähnliches Logo) sollten japanische Videospielhersteller von ihrer Dominanz in der Videospielindustrie verdrängen . Microsoft bestreitet dieses Konto jedoch öffentlich und behauptet stattdessen, dass das Logo lediglich ein künstlerisches Design sei.

Komponenten

DirectX besteht aus mehreren APIs:

Microsoft hat die folgenden Komponenten als veraltet markiert:

DirectX-Funktionalität wird in Form von Objekten und Schnittstellen im COM- Stil bereitgestellt . Darüber hinaus wurden verwaltete Objekte , obwohl sie selbst keine DirectX-Komponenten sind, auf einigen Teilen von DirectX aufgebaut, wie Managed Direct3D und der XNA-Grafikbibliothek auf Direct3D 9.

Microsoft vertreibt ein Debugging-Tool für DirectX namens "PIX".

Versionen

Directx 9

DirectX 9 wurde 2002 für Windows 98, Me und XP veröffentlicht und wird derzeit von allen nachfolgenden Versionen unterstützt. Microsoft nimmt weiterhin Änderungen an DirectX 9.0c vor, wodurch die Unterstützung für einige der oben genannten Betriebssysteme eingestellt wird. Ab Januar 2007 ist Windows 2000 oder XP erforderlich. Damit wurde auch das Shader Model 2.0 eingeführt, das Pixel Shader 2.0 und Vertex Shader 2.0 enthält. Windows XP SP2 und höher enthalten DirectX 9.0c, erfordern jedoch möglicherweise eine neuere DirectX-Laufzeitinstallation für DirectX 9.0c-Anwendungen, die mit dem DirectX 9.0 SDK vom Februar 2005 oder höher kompiliert wurden.

DirectX 10

Microsoft DirectX 10-Logo-Wortmarke

DirectX 10, ein wichtiges Update der DirectX-API, wird mitgeliefert und ist nur mit Windows Vista und höher verfügbar . frühere Versionen von Windows wie Windows XP können keine DirectX 10-exklusiven Anwendungen ausführen. Stattdessen greifen Programme, die auf einem Windows XP-System mit DirectX 10-Hardware ausgeführt werden, einfach auf den DirectX 9.0c-Codepfad zurück, den neuesten für Windows XP-Computer verfügbaren Code.

Die Änderungen für DirectX 10 waren umfangreich. Viele frühere Teile der DirectX-API wurden im neuesten DirectX-SDK veraltet und werden nur aus Kompatibilitätsgründen beibehalten : DirectInput wurde zugunsten von XInput eingestellt , DirectSound wurde zugunsten des Cross-Platform Audio Creation Tool- Systems (XACT) eingestellt und hat außerdem die Unterstützung für . verloren Hardwarebeschleunigtes Audio, da der Vista-Audio-Stack den Ton in Software auf der CPU wiedergibt. Die DirectPlay DPLAY.DLL wurde ebenfalls entfernt und durch dplayx.dll ersetzt; Spiele, die auf dieser DLL basieren, müssen sie duplizieren und in dplay.dll umbenennen.

Um Abwärtskompatibilität zu erreichen, enthält DirectX in Windows Vista mehrere Versionen von Direct3D:

  • Direct3D 9 : Emuliert das Verhalten von Direct3D 9 wie unter Windows XP. Details und Vorteile des Windows-Anzeigetreibermodells von Vista werden von der Anwendung ausgeblendet, wenn WDDM-Treiber installiert sind. Dies ist die einzige verfügbare API, wenn nur XP-Grafiktreiber (XDDM) installiert sind, beispielsweise nach einem Upgrade auf Vista.
  • Direct3D 9Ex (intern während der Entwicklung von Windows Vista als 9.0L oder 9.L bekannt): ermöglicht vollen Zugriff auf die neuen Funktionen von WDDM (sofern WDDM-Treiber installiert sind) bei gleichzeitiger Beibehaltung der Kompatibilität für vorhandene Direct3D-Anwendungen. Die Benutzeroberfläche von Windows Aero basiert auf D3D 9Ex.
  • Direct3D 10 : Entwickelt um das neue Treibermodell in Windows Vista und bietet eine Reihe von Verbesserungen bei den Rendering-Funktionen und der Flexibilität, einschließlich Shader Model 4 .

Direct3D 10.1 ist ein inkrementelles Update von Direct3D 10.0, das mit Windows Vista Service Pack 1 geliefert wurde und dieses benötigte . Diese Version legt hauptsächlich einige weitere Bildqualitätsstandards für Grafikanbieter fest und gibt Entwicklern gleichzeitig mehr Kontrolle über die Bildqualität. Es bietet auch Unterstützung für Cube-Map-Arrays, separate Mischmodi pro MRT, Export von Coverage-Masken aus einem Pixel-Shader, die Möglichkeit, Pixel-Shader pro Sample auszuführen, Zugriff auf Multi-Sampling-Tiefenpuffer und erfordert, dass die Grafikkarte Shader Model 4.1 oder unterstützt höhere und 32-Bit-Gleitkommaoperationen. Direct3D 10.1 unterstützt weiterhin die Direct3D 10-Hardware vollständig, aber um alle neuen Funktionen nutzen zu können, ist eine aktualisierte Hardware erforderlich.

DirectX 11

Microsoft DirectX 11-Logo-Wortmarke

Microsoft hat auf dem Gamefest 08 in Seattle DirectX 11 mit den wichtigsten geplanten Funktionen vorgestellt, darunter GPGPU- Unterstützung ( DirectCompute ) und Direct3D 11 mit Tessellation- Unterstützung und verbesserter Multi-Threading- Unterstützung, um Videospielentwickler bei der Entwicklung von Spielen zu unterstützen, die Multi-Core besser nutzen Prozessoren. Direct3D 11 läuft unter Windows Vista, Windows 7, Windows 8 und Windows 10. Teile der neuen API wie die Multithreaded-Ressourcenhandhabung können auf Hardware der Direct3D 9/10/10.1-Klasse unterstützt werden. Hardware-Tessellation und Shader Model 5.0 erfordern Direct3D 11 unterstützende Hardware. Microsoft hat inzwischen die Direct3D 11 Technical Preview veröffentlicht. Direct3D 11 ist eine strikte Obermenge von Direct3D 10.1 – alle Hardware- und API-Funktionen von Version 10.1 werden beibehalten und neue Funktionen werden nur hinzugefügt, wenn dies für die Bereitstellung neuer Funktionen erforderlich ist. Dies trägt dazu bei, die Abwärtskompatibilität mit früheren Versionen von DirectX aufrechtzuerhalten.

Microsoft hat das letzte Plattform-Update für Windows Vista am 27. Oktober 2009 veröffentlicht, also 5 Tage nach der ersten Veröffentlichung von Windows 7 (mit Direct3D 11 als Basisstandard gestartet).

Seitdem wurden vier Updates für DirectX 11 veröffentlicht:

  • DirectX 11.1 ist in Windows 8 enthalten . Es unterstützt WDDM 1.2 für mehr Leistung, bietet eine verbesserte Integration von Direct2D (nun in der Version 1.1), Direct3D und Directcompute und umfasst DirectXMath, XAudio2 und XInput Bibliotheken von XNA Framework. Es bietet auch stereoskopische 3D- Unterstützung für Spiele und Videos. DirectX 11.1 wurde auch teilweise zurückportiert zu Windows 7, über das Windows - 7 - Plattform - Update .
  • DirectX 11.2 ist in Windows 8.1 (einschließlich der RT-Version) und Windows Server 2012 R2 enthalten . Es fügte Direct2D einige neue Funktionen hinzu, wie z. B. Geometrierealisierungen. Es wurde auch eine Swap-Chain-Komposition hinzugefügt, die es ermöglicht, einige Elemente der Szene mit niedrigeren Auflösungen zu rendern und dann über Hardware-Overlay mit anderen Teilen, die mit höherer Auflösung gerendert werden, zu kombinieren.
  • DirectX 11.X ist ein Superset von DirectX 11.2, das auf der Xbox One läuft . Es enthält tatsächlich einige Funktionen wie Draw-Bundles, die später als Teil von DirectX 12 angekündigt wurden.
  • DirectX 11.3 wurde zusammen mit DirectX 12 auf der GDC angekündigt und 2015 veröffentlicht. Es soll DirectX 12 als höherwertige Alternative ergänzen. Es ist in Windows 10 enthalten.

DirectX 12

DirectX 12 wurde von Microsoft auf der GDC am 20. März 2014 angekündigt und am 29. Juli 2015 zusammen mit Windows 10 offiziell eingeführt .

Das wichtigste Feature-Highlight für die neue Version von DirectX war die Einführung fortgeschrittener Low-Level-Programmier- APIs für Direct3D 12, die den Treiberaufwand reduzieren können. Entwickler sind jetzt in der Lage, ihre eigenen Befehlslisten und Puffer für die GPU zu implementieren, was eine effizientere Ressourcennutzung durch parallele Berechnungen ermöglicht . Der Hauptentwickler Max McMullen erklärte, dass das Hauptziel von Direct3D 12 darin besteht, "Effizienz auf Konsolenebene auf Telefon, Tablet und PC" zu erreichen. Die Veröffentlichung von Direct3D 12 geht mit anderen Initiativen für Low-Overhead-Grafik-APIs einher, darunter AMDs Mantle für AMD-Grafikkarten, Apples Metal für iOS und macOS und das plattformübergreifende Vulkan der Khronos Group .

Multiadapter-Unterstützung wird in DirectX 12 enthalten sein, sodass Entwickler mehrere GPUs gleichzeitig auf einem System verwenden können; Multi-GPU-Unterstützung war bisher von Anbieterimplementierungen wie AMD CrossFireX oder NVIDIA SLI abhängig .

  • Die implizite Multiadapter- Unterstützung funktioniert ähnlich wie bei früheren Versionen von DirectX, bei denen Frames abwechselnd über verbundene GPUs mit ähnlicher Rechenleistung gerendert werden.
  • Expliziter Multiadapter stellt Entwicklern zwei unterschiedliche API-Muster zur Verfügung. Verknüpfte GPUs ermöglichen DirectX, Grafikkarten in SLI oder CrossFireX als eine einzelne GPU anzuzeigen und die kombinierten Ressourcen zu verwenden; wohingegen nicht verknüpfte GPUs die Verwendung von GPUs verschiedener Anbieter durch DirectX ermöglichen, z. B. die Ergänzung der dedizierten GPU durch die integrierte GPU in der CPU oder die Kombination von AMD- und NVIDIA-Karten. Allerdings erfordern aufwendige gemischte Multi-GPU-Setups eine deutlich aufmerksamere Entwicklerunterstützung.

DirectX 12 wird auf allen Fermi- und späteren Nvidia-GPUs, auf AMDs GCN- basierten Chips und auf Intels Haswell- und späteren Prozessor-Grafikeinheiten unterstützt.

Auf der SIGGRAPH 2014 veröffentlichte Intel eine Demo, die ein computergeneriertes Asteroidenfeld zeigt , in dem DirectX 12 50–70% effizienter als DirectX 11 in Bezug auf Rendering-Geschwindigkeit und CPU-Leistungsaufnahme sein soll.

Ashes of the Singularity war das erste öffentlich verfügbare Spiel, das DirectX 12 nutzte. Tests von Ars Technica im August 2015 zeigten leichte Leistungsrückgänge im DirectX 12- gegenüber dem DirectX 11-Modus für die Nvidia GeForce 980 Ti , während die AMD Radeon R9 290x konsistente Leistungssteigerungen erzielte von bis zu 70 % unter DirectX 12, und in einigen Szenarien übertraf AMD unter DirectX 12 die leistungsstärkere Nvidia Serielle Ausführung von DirectX 11; die genaue Ursache bleibt jedoch unklar.

Die Leistungssteigerungen von DirectX 12 auf der Xbox sind nicht so stark wie auf dem PC.

Im März 2018 wurde DirectX Raytracing (DXR) angekündigt, das Echtzeit-Raytracing auf unterstützter Hardware ermöglicht, und die DXR-API wurde im Windows-Update vom 10. Oktober 2018 hinzugefügt.

Im Jahr 2019 kündigte Microsoft die Einführung von DirectX 12 für Windows 7 an, jedoch nur als Plug-in für bestimmte Spieletitel.

DirectX 12 Ultimate

Microsoft hat DirectX 12 Ultimate im März 2020 vorgestellt. DirectX 12 Ultimate wird sowohl auf Windows 10-Computern als auch auf der Xbox Series X und anderen Xbox-Konsolen der neunten Generation zu einer gemeinsamen Bibliothek verschmelzen. Zu den neuen Funktionen in Ultimate gehören DirectX Raytracing 1.1, Variable Rate Shading, das Programmierern die Kontrolle über den Detaillierungsgrad der Schattierung je nach Designauswahl gibt, Mesh-Shader und Sampler-Feedback.

Versionsgeschichte

Release-Zeitleiste
Hauptversionen
1995 DirectX 1
1996 DirectX 2
DirectX 3
1997 DirectX 5
1998 DirectX 6
1999 DirectX 7
2000 DirectX 8
2001
2002 Directx 9
2003
2004
2005
2006 DirectX 10
2007
2008
2009 DirectX 11
2010
2011
2012
2013
2014
2015 DirectX 12
2016
2017
2018
2019
2020 DirectX 12 Ultimate
DirectX-Versionen
Ausführung Veröffentlichungsdatum Anmerkungen
Haupt Unerheblich Nummer
1 1.0 4.02.0095 30. September 1995
2 2.0 1996 Wurde nur mit einigen Anwendungen von Drittanbietern ausgeliefert
2.0a 4.03.00.1096 5. Juni 1996 Windows 95 OSR2 und Windows NT 4.0
3 3.0 4.04.00.0068 15. September 1996  
4.04.00.0069 1996 Späteres Paket von DirectX 3.0 enthalten Direct3D 4.04.00.0069
3.0a 4.04.00.0070 Dezember 1996 Windows NT 4.0 SP3 (und höher)
Letzte unterstützte Version von DirectX für Windows NT 4.0
3.0b 4.04.00.0070 Dezember 1996 Dies war ein sehr kleines Update auf 3.0a, das ein kosmetisches Problem mit der japanischen Version von Windows 95 behoben hat
4 4.0 Nie veröffentlicht DirectX 4 wurde nie veröffentlicht. Raymond Chen von Microsoft erklärte in seinem Buch The Old New Thing , dass Microsoft nach der Veröffentlichung von DirectX 3 gleichzeitig mit der Entwicklung der Versionen 4 und 5 begann. Version 4 sollte eine kurzfristigere Version mit kleinen Funktionen sein, während Version 5 eine umfangreichere Version sein sollte. Das mangelnde Interesse von Spieleentwicklern an den für DirectX 4 angegebenen Funktionen führte dazu, dass es auf Eis gelegt wurde, und die große Menge an Dokumenten, die die beiden neuen Versionen bereits unterschieden, führte dazu, dass Microsoft sich entschied, Version 4 nicht wiederzuverwenden, um Funktionen zu beschreiben, die für Version . gedacht waren 5.
5 5.0 4.05.00.0155 (RC55) 4. August 1997 Verfügbar als Betaversion für Windows 2000, die unter Windows NT 4.0 installiert werden kann
5.2 4.05.01.1600 (RC00) 5. Mai 1998 DirectX 5.2-Version für Windows 95
4.05.01.1998 (RC0) 25. Juni 1998 Exklusiv für Windows 98
6 6.0 4.06.00.0318 (RC3) 7. August 1998 Windows CE wie auf Dreamcast und anderen Geräten implementiert
6.1 4.06.02.0436 (RC0) 3. Februar 1999
6.1a 4.06.03.0518 (RC0) 5. Mai 1999 Exklusiv für Windows 98 Second Edition . Dies ist die letzte Version, die auf 486er oder älterer CPU läuft.
7 7,0 4.07.00.0700 (RC1) 22. September 1999
4.07.00.0700 17. Februar 2000 Windows 2000
7.0a 17. Dezember 1999 Nur für Windows 95 bis 98 freigegeben
4.07.00.0716 (RC0) 8. März 2000
4.07.00.0716 (RC1) 2000
7.1 4.07.01.3000 (RC1) 14. September 2000 Exklusiv für Windows Me . Letzte Version mit integrierter RGB-Software-Rendering-Unterstützung
8 8.0 4.08.00.0400 (RC10) 10. November 2000
8.0a 4.08.00.0400 (RC14) 24. Januar 2001 Letzte unterstützte Version für Windows 95 und letzte Version mit Software-Rendering-Unterstützung in dxdiag.exe
8.1 4.08.01.0810 25. Oktober 2001 Windows XP , Windows XP SP1, Windows Server 2003 und Xbox exklusiv
4.08.01.0881 (RC7) 8. November 2001 Diese Version ist für die niedrigeren Betriebssysteme ( Windows 98 , Windows Me und Windows 2000 )
8.1a 4.08.01.0901 (RC?) 2002 Diese Version enthält ein Update für Direct3D (D3d8.dll)
8.1b 4.08.01.0901 (RC7) 25. Juni 2002 Dieses Update enthält einen Fix für DirectShow unter Windows 2000 (Quartz.dll)
8.2 4.08.02.0134 (RC0) 2002 Wie DirectX 8.1b, enthält jedoch DirectPlay 8.2
9 9,0 4.09.00.0900 (RC4) 19. Dezember 2002 Periodische hybride 32-Bit/64-Bit-Updates wurden für DirectX 9 veröffentlicht, beginnend mit 4.09.00.0904 (RC0 für DX 9.0c) im Oktober 2004, alle zwei Monate bis August 2007 und danach vierteljährlich. Das letzte regelmäßige Update wurde im Juni 2010 veröffentlicht
9.0a 4.09.00.0901 (RC6) 26. März 2003
9.0b 4.09.00.0902 (RC2) 13. August 2003
9,0 c 22. Juli 2004 Erste 9.0c-Version und letzte unterstützte Version für Windows 98
4.09.00.0903 Exklusiv für Windows XP SP2
4.09.00.0904 (RC0) 4. August 2004
8. Dezember 2006 Letzte unterstützte Version für Windows 98 Second Edition
4.09.00.0904 6. August 2004 / 21. April 2008* Xbox 360 , Windows XP SP2, SP3*, Windows Server 2003 SP1 und Windows Server 2003 R2
27. Oktober 2008 Letzte unterstützte Version für Windows Me
10 10 6.00.600.16386 30. November 2006 Exklusiv für Windows Vista
10.1 6.00.6001.18000 4. Februar 2008 Windows Vista SP1 , Windows Server 2008
enthält Direct3D 10.1
6.00.6002.18005 28. April 2009 Windows Vista SP2 , Windows Server 2008 SP2
enthält Direct3D 10.1
11 11 6.01.7600.16385 22. Oktober 2009 Windows 7 , Windows Server 2008 R2
6.00.6002.18107 27. Oktober 2009 Windows Vista SP2 und Windows Server 2008 SP2 über das Plattformupdate für Windows Vista und Windows Server 2008
6.01.7601.17514 16. Februar 2011 Windows 7 SP1 , Windows Server 2008 R2 SP1
11.1 6.02.9200.16384 1. August 2012 Windows 7 SP1 , Windows 8 , Windows RT , Windows Server 2012
11.2 6.03.9600.16384 18. Oktober 2013 Windows 8.1 , Windows RT , Windows Server 2012 R2 , Xbox One
12 12 10.00.10240.16384 29. Juli 2015 Windows 10 , Xbox One
10.00.15063.0000 20. März 2017 Windows 10 , Depth Bounds Testing und programmierbares MSAA hinzugefügt
10.00.17763.0000 20. November 2019 Windows 7 SP1
10.00.17763.0001 2. Oktober 2018 Windows 10 , DirectX Raytracing- Unterstützung hinzugefügt
10.00.18362.0116 19. Mai 2019 Windows 10 , Unterstützung für Variable Rate Shading (VRS) hinzugefügt
10.00.19041.0928 10. November 2020 Windows10 , ??
10.0022000.1000 5. Oktober 2021 Windows 11 , Native Aktualisierungsratenumschaltung und verbesserte Grafikfunktionen zum Windows-Subsystem für Linux hinzugefügt

Die vom Microsoft- Tool DxDiag (Version 4.09.0000.0900 und höher) gemeldete Versionsnummer verwendet das Format x.xx.xxxx.xxxx für Versionsnummern. Die MSDN- Seite von DirectX und Windows XP behauptet jedoch, dass die Registrierung immer das Format x.xx.xx.xxxx hatte. Wenn die obige Tabelle eine Version als '4.09.00.0904' auflistet, kann das DxDiag- Tool von Microsoft diese daher als '4.09.0000.0904' haben.

Kompatibilität

Verschiedene Versionen von Windows haben verschiedene Versionen von DirectX enthalten und unterstützt, sodass neuere Versionen des Betriebssystems weiterhin Anwendungen ausführen können, die für frühere Versionen von DirectX entwickelt wurden, bis diese Versionen schrittweise zugunsten neuerer APIs, Treiber und Hardware eingestellt werden können.

APIs wie Direct3D und DirectSound müssen mit der Hardware interagieren und tun dies über einen Gerätetreiber . Hardwarehersteller müssen diese Treiber für die Gerätetreiberschnittstelle (oder DDI) einer bestimmten DirectX-Version schreiben und jede einzelne Hardware testen, um sie DirectX-kompatibel zu machen. Einige Hardwaregeräte haben nur DirectX-kompatible Treiber (mit anderen Worten, man muss DirectX installieren, um diese Hardware verwenden zu können). Frühe Versionen von DirectX enthielten eine aktuelle Bibliothek aller derzeit verfügbaren DirectX-kompatiblen Treiber. Diese Praxis wurde jedoch zugunsten des webbasierten Windows Update- Treiberaktualisierungssystems eingestellt, das es Benutzern ermöglichte, nur die für ihre Hardware relevanten Treiber und nicht die gesamte Bibliothek herunterzuladen.

Vor DirectX 10 war die DirectX-Laufzeit so konzipiert, dass sie mit älteren Treibern abwärtskompatibel ist , was bedeutet, dass neuere Versionen der APIs für die Zusammenarbeit mit älteren Treibern entwickelt wurden, die für die DDI einer früheren Version geschrieben wurden. Der Anwendungsprogrammierer musste die verfügbaren Hardwarefähigkeiten unter Verwendung eines komplexen Systems von "Cap-Bits" abfragen, von denen jedes an ein bestimmtes Hardwaremerkmal gebunden war. Direct3D 7 und früher würden auf jeder DDI-Version funktionieren, Direct3D 8 erfordert eine DDI-Mindeststufe von 6 und Direct3D 9 erfordert eine DDI-Mindeststufe von 7. Die Direct3D 10-Laufzeit in Windows Vista kann jedoch nicht auf älteren Hardwaretreibern ausgeführt werden das stark aktualisierte DDI, das einen einheitlichen Funktionsumfang erfordert und die Verwendung von "Cap-Bits" aufgibt.

Direct3D 10.1 führt die „ Funktionsebenen “ 10_0 und 10_1 ein, die nur die Verwendung der Hardwarefunktionen ermöglichen, die in der angegebenen Version der Direct3D-API definiert sind. Direct3D 11 fügt Level 11_0 und "10 Level 9" hinzu - eine Teilmenge der Direct3D 10-API, die für die Ausführung auf Direct3D 9-Hardware entwickelt wurde und drei Funktionsebenen (9_1, 9_2 und 9_3) aufweist, gruppiert nach den gemeinsamen Fähigkeiten von "low", "med .". " und "High-End"-Grafikkarten; die Laufzeit verwendet direkt Direct3D 9 DDI, das in allen WDDM-Treibern bereitgestellt wird. Die Funktionsebene 11_1 wurde mit Direct3D 11.1 eingeführt .

.NET-Framework

Im Jahr 2002 veröffentlichte Microsoft eine Version von DirectX, die mit dem Microsoft .NET Framework kompatibel ist , wodurch Programmierer die DirectX-Funktionalität innerhalb von .NET-Anwendungen mit kompatiblen Sprachen wie Managed C++ oder der Programmiersprache C# nutzen können . Diese API war als „ Managed DirectX “ (oder kurz MDX) bekannt und behauptete, mit 98 % der Leistung der zugrunde liegenden nativen DirectX-APIs zu arbeiten. Im Dezember 2005, Februar 2006, April 2006 und August 2006 veröffentlichte Microsoft aufeinanderfolgende Updates für diese Bibliothek, die in einer Beta-Version namens Managed DirectX 2.0 gipfelten. Während Managed DirectX 2.0 Funktionalitäten, die zuvor auf mehrere Assemblys verstreut waren, in einer einzigen Assembly konsolidierte und damit die Abhängigkeiten davon für Softwareentwickler vereinfachte, wurde die Entwicklung dieser Version später eingestellt und nicht mehr unterstützt. Die Managed DirectX 2.0-Bibliothek ist am 5. Oktober 2006 abgelaufen.

Während der GDC 2006 präsentierte Microsoft mit dem XNA Framework eine neue verwaltete Version von DirectX (ähnlich, aber nicht identisch mit Managed DirectX), die die Entwicklung von Spielen unterstützen soll, indem es die Integration von DirectX, HLSL und anderen Tools in einem Paket erleichtert. Es unterstützt auch die Ausführung von Managed Code auf der Xbox 360. Das XNA Game Studio Express RTM wurde am 11. Dezember 2006 als kostenloser Download für Windows XP zur Verfügung gestellt. Im Gegensatz zur DirectX-Laufzeit werden Managed DirectX , XNA Framework oder die Xbox 360 APIs (XInput, XACT etc.) nicht als Teil von Windows ausgeliefert. Von Entwicklern wird erwartet, dass sie die Laufzeitkomponenten zusammen mit ihren Spielen oder Anwendungen neu verteilen.

Kein Microsoft-Produkt einschließlich der neuesten XNA-Versionen bietet DirectX 10-Unterstützung für das .NET Framework.

Der andere Ansatz für DirectX in verwalteten Sprachen besteht darin, Bibliotheken von Drittanbietern zu verwenden, wie:

  • SlimDX , eine Open-Source-Bibliothek für die DirectX-Programmierung auf dem .NET Framework
  • SharpDX, ein Open-Source-Projekt, das die vollständige DirectX-API für .NET auf allen Windows-Plattformen bereitstellt und die Entwicklung von Hochleistungsspielen, 2D- und 3D-Grafik-Rendering sowie Echtzeit-Soundanwendungen ermöglicht
  • DirectShow.NET für die DirectShow-Untergruppe
  • Windows API CodePack für .NET Framework , eine Open-Source-Bibliothek von Microsoft.

Alternativen

Es gibt Alternativen zur DirectX- API- Familie , wobei OpenGL , sein Nachfolger Vulkan , Metal und Mantle die meisten mit Direct3D vergleichbaren Funktionen aufweisen . Beispiele für andere APIs sind SDL , Allegro , OpenMAX , OpenML, OpenAL , OpenCL , FMOD , SFML usw. Viele dieser Bibliotheken sind plattformübergreifend oder haben offene Codebasen. Es gibt auch alternative Implementierungen, die darauf abzielen, dieselbe API bereitzustellen, wie die in Wine . Außerdem versuchen die Entwickler von ReactOS , DirectX unter dem Namen „ReactX“ neu zu implementieren.

Siehe auch

Verweise

Externe Links