Direct3D

Direct3D

Direct3D ist eine Programmierschnittstelle (API) von Microsoft für 3D-Computergrafik. Direct3D ist ein Bestandteil von DirectX. Das 1992 von Servan Keondjian gegründete Unternehmen RenderMorphic wurde im Jahre 1995 von Microsoft gekauft, um dessen 3D-API Reality Labs zu Direct3D weiterzuentwickeln und 1996 in DirectX 2.0 zu integrieren. Keondjian leitete die Arbeiten und Doug Rabson agierte als Chefentwickler des Microsoft-Teams, das die 3D-API für Windows 95 entwickelte. Nach der Fertigstellung verließen Keondjian und Rabson das Unternehmen.

Direct3D dient dazu, Windows-Anwendungen einen möglichst direkten Zugriff auf die Hardware eines Computers zu geben. Häufig verwendet wird Direct3D vor allem für Computerspiele, bei dem es mit dem plattform- und betriebssystemunabhängigen OpenGL konkurriert. Direct3D verwendet ein linkshändiges Koordinatensystem, und unterscheidet sich in diesem Punkt grundlegend von OpenGL.

Die lange Zeit eigenständige Programmierschnittstelle DirectDraw zur Programmierung von 2D-Computergrafik wurde mit DirectX 8.0 in Direct3D integriert.

Einige Grafikkarten, z. B. die ältere Matrox Graphics Millennium G200 AGP, können nur 3-dimensionale Grafik wiedergeben, wenn Direct3D installiert ist.

Für die Grafikausgabe existiert in Windows neben Direct3D auch das Graphics Device Interface (GDI). Das GDI stellt eine abstrahierte Programmierschnittstelle zur Verfügung, bei der es für den Programmierer etwa wenig Unterschied macht, ob gerade auf einen Bildschirm oder auf einen Drucker gezeichnet wird. Diese Abstraktion macht die Ausgabe selbst allerdings deutlich langsamer, unter anderem deshalb, weil das GDI komplexe Zeichenbefehle aus Grundoperationen nachbilden muss. Im Gegensatz zu Direct3D kommt das GDI daher vorrangig zur Darstellung gewöhnlicher Desktopapplikationen zum Einsatz, die nicht allzu grafik-intensiv sind.

Mit Direct3D können Anwendungen dagegen an GDI vorbei direkt auf die Hardware zugreifen. Wenn ein Gerät einen komplexeren Befehl nicht unterstützt, so gibt Direct3D lediglich eine Fehlermeldung zurück. Es ist dann Aufgabe der Anwendung, auf diese Fehlermeldung adäquat zu reagieren - etwa durch Nachbildung des Befehls aus Grundoperationen, durch weniger detailgetreue Darstellung oder durch eine Fehlermeldung an den Anwender.

Verschiedene Grafikkarten unterstützen Direct3D durch Gerätetreiber, welche die standardisierten API-Befehle von Direct3D auf die Grafikhardware abbilden. Dabei unterscheidet Direct3D zwischen initialisierenden und ausführenden Befehlen. Initialisierende Befehle konvertieren komplexere Datenstrukturen - wie etwa Texturen - in das grafikkarten-spezifische Format, ausführende Befehle zeigen die derart konvertierten Elemente an. Da das Initialisieren und Konvertieren von Elementen einige Zeit in Anspruch nehmen kann, ist es bei Spielen üblich, dies während des Ladens eines neuen Levels zu tun. Ausführende Befehle sind dagegen auf größtmögliche Geschwindigkeit optimiert.

Moderne Grafikkarten stellen so genannte Hardware-Shader zur Verfügung. Diese Shader sind ausführbare Mini-Programme, welche zum Erzeugen von 3D-Effekten benutzt werden. Für die Programmierung der Shader definierte Microsoft eine eigene Maschinensprache, die von den beiden derzeit führenden Produzenten von Grafikchips, NVIDIA und ATI in ihren Chips überwiegend direkt unterstützt werden. Direct3D erlaubt es, die verfügbaren Shader-Typen (Vertex-Shader, Pixel-Shader und Geometry-Shader), anzusteuern.

Unterstützte Plattformen

Die ersten Versionen von Direct3D wurden für Windows 95 entwickelt. Für die Windows-NT-Linie wurde Direct3D Version 5 und aufwärts Windows 2000 verfügbar gemacht, bis DirectX 3.0 wurde eine Unterstützung via Service Packs realisiert. Die derzeit aktuelle Windows-Version von Direct3D ist Version 11, diese wird jedoch genauso wie Directx 10 nur in Windows Vista und Windows 7 unterstützt. Die weiterhin verfügbare Version 9.0c unterstützt sowohl die Nachfolger von Windows 95 als auch - mit Windows XP - die NT-Linie.

Die von Microsoft produzierten Spielkonsolen Xbox und Xbox 360 werden ebenfalls mit Varianten von Direct3D programmiert. Neben diesen beiden von Microsoft offiziell unterstützten Plattformen existieren mit Cedega und Wine zwei Implementierungen des Direct3D-APIs für Linux. Auch Sega Dreamcast war kompatibel zu Direct3D.

Siehe auch

Literatur

  • Uli Theuerjahr: Direct3D Real Time Rendering für Computerspiele. DirectX-Programmierung in C++. Roulio Press, Schönberg 2007, ISBN 978-3-00-022340-2.

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Direct3D — is part of Microsoft s DirectX API. Direct3D is only available for Microsoft s various Windows operating systems (Windows 95 and above) and is the base for the graphics API on the Xbox and Xbox 360 console systems. Direct3D is used to render… …   Wikipedia

  • Direct3D — Saltar a navegación, búsqueda Direct3D es parte de DirectX, una API propiedad de Microsoft disponible tanto en los sistemas Windows de 32 y 64 bits, como para sus consolas Xbox y Xbox 360 para la programación de gráficos 3D. El objetivo de esta… …   Wikipedia Español

  • Direct3D — est une bibliothèque logicielle de la série Microsoft DirectX. Direct3D est utilisé uniquement dans les multiples systèmes d exploitations Windows de Microsoft (Windows 95 et au delà), ainsi que dans la Xbox, mais dans une version assez… …   Wikipédia en Français

  • Direct3D — es una API propiedad de Microsoft y disponible en los sistemas Windows de 32 bits, para la programación de gráficos en 3D. Análoga de la API OpenGL. Esta API facilita el manejo y trazado de entidades gráficas elementales en cualquier aplicación… …   Enciclopedia Universal

  • Direct3D — Direct3D,   DirectX …   Universal-Lexikon

  • Direct3D 11 — Стиль этой статьи неэнциклопедичен или нарушает нормы русского языка. Статью следует исправить согласно стилистическим правилам Википедии. Direct3D 11 (D3D11)  компонент интерфейса программирования приложений (англ.  …   Википедия

  • Direct3D 10 — Для улучшения этой статьи желательно?: Викифицировать статью. Переработать оформление в соответствии с правилами написания статей. Исправить статью согласно стилистическим правилам Википедии …   Википедия

  • Direct3D — …   Википедия

  • Microsoft Direct3D — Direct3D is part of Microsoft s DirectX application programming interface (API). Direct3D is available for Microsoft Windows operating systems (Windows 95 and above), and for other platforms through the open source software Wine. It is the base… …   Wikipedia

  • Comparison of OpenGL and Direct3D — Direct3D and OpenGL are competing application programming interfaces (APIs) which can be used in applications to render 2D and 3D computer graphics, taking advantage of hardware acceleration when available. Modern graphics processing unit (GPUs)… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”