www.wikidata.de-de.nina.az
DirectX dɪˈrɛkt ɛks AE bzw daɪrɛkt ɛks BE ist eine Sammlung COM basierter Programmierschnittstellen englisch Application Programming Interface kurz API fur multimediaintensive Anwendungen besonders Spiele auf der Windows Plattform und kommt auch auf der Spielkonsole Xbox zum Einsatz Beteilige dich an der Diskussion Dieser Artikel wurde wegen inhaltlicher Mangel auf der Qualitatssicherungsseite der Redaktion Informatik eingetragen Dies geschieht um die Qualitat der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen Hilf mit die inhaltlichen Mangel dieses Artikels zu beseitigen und beteilige dich an der Diskussion Begrundung Uberarbeitung notwendig da nicht nur Belege fehlen sondern auch wesentliche Aspekte der Geschichte die zu DirectX fuhrte Dieser Artikel ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Die gesamte Geschichte von DirectX und der Entwicklung aus WinG hin zu Direct3D ist nicht belegt Siehe z B Diskussion DirectX Abschnitt Siegeszug der 3D Grafik Microsoft DirectXBasisdatenEntwickler Microsoft CorporationErscheinungsjahr 30 September 1995Aktuelle Version 12 0 ULTIMATE fur Windows 10 2004 06 2020 Betriebssystem WindowsProgrammiersprache High Level Shader LanguageKategorie ProgrammierschnittstelleLizenz MS EULAFur Endbenutzer www microsoft com de de download details aspx id 35 Fur Entwickler msdn microsoft com directx Die DirectX Sammlung von Software Komponenten deckt nahezu den gesamten Multimediabereich ab Vorrangig wird es bei der Darstellung komplexer 2D und 3D Grafik eingesetzt bietet aber auch Unterstutzung fur Audio diverse Eingabegerate zum Beispiel Maus Joystick und Netzwerkkommunikation Inhaltsverzeichnis 1 Entwicklungsgeschichte 1 1 Vorgeschichte und MS DOS 1 2 Siegeszug der 3D Grafik 1 3 DirectX 2 0 bis 9 29 1 4 DirectX 10 1 5 DirectX 10 1 1 6 DirectX 11 1 7 DirectX 12 1 8 DirectX 12 Ultimate 1 9 Versionshistorie 2 Aufbau von DirectX 2 1 DirectX Graphics 2 2 DirectSetup 2 3 XAudio2 2 4 XInput 2 5 Veraltet 2 5 1 DirectInput 2 5 2 DirectMusic 2 5 3 DirectPlay 2 5 4 DirectShow ehemals Direct Media 2 5 5 DirectSound 2 5 6 DirectX Media Objects 2 5 7 DirectX Video Acceleration 3 Funktionsweise 4 DirectX ausserhalb von Windows 5 Alternativen zu DirectX 6 Weitere Informationen 7 Weblinks 8 EinzelnachweiseEntwicklungsgeschichte BearbeitenVorgeschichte und MS DOS Bearbeiten Nachdem sich seit Ende der 1980er Jahre der IBM kompatible PC mit dem Betriebssystem MS DOS als Computer fur Jedermann durchgesetzt hatte begann ein paar Jahre spater auch der Siegeszug der grafischen Benutzeroberflache Microsoft Windows In den 1990ern wurden die verbreiteten Anwendungen zunehmend fur Microsoft Windows portiert und viele neue Anwendungen wurden exklusiv fur Windows mithilfe der WinAPI entwickelt Einzige Ausnahme blieben Computerspiele die anfangs zwar vorwiegend auf den mit besseren Multimediafahigkeiten bestuckten Heimcomputern erschienen aber auch mehr und mehr auf dem PC Einzug hielten Windows bot zu diesem Zeitpunkt noch keine optimierten Programmier Schnittstellen fur schnelle Grafik und Audio Operationen die aber fur Spiele meist unabdingbar sind Deshalb wurden Spiele meist nur fur MS DOS entwickelt MS DOS bot zwar auch keine speziell fur Spiele entworfenen Schnittstellen aber es erlaubte die vollige Kontrolle uber den Prozessor und den ungehinderten Zugriff auf die gesamte angeschlossene Hardware Vor allem konnte ein Programm unter MS DOS sicher sein nicht von anderen gleichzeitig auf demselben Rechner laufenden Programmen behindert zu werden weil unter dem Single Task System MS DOS immer nur ein einziges Programm laufen kann Im Gegensatz dazu mussen Programme unter Multitasking Systemen wie Windows auf andere Programme Rucksicht nehmen die auf demselben Rechner simultan laufen Microsoft schenkte der Entertainment Branche und Unterhaltungsmedien wie Computerspielen zu diesem Zeitpunkt noch wenig Beachtung Siegeszug der 3D Grafik Bearbeiten Nach dem einschlagenden Erfolg des Computerspiels Doom von der Firma id Software die schon vorher mit Wolfenstein 3D gezeigt hatte welches technische Potenzial in den eigentlich vorrangig fur Buroarbeit verwendeten IBM kompatiblen PCs steckt begann sich Microsoft fur das Unterhaltungssegment zu interessieren Dem System Windows 95 das genau wie seine Vorganger bei Erscheinen noch uber keine Programmierschnittstelle fur Spiele verfugte wollte Microsoft nachtraglich eine Schnittstelle hinzufugen um den wachsenden Markt der PC Spieler von MS DOS wegzulocken und hin zu Windows 95 DOS wurde als bessere Plattform angesehen weil es den direkten Zugriff auf Grafikkarten Maus Tastatur und Soundgerate ermoglichte Windows 95 schrankte den Zugang zu all diesen Komponenten aufgrund seines geschutzten Speichermodells ein Microsoft benotigte folglich einen Weg um den Programmierern den gleichen Zugriff auf diese Gerate unter dem neuen Betriebssystem Windows 95 zu ermoglichen 1 Diese erste Schnittstellen Version nannte Microsoft Game SDK 2 Sie bestand lediglich aus einer Handvoll Funktionen mit denen Grafiken direkt in den Grafikspeicher geblittet werden konnten Diese erste Schnittstellen Version wurde von der Spieleindustrie die jahrelang fur MS DOS entwickelt und dort Erfahrung gesammelt hatte nicht weiter beachtet Parallel dazu entwickelte Microsoft WinG eine Bibliothek mit gleichem Ansatz jedoch bevorzugt fur den 256 Farben Modus Diese Bibliothek kam zum Beispiel in Lemmings for Windows zum Einsatz und war auch unter der Benutzeroberflache Windows fur Workgroups 3 11 verfugbar Einen weiteren Anlauf unternahm Microsoft mit DirectX Version 1 0 Microsoft konnte id Software dazu bewegen eine Portierung ihres erfolgreichen Spiels Doom mit dieser API fur Windows 95 zu entwickeln Diese Spiel Portierung wurde von Microsoft auf einer Messe prasentiert um Entwickler aus aller Welt dazu zu bringen mit DirectX direkt fur den De facto Standard Windows 95 zu entwickeln statt fur MS DOS Aber auch dieser Versuch scheiterte zunachst da Microsoft den Aufwand weit unterschatzte der fur eine brauchbare Programmbibliothek mit auf Spiele optimierten Grafik und Sound Funktionen notig war Noch Jahre spater kamen Spiele auf den Markt die eigentlich durchgangig Protected Mode DOS Spiele waren und hochstens ein paar zusatzliche Hilfsprogramme z B Editoren fur Windows mitbrachten oder nur die Autoplay Funktionalitat von Windows nutzten DirectX 2 0 bis 9 29 Bearbeiten Seit DirectX in Version 2 0 auch 3D Funktionalitat in Form der Komponente Direct3D mitbrachte gelangte es mit Version 3 0 zu einer gewissen Reife und wurde allmahlich auch von Entwicklern ernst genommen Mit ihm erschienen auch die ersten Spiele die nur noch unter Windows mit DirectX und nicht mehr unter MS DOS liefen zum Beispiel Diablo Wahrend der Entwicklung von DirectX 4 0 stellte sich heraus dass viele Programmierer auf Funktionalitaten warteten die erst fur Version 5 vorgesehen waren Also beschloss man die wenigen Veranderungen von DirectX 4 nicht zu veroffentlichen sondern direkt in die darauffolgende Version einzubauen 3 DirectX 6 0 unterstutzte erstmals Multitexturing und Bumpmapping Ab Version 7 gehoren Transform and Lighting und Cubic Environment Mapping CubeMaps zum Funktionsumfang Das T amp L Paket wurde in der darauffolgenden Version deutlich ausgebaut und um Funktionen wie Triangle Tessellation erweitert Dazu kamen ausserdem frei programmierbare Vertex und Pixel Shader DirectX 8 deckte viele Gebiete der Multimedia und Spiele Programmierung ab wie 2D und 3D Grafik Ton und Musik Video Capturing Eingabe und uber Force Feedback auch Ausgabe auf eigentlichen Eingabegeraten und Netzwerk siehe unten In diesem Artikel oder Abschnitt fehlen noch folgende wichtige Informationen Infos zu den Versionen 6 bis 8 x vor allem ausserhalb Direct3D Hilf der Wikipedia indem du sie recherchierst und einfugst DirectX 9 0 erschien im Dezember 2002 Es bot als grosse Neuerung die High Level Shading Language HLSL womit Entwickler leichter 3D Grafiken und Effekte erstellen konnten HLSL bot fur Entwickler eine flexible und leicht zu bedienende Entwicklungsumgebung und war dabei zu allen DirectX fahigen Grafikkarten kompatibel um die Anpassung auf die Hardware Eigenheiten zu vereinfachen Eine weitere Neuerung war eine Bibliothek die Patch Meshes und herkommliche Polygon Meshes sowie verbesserte Echtzeit Animationen bot Alle Direct3D APIs enthielten erweiterte Programmfahigkeiten bei Low Level Grafiken mit programmierbaren Vertex und Pixel Shader 2 0 Modellen Microsoft implementierte in DirectX 9 0 neue Assistenten zur Erzeugung von DirectX Media Objects DMOs fur Audio Effekte und fur DirectMusic Werkzeuge beim MIDI Processing Die Version DirectX 9 0c wurde im August 2004 als aktualisierte Version veroffentlicht Nach Aussage von Microsoft ist die Unterstutzung fur DirectX 9 fur die nachsten Jahre in jedem Falle gesichert auch wenn Windows Vista und DirectX 10 10 1 in der Praxis zum Einsatz kommen Im Juni 2010 veroffentlichte Microsoft die aktualisierte Version 9 29 welche laut dxdiag aber weiterhin DirectX 9 0c entspricht DirectX 10 Bearbeiten Die Version DirectX 10 0 erschien Anfang 2007 Anders als die Vorganger lauft diese nur unter den Betriebssystemen Windows Vista und Windows 7 Zusatzlich muss im Computer eine fur DirectX 10 0 taugliche Grafikkarte eingebaut sein Unter den Systemen Windows 98 Me 2000 XP oder Server 2003 steht weiterhin nur DirectX 9 0c zur Verfugung Im April 2007 erschienen Meldungen wonach die neuen Direct3D 10 Funktionen uber eigene Bibliotheken auch auf anderen Windows Versionen nutzbar seien 4 Das Unternehmen hinter diesem Projekt hat das Vorhaben inzwischen aber eingestellt und den Quelltext veroffentlicht 5 Neu an Version 10 ist nur Direct3D 10 das das neue Windows Display Driver Model und Shader Model 4 benutzt kombiniert mit strengeren Regeln fur die Hersteller von Grafikkarten die die Direct3D 10 Kompatibilitat fur sich in Anspruch nehmen mochten Ab Direct3D 10 werden bis auf wenige Ausnahmen keine cap bits mehr verwendet anhand derer Programme feststellen konnen welche Funktionen die Hardware zur Verfugung stellt Daher muss Direct3D 10 und jede folgende Version neue Funktionen immer in Form von Mindestanforderungen einfuhren Damit kommt Microsoft den Spieleentwicklern entgegen da diese die Hardware bisher auf eine Vielzahl an moglichen Funktionskombinationen abfragen mussten Dagegen werden Hardwarehersteller nun dazu gezwungen bestimmte Funktionen zu implementieren um kompatibel mit der jeweiligen Direct3D Version zu sein Dadurch wird die Fahigkeit der Hardwareproduzenten eingeschrankt sich durch optionale Komponenten von Wettbewerbern abzuheben nbsp Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Direct3D 10 unterscheidet sich von seinen Vorgangern weniger durch direkt sichtbare Eigenschaften als vielmehr durch Erweiterung Modularisierung und Flexibilisierung der 3D Funktionen DirectX 10 1 Bearbeiten DirectX 10 1 wurde zusammen mit Windows Vista SP1 ausgeliefert und enthalt gegenuber DirectX 10 folgende Anderungen die die Direct3D API betreffen Shader Model 4 1 vierfaches Antialiasing mit veranderbaren Subpixel Mustern Unterstutzung fur durchgangiges Rechnen mit 32 Bit Gleitkommazahlen dynamisch adressierbare Cubemap Arrays Rendern in blockkomprimierte FramebufferFalls eine Grafikkarte eine dieser Funktionen nicht beherrscht kann sie keine Direct3D 10 1 Schnittstelle anbieten und die Applikation muss auf Direct3D 10 zuruckfallen Zusatzlich wird XAudio2 als Ersatz fur DirectSound eingefuhrt DirectX 11 Bearbeiten Microsoft hatte bereits auf der Messe Gamefest 22 bis 23 Juli 2008 in Seattle neue Details zu DirectX 11 offiziell enthullt 6 Grundsatzlich sollen alle Grafikkarten die mit DirectX 10 x kompatibel sind auch unter DirectX 11 eine vollstandige Kompatibilitat erreichen was neue Funktionen von DirectX 11 auf alterer Hardware ausschliesst Wesentliche Neuerungen sind Shader Model 5 mit dem die sogenannten Compute Shaders eingefuhrt werden womit Microsoft die GPGPU Programmierung vereinheitlichen mochte Grafikkartenseitige Unterteilung der von der CPU gelieferten Dreiecke in weitere Dreiecke Tessellation durch die der Detailgrad von 3D Szenen ohne Belastung des restlichen Systems erhoht werden kann Diese Technik wird von allen AMD Grafikkarten ab der HD 5XXX Serie sowie von allen Nvidia Grafikkarten ab der GeForce GTX 4XX Serie unterstutzt 7 Thread Unterstutzung der Rendering Pipeline verbessert insbesondere in Hinblick auf effizientere GPGPU Programmierung DirectX 11 ist als Teil von Windows 7 im vierten Quartal 2009 erschienen Fur Windows Vista startete Microsoft die Auslieferung von DirectX 11 am 28 Oktober 2009 zunachst per Windows Update 8 Der technische Entwicklungsleiter fur den Grafikbereich bei AMD teilte in einer Rede in Reykjavik mit dass schon im ersten Quartal 2009 die voraussichtlich erste DirectX 11 Grafikkarte auf den Markt kommen sollte 9 Dies war allerdings erst mit dem Erscheinen der ATI Radeon HD 5000 Serie der Fall die zu Anfang des vierten Quartals 2009 auf den Markt kam Zudem wurden im DirectX SDK von November 2008 die ersten DirectX 11 Beispiele gezeigt DirectX 12 Bearbeiten nbsp Teile dieses Abschnitts scheinen seit 2015 nicht mehr aktuell zu sein Bitte hilf uns dabei die fehlenden Informationen zu recherchieren und einzufugen Wikipedia WikiProjekt Ereignisse Vergangenheit fehlend Microsoft hat DirectX 12 auf der Game Developers Conference in San Francisco am 20 Marz 2014 vorgestellt Ahnlich wie AMDs Mantle bietet DirectX 12 hardwarenahere Programmierung so soll die CPU Last Overhead verringert werden DirectX 12 soll unter anderem auf allen DirectX 11 fahigen Grafikkarten sowie Mobilgeraten und der Xbox One funktionieren Die ersten Spiele mit DirectX 12 Unterstutzung wurden fur Ende 2015 erwartet DirectX 12 wird fur Raytracing auf kompatiblen Nvidia RTX Grafikkarten benotigt 10 11 DirectX 12 Ultimate Bearbeiten Am 19 Marz 2020 wurde von Microsoft im DirectX Developer Blog mit DirectX 12 Ultimate eine neue DirectX Entwicklungsstufe angekundigt Unter DirectX 12 Ultimate fasst Microsoft im Grunde mehrere teilweise bereits existierende Techniken zusammen und macht die Unterstutzung verpflichtend fur Hersteller die ihre Produkte mit dem neuen Standard bewerben mochten Im Einzelnen sind dies DirectX Raytracing 1 1 Variable Rate Shading Mesh Shaders und Sampler Feedback Um alle neuen Features nutzen zu konnen ist eine NVIDIA Grafikkarte ab GeForce 20 Serie oder eine AMD Grafikkarte basierend auf der RDNA 2 Architektur notig Die Xbox Series X ist die einzige Videospielkonsole die DirectX 12 Ultimate unterstutzt Sonys PlayStation 5 die zwar auch auf AMD Hardware basierend auf RDNA 2 Architektur setzt fehlt es an softwareseitiger Unterstutzung da der japanische Hersteller andere Grafik APIs einsetzen wird 12 13 Versionshistorie Bearbeiten Legende Altere Version nicht mehr unterstutzt Altere Version noch unterstutzt Aktuelle Version Aktuelle Vorabversion Zukunftige VersionDirectX Version Versionsnummer Betriebssystem VeroffentlichungAltere Version nicht mehr unterstutzt DirectX 1 0 4 02 0095 30 September 1995Altere Version nicht mehr unterstutzt DirectX 2 0 wurde nur mit wenigen Drittanbieterprogrammen zusammen veroffentlicht 1996Altere Version nicht mehr unterstutzt DirectX 2 0a 4 03 00 1096 Windows 95 OSR2 und NT 4 0 5 Juni 1996Altere Version nicht mehr unterstutzt DirectX 3 0 4 04 00 0068 15 September 19964 04 00 0069 spatere Pakete von DirectX 3 0 enthielten Direct3D 4 04 00 0069 1996Altere Version nicht mehr unterstutzt DirectX 3 0a 4 04 00 0070 Windows NT 4 0 SP3 und daruber letzte unterstutzte Version von DirectX fur Windows NT 4 0 SP0 Dezember 1996Altere Version nicht mehr unterstutzt DirectX 3 0b 4 04 00 0070 geringfugige Verbesserung gegenuber 3 0a da nur ein kosmetisches Problemin der japanischen Version korrigiert wurde Dezember 1996Altere Version nicht mehr unterstutzt DirectX 5 0 4 05 00 0155 RC55 verfugbar als Beta fur Windows NT 4 0 16 Juli 1997Altere Version nicht mehr unterstutzt DirectX 5 2 4 05 01 1600 RC00 DirectX 5 2 Veroffentlichung fur Windows 95 5 Mai 19984 05 01 1998 RC0 Windows 98 exklusiv 25 Juni 1998Altere Version nicht mehr unterstutzt DirectX 6 0 4 06 00 0318 RC3 Windows CE als Dreamcast Implementierung 7 August 1998Altere Version nicht mehr unterstutzt DirectX 6 1 4 06 02 0436 RC0 3 Februar 1999Altere Version nicht mehr unterstutzt DirectX 6 1a 4 06 03 0518 RC0 exklusiv fur Windows 98 SE 5 Mai 1999Altere Version nicht mehr unterstutzt DirectX 7 0 4 07 00 0700 RC1 22 September 19994 07 00 0700 Windows 2000 17 Februar 2000Altere Version nicht mehr unterstutzt DirectX 7 0a 4 07 00 0716 RC0 8 Marz 20004 07 00 0716 RC1 2000Altere Version nicht mehr unterstutzt DirectX 7 1 4 07 01 3000 RC1 exklusiv fur Windows Me 14 September 2000Altere Version nicht mehr unterstutzt DirectX 8 0 4 08 00 0400 RC10 12 November 2000Altere Version nicht mehr unterstutzt DirectX 8 0a 4 08 00 0400 RC14 letzte Version fur Windows 95 5 Februar 2001Altere Version nicht mehr unterstutzt DirectX 8 1 4 08 01 0810 exklusiv fur Windows XP Windows Server 2003 und Xbox 25 Oktober 20014 08 01 0881 RC7 Version fur die alteren Betriebssysteme Windows 98 Windows Me und Windows 2000 8 November 2001Altere Version nicht mehr unterstutzt DirectX 8 1a 4 08 01 0901 RC Direct3D Update D3d8 dll 2002Altere Version nicht mehr unterstutzt DirectX 8 1b 4 08 01 0901 RC7 DirectShow Korrektur fur Windows 2000 Quartz dll 25 Juni 2002Altere Version nicht mehr unterstutzt DirectX 8 2 4 08 02 0134 RC0 identisch zu DirectX 8 1b aber mit DirectPlay 8 2 2002Altere Version nicht mehr unterstutzt DirectX 9 0 4 09 00 0900 RC4 19 Dezember 2002Altere Version nicht mehr unterstutzt DirectX 9 0a 4 09 00 0901 RC6 26 Marz 2003Altere Version nicht mehr unterstutzt DirectX 9 0b 4 09 00 0902 RC2 13 August 2003Altere Version nicht mehr unterstutzt DirectX 9 0c 4 09 00 0903 ausschliesslich fur Service Pack 2 fur Windows XP4 09 00 0904 RC0 4 August 20044 09 00 0904 Windows XP SP2 Windows Server 2003 SP1 Windows Server 2003 R2 und Xbox 360 6 August 2004Altere Version noch unterstutzt DirectX 9 0cregelmassigeVeroffentlichungen 4 09 00 0904 RC0 Die letzte Version fur Windows 98 und ME ist vom Dezember 2006 14 Die letzte Version fur Windows 2000 ist vom Februar 2010 15 Die erste 64 Bit fahige Version ist vom Februar 2005 16 von Oktober 2004 bis August 2007zweimonatlich anschliessendvierteljahrlich aktuelle Version Juni 2010Altere Version noch unterstutzt DirectX 9 29 4 09 0000 0904 ab Windows XP 17 7 Juni 2010Altere Version noch unterstutzt DirectX 10 6 00 6000 16386 Windows Vista Windows 7 20 November 2006Altere Version noch unterstutzt DirectX 10 1 6 00 6001 18000 Service Pack 1 fur Windows Vista Windows Server 2008mit Direct3D 10 1 4 Februar 2008Altere Version noch unterstutzt DirectX 11 6 01 7600 0000 Windows Vista SP2 Windows 7 22 Oktober 2009Altere Version noch unterstutzt DirectX 11 1 6 02 9200 Windows 8 Windows 7 26 Oktober 2012Altere Version noch unterstutzt DirectX 11 2 6 03 9600 Windows 8 1 Windows 8 Windows 7 SP1 18 Oktober 2013Aktuelle Version DirectX 12 10 00 17134 0001 Windows 7 18 Windows 10 19 29 Juli 2015Anmerkungen DirectX 4 wurde nie veroffentlicht Raymond Chen erklart in seinem Blog The Old New Thing und seinem gleichnamigen Buch dass nachdem DirectX 3 veroffentlicht worden war Microsoft die Entwicklung von 4 und 5 parallel begann Version 4 sollte eine kleinere Anpassung sein 5 mit grosseren Anderungen Mangelndes Interesse von Seiten der Entwickler fur die Neuheiten der Version 4 fuhrten dazu dass direkt Version 5 veroffentlicht wurde 3 20 Die Versionsnummer die von Microsofts DxDiag Tool Version 4 09 0000 0900 und hoher gezeigt wird nutzt das Format x xx xxxx xxxx fur Versionsnummern Jedoch wird in der Registry das Format x xx xx xxxx verwendet Es kann also sein dass zu der oben gelisteten Version 4 09 00 0904 in DxDiag als 4 09 0000 0904 angezeigt wird Aufbau von DirectX BearbeitenDirectX besteht aus folgenden Teilen DirectX Graphics Bearbeiten DirectX Graphics ist der am meisten genutzte Teil von DirectX Er ermoglicht einen schnellen und direkten Zugriff auf die Grafikkarte vorbei am Graphics Device Interface GDI und Display Device Interface DDI und unterstutzt mit Direct2D 21 2D und mit Direct3D 3D Grafik DirectX Graphics stellt sowohl eine Low Level API Direct3D als auch eine High Level API Direct3DX bereit Die Low Level API Direct3D eignet sich fur Anwendungen mit hoher Interaktionsrate oder Prasentationsfrequenz komplexer grafischer Szenen wie beispielsweise bei 3D Spielen Bis zur Version 7 wurden bei der Low Level API zwischen 2D Grafik DirectDraw und 3D Grafik Direct3D unterschieden Durch eine Uberarbeitung des Grafikbereichs in Version 8 wurden beide Teile unter einer einheitlichen API in Direct3D zusammengefasst Die explizite eigenstandige Weiterentwicklung von DirectDraw wurde damit eingestellt Die High Level API Direct3DX ermoglicht es hingegen mit vertretbarem Aufwand 3D Anwendungen zu realisieren Direct3DX setzt auf Direct3D auf das heisst es nutzt dessen Basisfunktionalitat Ausserdem emuliert die Funktionsgruppe nicht durch die Hardware unterstutzte Funktionen Dafur nutzt der Hardware Emulation Layer HEL die Moglichkeiten von MMX Prozessoren zur Manipulation von Bildern und greift auf Funktionen des GDI zuruck Unterstutzt werden unter anderem Seitenumschaltung Flipping siehe Doppelpufferung Blitting Clipping 3D Z Puffer Overlays und direkte Steuerung des Datenflusses durch die Video Port Hardware Video Port Manager DirectSetup Bearbeiten DirectSetup ermoglicht Programmierern ihre Installationsroutine automatisch uberprufen zu lassen ob die benotigte DirectX Version bereits installiert ist und diese andernfalls zu installieren XAudio2 Bearbeiten XAudio2 basiert auf der Xbox 360 Sound API und hat DirectSound abgelost Die programmierbaren DSP Programme ermoglichen EAX ahnliche Effekte auf allen Tonausgabe Geraten ugs mitunter als Sound Karte bezeichnet auch wenn es meist nur Bauteile auf der Hauptplatine sind diese werden allerdings auf dem Hauptprozessor ausgefuhrt Dies hat vor allem Kritik seitens des Herstellers Creative hervorgerufen weil auf dessen Chips bzw Karten solche DSP Programme in Hardware ausgefuhrt werden konnten um Spielern somit einen Geschwindigkeitsvorteil zu bieten durch Entlastung der CPU XInput Bearbeiten XInput ist der neue Standard fur Eingabegerate unter Windows XP und spaterer Betriebssysteme sowie fur die Xbox 360 22 XInput ignoriert alle alteren DirectInput Gerate wodurch altere Joysticks und Joypads nur durch Simulation uber Wrapper Programme in den verschiedenen Spielen und Anwendungen funktionieren konnen Bislang ist keine Losung fur dieses Problem von Microsoft bekannt weshalb angenommen werden kann dass das Unternehmen kein Interesse an einer weiteren Unterstutzung solcher Gerate hat Mochte man mit einem DirectInput Controller XInput Spiele betreiben empfiehlt es sich einen entsprechenden Emulator zu verwenden Ob Microsoft in Zukunft reine DirectInput Gerate mit XInput unterstutzen wird ist fraglich Veraltet Bearbeiten Die folgenden Komponenten waren in der Vergangenheit Teil von DirectX werden mittlerweile aber nicht mehr unterstutzt DirectInput Bearbeiten Direct Input unterstutzt Eingabegerate wie Tastatur Maus Joysticks usw und ermoglicht Force Feedback Effekte zum Beispiel das Vibrieren eines Gamepads oder Widerstand beim Bewegen eines Joysticks und unterstutzt den Zugriff auf analoge und digitale Eingabegerate welche ein absolutes Koordinatensystem verwenden Ein Eingabegerat kann uber bis zu sechs Bewegungsachsen und 32 Knopfe verfugen Der Zugriff uber DirectInput umgeht das Windows Message System das heisst Ereignis Melde und Warteschlangen und erfolgt direkt auf die Hardware ein Geschwindigkeitsvorteil gegenuber der Win32 API DirectInput erlaubt Anwendungen die Nutzung von moglichen Force Feedback Fahigkeiten der Eingabegerate um so Kraftruckkopplungseffekte zu erzeugen DirectMusic Bearbeiten Fur die Wiedergabe von Musik MIDI Musik allerdings keine komprimierte Musik wie MP3 DirectMusic liefert dazu einen Software Synthesizer Service Verwendet wird ein DLS2 Synthesizer Siehe DirectShow fur die Wiedergabe von komprimierter Musik wie MP3 und Video AVI MPEG DirectPlay Bearbeiten DirectPlay dient zur Kommunikation von Multiplayerspielen untereinander die auf mehreren Computern laufen bei Netzwerkspielen oder Onlinespielen Im Wesentlichen handelt es sich um ein Protokoll auf Anwendungsebene und es ist somit unabhangig von konkret genutzten Protokollen der Transport und Ubertragungsebene siehe dazu auch OSI Modell DirectPlay realisiert keine Mechanismen fur das Zusammentreffen der Spieler Matchmaking oder das Abrechnen von Spielteilnahmen Den Kern bildet die Spielesitzung DirectPlay Session welche von einem Host genannten Rechner erzeugt und moderiert wird Spieler sind logische Objekte von denen es pro Rechner mehrere geben kann daher wird zwischen lokalen und entfernten Spielern unterschieden Das Konzept von Spielergruppen wird unterstutzt jeder Spieler kann dabei gleichzeitig mehreren Gruppen angehoren Die Spieler konnen an andere Spieler Nachrichten versenden Chat Hinweis Fur viele Spieleentwickler war die sehr hohe CPU Last Overhead von DirectPlay dafur entscheidend es nicht zu verwenden und lieber einen eigenen effektiveren Netzwerk Zugriff auf Basis von Winsock zu realisieren Andere haben sich wegen der festen Bindung an Windows dagegen ausgesprochen da zum Beispiel fur speziell auf Windows Systemen lauffahige First Person Shooter gerne auch eigene Linux Server entwickelt werden DirectShow ehemals Direct Media Bearbeiten DirectShow oder ehemals ActiveMovie bzw DirectX Media dient der Verarbeitung von Video und Audio Dateien womit sich verschiedenste Arten von Video Dateien AVI MPEG und Ton Dateien z B MP3 wiedergeben oder erstellen lassen Es wird auch Streaming unterstutzt und ist durch DirectShow Filter beliebig erweiterbar DirectShow wurde inzwischen aus dem DirectX SDK entfernt und ist in das Windows Plattform SDK aufgenommen worden Somit gehort DirectShow streng genommen nicht mehr zu DirectX sondern ist jetzt ein Bestandteil der Windows Plattform DirectSound Bearbeiten DirectSound wird zur Wiedergabe und Aufnahme von Toneffekten z B Raumklangunterstutzung das heisst Positionierung der Klange im 3D Raum verwendet Die Daten aus mehreren Eingangspuffern Secondary Sound Buffers werden mit Effekten belegt und zusammen auf einen Ausgangpuffer Primary Sound Buffer gemischt Eingangspuffer konnen in Software oder Hardware realisiert sein statisch zum Beispiel aus einer Datei oder dynamisch zum Beispiel Streaming von einem Mikrofoneingang Daten liefern Die Anzahl der Eingangspuffer die gemischt werden konnen ist ausschliesslich durch die verfugbare Rechenleistung begrenzt Es passt sich automatisch dem Leistungsspektrum der installierten Soundkarte an Basiseffekte wie Volume Frequency Control Panning bzw Balance zusatzliche Effekte wie Reverb Halleffekt Chorus Distortion Equalization und 3D Effekte wie Rolloff Amplitude Panning Muffling Arrival Offset und Doppler Shift Effekt stehen zur Verfugung Da DirectSound durch XAudio2 abgelost wurde sind keine Samples mehr fur DirectSound in den DirectX SDK Releases nach November 2007 enthalten DirectX Media Objects Bearbeiten Hauptartikel DirectX Media Objects DirectX Media Objects bietet Moglichkeiten Audio und Video Strome zu verandern und kann auch zusammen mit DirectSound und DirectShow verwendet werden DirectX Video Acceleration Bearbeiten DirectX Video Acceleration ist eine von Microsoft entwickelte Programmierschnittstelle API fur Windows und Xbox 360 mit der es ermoglicht wird die Videodekodierung per Hardware zu beschleunigen indem unter anderem der Zugriff auf die GPU ermoglicht wird Die Version DXVA 1 0 wurde mit Windows 2000 eingefuhrt und ist auch fur Windows 98 und spatere Plattformen verfugbar die Version DXVA 2 0 wurde mit Microsoft Windows Vista eingefuhrt und in die Media Foundation integriert Funktionsweise BearbeitenDirectX ermoglicht direkte Zugriffe auf die Hardware des Systems ohne die Programme von der Hardware abhangig zu machen So wird Spieleentwicklern eine Hardwareabstraktionsschicht HAL von engl hardware abstraction layer fur die Spieleprogrammierung zur Verfugung gestellt mit der langsame Schnittstellen zum Beispiel Win GDI umgangen werden Funktionen die nicht von der Hardware und damit nicht von der HAL bereitgestellt werden konnen werden in der Hardware Emulations Schicht HEL von engl hardware emulation layer emuliert DirectX ausserhalb von Windows BearbeitenNeben der in aktuellen Windows Versionen enthaltene DirectX API von Microsoft gibt es auch Varianten fur andere Betriebssysteme Diese Nachbildungen dienen dazu Windows Anwendungsprogramme ohne Windows Betriebssystem zu nutzen Aus rechtlichen Grunden sind meist nicht alle Funktionen der originalen API vorhanden was die Kompatibilitat mit Anwendungsprogrammen einschranken kann Da die wenigsten Anwendungsprogramme alle Funktionen der DirectX API benotigen sind viele aber trotzdem ohne Einschrankungen nutzbar Grafische Funktionen werden dabei meist mittels OpenGL bereitgestellt Beispiele von DirectX Implementierungen Cedega Eine kommerzielle Win32 und DirectX Implementierung mit dem Ziel Windows Spiele unter Linux lauffahig zu machen Wine Ein Open Source Projekt mit dem Ziel eine vollstandige Win32 und Win64 API und damit auch DirectX fur Linux und Unix artige Betriebssysteme zu erstellen Bei der DirectX Implementierung von Wine handelt es sich nur um eine schlanke Abstraktionsschicht zum X Server und OpenGL 23 CrossOver Eine kommerzielle Erweiterung von Wine Darwine Eine Wine Portierung fur macOS ReactOS Verwendet einen Teil der Wine Bibliotheken darunter auch DirectX um sich doppelte Entwicklungsarbeit zu sparen 24 Proton eine von Valve entwickelte freie Software welche auf Wine aufbautAlternativen zu DirectX BearbeitenNeben DirectX sind auch freie APIs verfugbar die im Gegensatz zu DirectX nicht auf die Windows Plattform beschrankt sind Allerdings sind diese APIs nicht so umfassend konnen aber grosse Teile von DirectX ersetzen und ermoglichen die Entwicklung plattformubergreifender Software Einige dieser Alternativen wie etwa OpenGL und OpenAL bieten ebenso wie DirectX Hardwarebeschleunigung Wichtige APIs OpenAL fur 3D Sound ersetzt DirectSound und DirectMusic OpenCL als Ersatz fur DirectX 11 Compute Shader OpenGL fur 3D Grafik ersetzt Direct3D bzw DirectX Graphics OpenML fur Multimedia Verarbeitung d h vor allem Video ersetzt DirectShow bzw DirectX Media SFML SDL ClanLib oder Allegro fur Aufgaben wie z B die Unterstutzung von Eingabegeraten 2D 3D Grafik plattformubergreifende Thread Verwaltung und Netzwerk Diese Bibliotheken setzen auf DirectX oder OpenGL auf Vulkan von der Khronos Group als Nachfolger von OpenGL abgeleitet aus der eingestellten Schnittstelle AMD Mantle 25 Weitere Informationen BearbeitenAnwendungen fur DirectX werden mit Hilfe des DirectX SDK erstellt Ein informatives Testprogramm ist das DirectX Diagnoseprogramm Es ist in Windows enthalten und kann uber Start Ausfuhren dxdiag gestartet werden oder alternativ ab Windows Vista in das Suche Fenster in der Startleiste eingegeben werden Weblinks BearbeitenHerunterladen der neuesten Bibliotheken fur DirectX bei Microsoft Microsoft DirectX Developer Center englisch Website fur Entwickler Direct3D11 Tutorials Direct3D11 Tutorials DirectX OldVersion com englisch Altere Versionen von DirectX DirectX World englisch C Ubungen fur SpieleentwicklerEinzelnachweise Bearbeiten The History of DirectX In DirectX Tutorials CodingUnit Programming Tutorials abgerufen am 4 August 2023 englisch DOS was seen as a better platform because DOS allowed direct access to video cards mouse keyboards and sound devices and the rest of the system Windows 95 restricted the access to all of these components because of its protected memory model Microsoft needed a way to give the programmers the same access to these devices on the new operating system Windows 95 The History of DirectX In DirectX Tutorials CodingUnit Programming Tutorials abgerufen am 4 August 2023 englisch In September of 1995 the first version of DirectX was released They used the name Windows games SDK for that version a b Raymond Chen What happened to DirectX 4 22 Januar 2004 abgerufen am 26 Januar 2011 englisch Alky Project Blog Memento vom 20 April 2007 im Internet Archive Entwicklung an DirectX 10 Wrapper fur Windows XP eingestellt Golem News vom 8 Januar 2008 Microsoft bringt DirectX 11 und renoviert Spieledienste Golem de vom 23 Juli 2008 Tesselierte Froblins Videos der AMD Tech Demos zur 4850 Golem de vom 27 Juni 2008 DirectX 11 fur Windows Vista verfugbar Golem de vom 28 Oktober 2009 TG Daily zur ersten DirectX 11 Grafikkarte Memento vom 9 August 2008 im Internet Archive heise online Microsoft nimmt mit DirectX 12 Mobilgerate ins Visier abgerufen am 6 Marz 2014 Golem de Microsoft DirectX 12 mit Unterstutzung von AMD bis Qualcomm abgerufen am 6 Marz 2014 Shawn Hargreaves Announcing DirectX 12 Ultimate In DirectX Developer Blog 19 Marz 2020 abgerufen am 20 August 2021 englisch Microsoft stellt DirectX 12 Ultimate mit vier verpflichtenden neuen Grafik Features vor In 3dcenter org 20 Marz 2020 abgerufen am 20 August 2021 DirectX 9 0c vom Dezember 2006 DirectX 9 0c vom Februar 2010 DirectX 9 0c vom 9 Februar 2005 Memento vom 16 Oktober 2009 im Internet Archive Offizielle DirectX 9 29 Referenz auf www microsoft com Panagiotis Kolokythas Windows 7 erhalt DirectX 12 Unterstutzung PC WELT 27 August 2019 Frederik Niemeyer DirectX 12 Microsoft zwingt Spieler zu Windows Upgrade CHIP 14 November 2014 Raymond Chen The Old New Thing 1 Auflage Pearson Education 2006 ISBN 0 321 44030 7 S 330 Windows 7 Direct2D fur 2D Darstellung Artikel bei der GameStar vom 30 Oktober 2008 Microsoft XInput and DirectInput Abgerufen am 11 August 2014 DirectX Memento vom 15 Februar 2012 im Internet Archive englisch Wine Projekt zugegriffen 16 Februar 2012 DirectX englisch ReactOS Projekt zugegriffen 16 Februar 2012 Neue 3D Schnittstelle AMD Mantle als DirectX Konkurrenz Heise 26 September 2013 abgerufen am 24 Oktober 2023 Abgerufen von https de wikipedia org w index php title DirectX amp oldid 238475457 DirectX 10