www.wikidata.de-de.nina.az
Direct3D ist eine Programmierschnittstelle API von Microsoft fur 3D Computergrafik Direct3D ist ein Bestandteil von DirectX Das 1992 von Servan Keondjian gegrundete 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 fur Windows 95 entwickelte Nach der Fertigstellung verliessen Keondjian und Rabson das Unternehmen PipelineDirect3D dient dazu Windows Anwendungen einen moglichst direkten Zugriff auf die Hardware eines Computers zu geben Haufig verwendet wird Direct3D vor allem fur Computerspiele bei dem es mit dem plattform und betriebssystemunabhangigen OpenGL konkurriert Direct3D verwendet anders als OpenGL ein linkshandiges Koordinatensystem Die lange Zeit eigenstandige Programmierschnittstelle DirectDraw zur Programmierung von 2D Computergrafik wurde mit DirectX 8 0 in Direct3D integriert Fur die Grafikausgabe existiert in Windows neben Direct3D auch das Graphics Device Interface GDI Das GDI stellt eine abstrahierte Programmierschnittstelle zur Verfugung bei der es fur den Programmierer etwa wenig Unterschied macht ob 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 gewohnlicher Desktopapplikationen zum Einsatz die nicht allzu grafik intensiv sind Mittlerweile existieren auch weitere Grafikschnittstellen in Windows wie z B GDI oder Direct2D Mit Direct3D konnen Anwendungen dagegen an GDI vorbei direkt auf die Hardware zugreifen Wenn ein Gerat einen komplexeren Befehl nicht unterstutzt so gibt Direct3D lediglich eine Fehlermeldung zuruck Es ist dann Aufgabe der Anwendung auf diese Fehlermeldung adaquat zu reagieren etwa durch Nachbildung des Befehls aus Grundoperationen durch weniger detailgetreue Darstellung oder durch eine Fehlermeldung an den Anwender Verschiedene Grafikkarten unterstutzen Direct3D durch Geratetreiber welche die standardisierten API Befehle von Direct3D auf die Grafikhardware abbilden Dabei unterscheidet Direct3D zwischen initialisierenden und ausfuhrenden Befehlen Initialisierende Befehle konvertieren komplexere Datenstrukturen wie etwa Texturen in das grafikkarten spezifische Format ausfuhrende Befehle zeigen die derart konvertierten Elemente an Da das Initialisieren und Konvertieren von Elementen einige Zeit in Anspruch nehmen kann ist es bei Spielen ublich dies wahrend des Ladens eines neuen Levels zu tun Ausfuhrende Befehle sind dagegen auf grosstmogliche Geschwindigkeit optimiert Moderne Grafikkarten stellen so genannte Hardware Shader zur Verfugung Diese Shader sind ausfuhrbare Mini Programme welche zum Erzeugen von 3D Effekten benutzt werden Fur die Programmierung der Shader definierte Microsoft eine eigene Maschinensprache die von den beiden derzeit fuhrenden Produzenten von Grafikchips NVIDIA und AMD in ihren Chips uberwiegend direkt unterstutzt werden Heutzutage werden aber vorwiegend Hochsprachen wie HLSL oder GLSL zur Shader Programmierung genutzt Direct3D erlaubt es die verfugbaren Shader Typen Vertex Shader Pixel Shader und Geometry Shader anzusteuern Folgende Teile dieses Abschnittes scheinen seit 2014 nicht mehr aktuell zu sein Feature Level 12 1 ist bereits definiert Der englischsprachige Artikel ist weitaus ausfuhrlicher Eine Ubersetzung wurde sich anbieten Bitte hilf uns dabei die fehlenden Informationen zu recherchieren und einzufugen Wikipedia WikiProjekt Ereignisse Vergangenheit fehlend Inhaltsverzeichnis 1 Unterstutzte Plattformen 2 Feature levels 3 Siehe auch 4 Literatur 5 EinzelnachweiseUnterstutzte Plattformen BearbeitenDie ersten Versionen von Direct3D wurden fur Windows 95 entwickelt Die derzeit aktuelle Windows Version von Direct3D ist Version 12 x diese wird jedoch genauso wie Direct3D 10 nur in Windows Vista und Windows 7 sowie zusatzlich Windows 8 in neueren Unterversionen unterstutzt Die weiterhin verfugbare Version 9 0c unterstutzt 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 unterstutzten Plattformen existieren mit Cedega und Wine zwei Implementierungen des Direct3D APIs fur Linux Auch die Sega Dreamcast war kompatibel zu Direct3D Feature levels BearbeitenMit Direct3D 10 1 wurde das Konzept der feature levels eingefuhrt 1 2 9 1 9 2 9 3 10 0 10 1 11 0 11 1 12 0 12 1Shader Modell 2 0 2 0 4 0 4 0 level 9 3 4 0 4 x 5 0 5 0 5 1 5 1Geometry Shader nein nein nein ja ja ja ja ja jaStream Out nein nein nein ja ja ja ja ja jaDirectCompute Compute Shader nein nein nein teils teils ja ja ja jaHull Shader nein nein nein nein nein ja ja ja jaDomain Shader nein nein nein nein nein ja ja ja jaTiled Resources nein nein nein nein nein teils teils Tier2 Tier2Conservative Rasterization nein nein nein nein nein nein teils teils Tier1Rasterizer Order Views nein nein nein nein nein nein teils teils jaMin Max Filters nein nein nein nein nein nein teils teils jaMap Default Buffer nein nein nein nein nein teils teils teils teilsTexture Resource Array nein nein nein ja ja ja ja ja jaCubemap Resoure Arrays nein nein nein nein ja ja ja ja jaBC4 BC5 Kompression nein nein nein ja ja ja ja ja jaBC6H BC7 Kompression nein nein nein nein nein ja ja ja jaAlpha to Coverage nein nein nein ja ja ja ja ja jaErweiterte Formate ja ja ja teils teils ja ja ja ja10 bit pro Farbkanal nein nein nein teils teils ja ja ja jaLogische Operationen Output Merger nein nein nein teils teils teils ja ja jaRasterisierung unabhangig vom Target nein nein nein nein nein nein ja ja jaMultiple Render Target MRT mit ForcedSampleCount 1 nein nein nein teils teils teils ja ja jaUnordered Access View UAV Slots 1 1 8 64 64 64UAV in jeder Stage nein nein nein nein nein nein ja ja jamax ForcedSampleCount beim nur UAV Rendern 8 16 16 16Constant Buffer Offsets und teilweise Aktualisierungen ja ja ja teils teils teils ja ja jaFormate mit 16 Bit pro Pixel teils teils teils teils teils teils ja ja jamax Texturgrosse 2048 2048 4096 8192 8192 16384 16384 16384 16384max Cubemapgrosse 512 512 4096 8192 8192 16384 16384 16384 16384max Volumenausbreitung 256 256 256 2048 2048 2048 2048 2048 2048max Texturwiederholungen 128 2048 8192 8192 8192 16384 16384 16384 16384max Anisotropie 2 16 16 16 16 16 16 16 16max Anzahl Primitive 2 16 1 displaystyle 2 16 1 nbsp 2 20 1 displaystyle 2 20 1 nbsp 2 20 1 displaystyle 2 20 1 nbsp 2 32 1 displaystyle 2 32 1 nbsp 2 32 1 displaystyle 2 32 1 nbsp 2 32 1 displaystyle 2 32 1 nbsp 2 32 1 displaystyle 2 32 1 nbsp 2 32 1 displaystyle 2 32 1 nbsp 2 32 1 displaystyle 2 32 1 nbsp max Input Slots 16 16 16 16 32 32 32 32 32Render Targets simultan 1 1 4 8 8 8 8 8 8Occlusion Queries nein ja ja ja ja ja ja ja jaSeparater Alpha Blend nein ja ja ja ja ja ja ja jaMirror Once nein ja ja ja ja ja ja ja jaUberlappende Vertex Elemente nein ja ja ja ja ja ja ja jaUnabhangige Write Masks nein nein ja ja ja ja ja ja jaInstancing nein nein ja ja ja ja ja ja jaTexturen die kein Vielfaches von 2 darstellen nein nein nein ja ja ja ja ja jaConstant Buffer nein nein nein ja ja ja ja ja jamax Anzahl Constant Buffer je Shader 15 15 15 15 15 15max Anzahl Konstanten im Constant Buffer 4096 4096 4096 4096 4096 4096Index Buffer Formate 16 bit 16 bit 32 bit 16 bit 32 bit 16 bit 32 bit 16 bit 32 bit 16 bit 32 bit 16 bit 32 bit 16 bit 32 bit 16 bit 32 bitSiehe auch BearbeitenGlide OpenGL AMD MantleLiteratur BearbeitenUli Theuerjahr Direct3D Real Time Rendering fur Computerspiele DirectX Programmierung in C Roulio Press Schonberg 2007 ISBN 978 3 00 022340 2 Einzelnachweise Bearbeiten Direct3D feature levels MSDN abgerufen am 30 September 2014 Feature Level In indiedev de Archiviert vom Original am 6 Oktober 2014 abgerufen am 25 Juni 2020 Abgerufen von https de wikipedia org w index php title Direct3D amp oldid 204014457