Microsoft Direct3D

Direct3D ist ein Teil der Anwendung, Schnittstelle programmierend (API) von DirectX des Microsofts. Direct3D ist für Windows von Microsoft Betriebssysteme (Windows 95 und oben), und für andere Plattformen durch den offenen Quellsoftwarewein verfügbar. Es ist die Basis für die Grafik-API auf Xbox und Xbox 360 Konsole-Systeme. Direct3D wird verwendet, um dreidimensionale Grafik in Anwendungen zu machen, wo Leistung wie Spiele wichtig ist. Direct3D erlaubt auch Anwendungen, fullscreen statt des eingebetteten in einem Fenster zu führen, obwohl sie noch in einem Fenster, wenn programmiert, für diese Eigenschaft laufen können. Direct3D verwendet Hardware-Beschleunigung, wenn es auf der Grafikkarte verfügbar ist, Hardware-Beschleunigung der kompletten 3D-Übergabe-Rohrleitung oder sogar nur teilweise Beschleunigung berücksichtigend. Direct3D stellt die fortgeschrittenen Grafikfähigkeiten zur 3D-Grafikhardware, einschließlich Z-Pufferung, Antialiasings, Alpha-Mischens, mipmapping, atmosphärischer Effekten und perspektiverichtiger kartografisch darstellender Textur aus. Die Integration mit anderen Technologien von DirectX ermöglicht Direct3D, solche Eigenschaften zu liefern, wie, Hardware 3D-Übergabe in 2. Bedeckungsflugzeugen und sogar Elfen Video-kartografisch darzustellen, den Gebrauch der 2. und 3D Grafik in interaktiven Mediatiteln zur Verfügung stellend.

Direct3D ist eine 3D-API. D. h. es enthält viele Befehle für die 3D-Übergabe; jedoch, da Version 8, Direct3D das alte Fachwerk von DirectDraw ersetzt und auch Verantwortung für die Übergabe der 2. Grafik übernommen hat. Microsoft müht sich, ständig Direct3D zu aktualisieren, um die letzte auf 3D-Grafikkarten verfügbare Technologie zu unterstützen. Direct3D bietet vollen Scheitelpunkt-Softwarewetteifer, aber keinen Pixel-Softwarewetteifer für in der Hardware nicht verfügbare Eigenschaften an. Zum Beispiel, wenn Software das Verwenden programmiert hat, verlangt Direct3D Pixel shaders, und die Videokarte auf dem Computer des Benutzers unterstützt diese Eigenschaft nicht, Direct3D wird damit nicht wetteifern, obwohl es schätzen und die Vielecke und Texturen der 3D-Modelle, obgleich an einer gewöhnlich erniedrigten Qualität und Leistung im Vergleich zur gleichwertigen Hardware machen wird. Die API schließt wirklich eine Verweisung Rasterizer ein (oder BEZÜGLICH des Geräts), der mit einer allgemeinen Grafikkarte in der Software wetteifert, obwohl es für die meisten Echtzeit-3D-Anwendungen zu langsam ist und normalerweise nur für das Beseitigen verwendet wird. Eine neue Echtzeitsoftware rasterizer, VERZIEHEN, bestimmt, um mit ganzer Merkmalsreihe von Direct3D 10.1 wettzueifern, wird mit Windows 7 eingeschlossen; wie man sagt, ist seine Leistung gleichwertig mit dem niedrigeren Ende 3D-Karten auf Mehrkernzentraleinheiten.

Direct3D's Hauptmitbewerber ist OpenGL. Es gibt viele Eigenschaften und Probleme, dass Befürworter jeder API nicht übereinstimmen, Vergleich von OpenGL und Direct3D für eine Zusammenfassung sehen.

Geschichte

1992 hat Servan Keondjian eine Gesellschaft genannt RenderMorphics angefangen, der eine 3D-Grafik-API genannt das Wirklichkeitslaboratorium entwickelt hat, das in der medizinischen Bildaufbereitung und CAD-Software verwendet wurde. Zwei Versionen dieser API wurden veröffentlicht. Microsoft hat RenderMorphics im Februar 1995 gekauft, Keondjian an Bord dazu bringend, einen 3D-Grafikmotor für Windows 95 durchzuführen. Das ist auf die erste Version von Direct3D hinausgelaufen, der sich in DirectX 2.0 und DirectX 3.0 eingeschifft hat.

Am Anfang durchgeführter Direct3D "hat Weise" und "unmittelbare Weise" 3D APIs behalten. Die behaltene Weise war eine COM-basierte Szene-Graph-API, die wenig Adoption erreicht hat. Spielentwickler haben nach direkterer Kontrolle der Tätigkeiten der Hardware geschrien, als behaltene Weise des Direct3D zur Verfügung stellen konnte. Nur zwei Spiele, die ein bedeutendes Volumen, die Insel Lego und Lego Rock Raiders verkauft haben, haben auf der behaltenen Weise des Direct3D basiert, so hat Microsoft die behaltene Weise nach DirectX 3.0 nicht aktualisiert.

Die erste Version der Direct3D unmittelbaren Weise hat auf basiert "führen Puffer durch", Modell programmierend, dass Microsoft gehofft hat, dass Hardware-Verkäufer direkt unterstützen würden. Führen Sie Puffer durch waren beabsichtigt, um im Hardware-Gedächtnis zugeteilt und durch die Hardware grammatisch analysiert zu werden, um die 3D-Übergabe durchzuführen. Sie waren zum Programm äußerst ungeschickt, jedoch Adoption der neuen API hindernd und Aufrufe nach Microsoft stimulierend, um OpenGL als die offizielle 3D-Übergabe-API für Spiele sowie Arbeitsplatz-Anwendungen anzunehmen. (sieh OpenGL dagegen. Direct3D)

Anstatt OpenGL als eine spielende API anzunehmen, hat Microsoft beschlossen fortzusetzen, Direct3D zu verbessern, nicht nur mit OpenGL konkurrenzfähig zu sein, aber sich effektiver mit Eigentums-APIs solcher als 3dfx's Gleiten zu bewerben. Eine Mannschaft in Redmond hat Entwicklung der Direct3D Unmittelbaren Weise übernommen, während die Mannschaft von RenderMorphics von Servan Arbeit an der Behaltenen Weise fortgesetzt hat.

Direct3D 5 bis 9

Direct3D 5.0 hat die API von DrawPrimitive eingeführt, die das Bedürfnis nach Anwendungen auf die Konstruktion beseitigt hat, führen Puffer durch.

Direct3D 6.0 eingeführte zahlreiche Eigenschaften, um zeitgenössische Hardware (wie Mehrtextur und Matrize-Puffer) sowie optimierte Geometrie-Rohrleitungen für x87, SSE und 3DNow zu bedecken! und fakultatives Textur-Management, um Programmierung zu vereinfachen. Direct3D 6.0 hat auch Unterstützung für Eigenschaften eingeschlossen, die von Microsoft von spezifischen Hardware-Verkäufern für die Einschließung in die API als Entgelt für den Vorteil der Zeit zum Markt für den Genehmigen-Verkäufer lizenziert worden waren. S3 Textur-Kompressionsunterstützung war eine solche Eigenschaft, umbenannt als DXTC zum Zwecke der Einschließung in die API. Ein anderer war die Eigentumsbeule-Technik der kartografisch darstellenden von TriTech. Microsoft hat diese Eigenschaften in DirectX eingeschlossen, dann hat sie zu den für Fahrer erforderlichen Voraussetzungen hinzugefügt, um zu veranlassen, dass ein Windows-Firmenzeichen breite Adoption der Eigenschaften in der Hardware anderer Verkäufer gefördert hat.

Direct3D 7.0 hat das.dds Textur-Format eingeführt, und Unterstützung dafür verwandeln sich und sich entzündende Hardware-Beschleunigung (zuerst verfügbar auf der PC-Hardware mit GeForce von NVIDIA), sowie die Fähigkeit, Scheitelpunkt-Puffer im Hardware-Gedächtnis zuzuteilen. Hardware-Scheitelpunkt-Puffer vertreten die erste substantivische Verbesserung über OpenGL in der Geschichte von DirectX. Direct3D 7.0 hat auch Unterstützung von DirectX für die multitexturing Hardware vermehrt, und vertritt den Gipfel von Mehrtextur-Rohrleitungseigenschaften der festen Funktion: Obwohl stark, wurde es so kompliziert, um das zu programmieren, ein neues Programmiermodell war erforderlich, um die allmählich übergehenden Fähigkeiten zur Grafikhardware auszustellen.

Direct3D 8.0 hat programmability in der Form des Scheitelpunkts und Pixels shaders eingeführt, Entwicklern ermöglichend, Code zu schreiben, ohne sich über den überflüssigen Hardware-Staat zu sorgen. Die Kompliziertheit der shader Programme hat von der Kompliziertheit der Aufgabe abgehangen, und der Anzeigefahrer hat jene shaders zu Instruktionen kompiliert, die durch die Hardware verstanden werden konnten. Direct3D 8.0 und seine programmierbaren allmählich übergehenden Fähigkeiten waren die erste Hauptabfahrt von einer OpenGL-artigen Architektur der festen Funktion, wo Zeichnung von einer komplizierten Zustandmaschine kontrolliert wird. Direct3D 8.0 hat auch DirectDraw als eine getrennte API beseitigt. Direct3D hat alle restlichen API-Anrufe von DirectDraw untergeordnet, die noch für die Anwendungsentwicklung wie Gegenwart erforderlich sind , die Funktion hat gepflegt, Übergabe-Ergebnisse zu zeigen.

Wie man

betrachtete, war Direct3D, aber bezüglich der Version 8.1 von DirectX nicht benutzerfreundlich, viele Brauchbarkeitsprobleme wurden aufgelöst. Direct3D 8 hat viele starke 3D-Grafikeigenschaften, wie Scheitelpunkt shaders, Pixel shaders, Nebel, Beule kartografisch darstellend und kartografisch darstellende Textur enthalten.

Direct3D 9.0 hat eine neue Version der Shader Hohen Sprache, Unterstützung für Schwimmpunkt-Textur-Formate hinzugefügt, Vielfach Machen Ziele und Textur lookups im Scheitelpunkt shader. Eine Erweiterung, die nur in der Windows-Aussicht verfügbar ist, genannt Direct3D 9Ex (vorher versioned 9.0L), erlaubt den Gebrauch der Vorteile, die durch die Windows-Aussicht Windows Display Driver Model (WDDM) angeboten sind, und wird für Luft-Windows verwendet. Direct3D 9Ex, in Verbindung mit DirectX 9 Klasse WDDM Fahrer erlauben Grafikgedächtnis, virtualized und paginiert zum Systemgedächtnis zu sein, erlaubt Grafikoperationen, unterbrochen und vorgesehen zu werden und Oberflächen von DirectX zu erlauben, über Prozesse geteilt zu werden. Direct3D 9.0Ex war vorher als Version 1.0 von Windows Graphics Foundation (WGF) bekannt.

Direct3D 10

Windows-Aussicht schließt eine Hauptaktualisierung zur Direct3D API ein. Ursprünglich genannter WGF 2.0 (Windows-Grafikfundament 2.0), dann DirectX 10 und DirectX dann Direct3D 10 Eigenschaften ein aktualisiertes shader Modell 4.0 und fakultative Unterbrechbarkeit für shader Programme.. In diesem Modell shaders bestehen noch aus festen Stufen als auf vorherigen Versionen, aber alle Stufen unterstützen eine fast vereinigte Schnittstelle, sowie ein vereinigtes Zugriffsparadigma für Mittel wie Texturen und shader Konstanten. Die Sprache selbst ist erweitert worden, um, einschließlich Operationen der ganzen Zahl, einer sehr vergrößerten Instruktionszählung und mehr einer c Sprache ähnlicher Konstruktionen ausdrucksvoller zu sein. Zusätzlich zum vorher verfügbaren Scheitelpunkt und Pixel shader Stufen schließt die API eine Geometrie shader Bühne ein, die das alte Modell eines Scheitelpunkts in/ein dem Scheitelpunkt bricht, um Geometrie zu erlauben, wirklich aus einem shader erzeugt zu werden, komplizierte völlig auf der Grafikhardware zu erzeugende Geometrie berücksichtigend.

Windows XP unterstützt DirectX 10 und oben nicht.

Verschieden von vorherigen Versionen der API, Direct3D 10 nicht mehr Gebrauch "Fähigkeitsbit" (oder "Kappen"), um anzuzeigen, welche Eigenschaften auf einem gegebenen Grafikgerät unterstützt werden. Statt dessen definiert es einen minimalen Standard von Hardware-Fähigkeiten, die für ein Anzeigesystem unterstützt werden müssen, um "Direct3D 10 vereinbare" zu sein. Das ist eine bedeutende Abfahrt mit der Absicht, Anwendungscode durch das Entfernen des Fähigkeit überprüfenden Codes und der speziellen Fälle zu rationalisieren, die auf der Anwesenheit oder Abwesenheit von spezifischen Fähigkeiten gestützt sind.

Weil Direct3D 10 Hardware war nach der anfänglichen Ausgabe der Windows-Aussicht und wegen der massiven installierten Basis von non-Direct3D 10 vereinbare Grafikkarten, die ersten Direct3D vereinbaren mit 10 Spiele noch verhältnismäßig selten, Direct3D 9 zur Verfügung stellen, machen Pfade. Beispiele solcher Titel sind Spiele, die ursprünglich für Direct3D 9 geschrieben sind und zu Direct3D 10 nach ihrer Ausgabe, wie Gesellschaft von Helden oder Spiele ursprünglich getragen sind, die für Direct3D 9 mit einem Direct3D 10 Pfad retrofitted später in der Entwicklung, solcher als oder Crysis entwickelt sind.

DirectX 10 SDK ist verfügbar im Februar 2007 geworden.

Neue Eigenschaften:

  • Feste Rohrleitungen werden für völlig programmierbare Rohrleitungen beseitigt (häufig gekennzeichnet als vereinigte Rohrleitungsarchitektur), der programmiert werden kann, um mit demselben wettzueifern.
  • Neuer Zustandgegenstand (größtenteils) der Zentraleinheit zu ermöglichen, Staaten effizient zu ändern.
  • Modell 4.0 von Shader erhöht den programmability der Grafikrohrleitung. Es fügt Instruktionen für die ganze Zahl und bitwise Berechnungen hinzu.
  • Geometrie shaders, die an angrenzenden Dreiecken arbeiten, die ein Ineinandergreifen bilden.
  • Textur-Reihe ermöglicht, von Texturen in GPU ohne Zentraleinheitseingreifen zu tauschen.
  • Behauptete Übergabe erlaubt, Anrufe zu ziehen, gestützt auf einigen anderen Bedingungen ignoriert zu werden. Das ermöglicht das schnelle Verstopfungsauswählen, das Gegenstände hindert, gemacht zu werden, wenn es nicht sichtbar oder zu weit ist, um sichtbar zu sein.
  • 2.0 Unterstützung als Beispiel anführend, vielfache Beispiele des ähnlichen Ineinandergreifens, wie Armeen, oder Gräser oder Bäume erlaubend, um in einem einzelnen Attraktionsanruf gemacht zu werden, die Verarbeitungszeit reduzierend, die für vielfache ähnliche Gegenstände zu diesem eines einzelnen erforderlich ist.

Direct3D 10.1

Direct3D 10.1 wurde von Microsoft kurz nach der Ausgabe von Direct3D 10 als eine geringe Aktualisierung bekannt gegeben. Die Spezifizierung wurde mit der Ausgabe des Novembers 2007 DirectX beendet SDK und die Durchlaufzeit wurden mit der Windows-Aussicht SP1 verladen, der seit der Mitte des Märzes 2008 verfügbar ist.

Direct3D 10.1 Sätze noch einige Bildqualitätsstandards für Grafikverkäufer, und gibt Entwicklern mehr Kontrolle über die Bildqualität. Eigenschaften schließen feinere Kontrolle über das Antialiasing (sowohl Mehrstichprobenerhebung als auch Superstichprobenerhebung mit pro Beispielschattierung und Anwendungskontrolle über die Beispielposition) und mehr flexibilities zu einigen der vorhandenen Eigenschaften (cubemap Reihe und unabhängige verschmelzende Weisen) ein. Direct3D 10.1 Niveau-Hardware muss die folgenden Eigenschaften unterstützen:

Verschieden von Direct3D 10, der ausschließlich Direct3D 10-Klassen-Hardware- und Treiber-Schnittstellen, Direct3D verlangt hat, kann 10.1 Durchlaufzeit auf Direct3D 10.0 Hardware mit einem Konzept von "Eigenschaft-Niveaus" führen, aber neue Eigenschaften werden exklusiv durch die neue Hardware unterstützt.

Die einzigen verfügbaren Direct3D 10.1 Hardware bezüglich des Junis 2008 waren der Radeon HD 3000 Reihen und Radeon HD 4000 Reihen von ATI; 2009 wurden sie durch Chrom 430/440GT GPUs von der S3 Grafik und den ausgesuchten Modellen des niedrigeren Endes in GeForce 200 Reihen von Nvidia angeschlossen. 2011 hat Intel chipsets angefangen, Direct3D 10.1 mit der Einführung der HD Grafik 2000 (GMA HD) zu unterstützen.

Direct3D 11

Direct3D 11 wurde als ein Teil von Windows 7 veröffentlicht. Es wurde an Gamefest 2008 am 22. Juli 2008 präsentiert und hat an Nvision 08 technische Konferenz am 26. August 2008 demonstriert. AMD hat das Arbeiten DirectX11 Hardware an Computex am 3. Juni 2009 vorher angesehen, einen DirectX 11 SDK Proben führend. Seine Eigenschaften schließen ein:

  • Tessellation - um an der Durchlaufzeit die Zahl von sichtbaren Vielecken von einem niedrigen Detail polygonales Modell zu steigern
  • Mehrgewindeübergabe - um zu demselben Direct3D Gerät zu machen, protestiert von verschiedenen Fäden für Vielkernzentraleinheiten
  • Schätzen Sie shaders - der die shader Rohrleitung für nichtgrafische Aufgaben wie Strom-Verarbeitung und Physik-Beschleunigung ausstellt, die im Geist dazu ähnlich ist, was OpenCL, Nvidia CUDA, ATI Strom, und HLSL Shader Modell 5 unter anderen erreicht.

Andere bemerkenswerte Eigenschaften sind die Hinzufügung zwei neuer Textur-Kompressionsalgorithmen für die effizientere Verpackung der hohen Qualität und HDR/alpha Texturen und eines vergrößerten geheimen Textur-Lagers.

Der Direct3D 11 Durchlaufzeit ist im Stande, auf Direct3D 9 und 10.x-Klassenhardware und Treiber zu laufen, die Funktionalität ausbreitend, die zuerst in Direct3D 10.1 Durchlaufzeit eingeführt ist. Eigenschaft-Niveaus 9_1, 9_2 und 9_3 fassen verschiedene Eigenschaften von populärem Direct3D 9 Karten kurz zusammen, und zeigen Niveaus 10_0 und 10_1 beziehen sich auf Direct3D 10 und 10.1 beziehungsweise; jedes obere Niveau ist eine strenge Obermenge einer niedrigeren Ebene. Eigenschaft-Niveaus erlauben Entwicklern, die Übergabe-Rohrleitung unter Direct3D 11 API zu vereinigen und von API-Verbesserungen solches so besseres Quellenmanagement und Nebenläufigkeit sogar auf Einstufungskarten Gebrauch zu machen, obwohl fortgeschrittene Eigenschaften wie neue shader Modelle und Übergabe-Stufen nur auf der-Niveau-Hardware ausgestellt werden.

Tessellation wurde früher für Direct3D 10 betrachtet, aber wurde später verlassen. GPUs wie Radeon R600 zeigen einen tessellation Motor, der mit Direct3D 9/10/10.1 und OpenGL verwendet werden kann, aber es ist mit Direct3D 11 (gemäß Microsoft) nicht vereinbar. Ältere Grafikhardware wie Radeon 8xxx, GeForce 3/4 hatte Unterstützung für eine andere Form von tesselation (RT Flecke, N Flecke), aber jene Technologien haben nie wesentlichen Gebrauch gesehen. Als solcher war ihre Unterstützung von der neueren Hardware fallen gelassen.

Microsoft hat auch von anderen Eigenschaften wie Ordnung unabhängige Durchsichtigkeit angedeutet, die durch die Direct3D API nie ausgestellt, aber fast durchsichtig durch die frühe Direct3D Hardware wie die Linie von PowerVR von Videologic von Chips unterstützt wurde.

Der Direct3D 11 Technische Vorschau ist in die Ausgabe im November 2008 von DirectX SDK eingeschlossen worden.

Zuerst gesehen im Ausgabe-Kandidaten Version integriert Windows 7 den ersten veröffentlichten Direct3D 11 Unterstützung. Windows-Aussicht-Plattform-Aktualisierung schließt voll gezeigten Direct3D 11 Durchlaufzeit und DXGI 1.1 Aktualisierung, sowie andere zusammenhängende Bestandteile von Windows 7 wie VERZIEHEN, Direct2D, DirectWrite und WIC ein.

Direct3D 11.1

Direct3D 11.1 ist eine Aktualisierung zur API, die sich mit Windows 8 am Anfang einschiffen wird. Die Direct3D Durchlaufzeit in Windows 8 zeigt DXGI 1.2 und verlangt neuen WDDM 1.2 Gerät-Fahrer.

Die einleitende Version von Windows SDK für die Entwickler-Vorschau des Windows 8 wurde am 13. September 2011 veröffentlicht. Die neue API zeigt Shader-Nachforschung, Unterstützung für das Videoplay-Back, shader Verarbeitung von Videomitteln und das Tauschen während der Übertragung zwischen Direct3D 10 und 11 Zusammenhänge und Eigenschaft-Niveaus. Direct3D 11.1 auch Eigenschaften geringe Aktualisierungen in die shader Sprache, wie größere unveränderliche Puffer und fakultative Instruktionen der doppelten Genauigkeit, sowie verbesserte verschmelzende Weisen und obligatorische Unterstützung für 16-Bit-Farbe formatiert, um die Leistung der Einstufung GPUs wie Intel HD Graphics zu verbessern.

Architektur

Direct3D ist ein Subsystem-Bestandteil von Microsoft DirectX API. Das Ziel von Direct3D ist, die Kommunikation zwischen einer Grafikanwendung und den Grafikhardware-Fahrern zu abstrahieren. Es wird wie eine dünne abstrakte Schicht an einem mit GDI vergleichbaren Niveau präsentiert (sieh beigefügtes Diagramm). Direct3D enthält zahlreiche Eigenschaften, an denen GDI Mangel hat.

Direct3D ist eine Unmittelbare Weise-Grafik-API. Es stellt eine auf niedriger Stufe Schnittstelle jeder Videokarte 3D-Funktion (Transformationen, Ausschnitt, Beleuchtung, Materialien, Texturen, Tiefe zur Verfügung, die und so weiter puffert). Es hatte auch ein höheres Niveau Behaltener Weise-Bestandteil, der jetzt offiziell unterbrochen worden ist.

Direct3D unmittelbare Weise präsentiert drei Hauptabstraktionen: Geräte, Mittel und Tausch-Ketten (sieh beigefügtes Diagramm). Geräte sind dafür verantwortlich, die 3D-Szene zu machen. Sie versorgen eine Schnittstelle mit verschiedenen Übergabe-Fähigkeiten. Zum Beispiel stellt das Modogerät weiße und schwarze Übergabe zur Verfügung, während das RGB Gerät in der Farbe macht. Es gibt vier Typen von Geräten:

  • HAL (Hardware-Abstraktionsschicht) Gerät: Für Geräte, die Hardware-Beschleunigung unterstützen.
  • Bezugsgerät: Täuscht neue in der Hardware noch nicht verfügbare Funktionen vor. Es ist notwendig, den Direct3D SDK zu installieren, um diesen Gerät-Typ zu verwenden.
  • Ungültiges Bezugsgerät: Tut nichts. Dieses Gerät wird verwendet, wenn der SDK nicht installiert wird und ein Bezugsgerät gebeten wird.
  • Softwaregerät von Pluggable: Führt Softwareübergabe durch. Dieses Gerät wurde mit DirectX 9.0 eingeführt.

Jedes Gerät enthält mindestens eine Tausch-Kette. Eine Tausch-Kette wird aus einer oder mehr Zurückpufferoberflächen zusammengesetzt. Übergabe kommt im Zurückpuffer vor.

Außerdem enthalten Geräte eine Sammlung von Mitteln; spezifische Daten während der Übergabe verwendet. Jede Quelle hat vier Attribute:

  • Typ: Bestimmt den Typ der Quelle: Oberfläche, Volumen, Textur, Würfel-Textur, Volumen-Textur, Oberflächentextur, Index-Puffer oder Scheitelpunkt-Puffer.
  • Lache: Beschreibt, wie die Quelle durch die Durchlaufzeit geführt wird, und wo es versorgt wird. In der Verzug-Lache wird die Quelle nur im Gerät-Gedächtnis bestehen. Mittel in der geführten Lache werden im Systemgedächtnis versorgt, und werden an das Gerät nach Bedarf gesandt. Mittel in der Systemspeicherlache werden nur im Systemgedächtnis bestehen. Schließlich ist die Kratzer-Lache grundsätzlich dasselbe als die Systemspeicherlache, aber Mittel werden durch Hardware-Beschränkungen nicht gebunden.
  • Format: Beschreibt das Lay-Out der Quellendaten im Gedächtnis. Zum Beispiel bedeutet D3DFMT_R8G8B8 Format-Wert eine 24-Bit-Farbentiefe (8 Bit für rot, 8 Bit für das Grün und 8 Bit für das Blau).
  • Gebrauch: Beschreibt mit einer Sammlung von Fahne-Bit, wie die Quelle durch die Anwendung verwendet wird. Diese Fahnen diktieren, welche Mittel in dynamischen oder statischen Zugriffsmustern verwendet werden. Statische Quellenwerte ändern sich nicht geladen, wohingegen dynamische Quellenwerte modifiziert werden können.

Rohrleitung

Der Microsoft Direct3D 11 API definiert einen Prozess, um eine Gruppe von Scheitelpunkten, Texturen, Puffern und Staat in ein Image auf dem Schirm umzuwandeln. Dieser Prozess wird als eine Übergabe-Rohrleitung mit mehreren verschiedenen Stufen beschrieben. Die verschiedenen Stufen des Direct3D 10 Rohrleitung sind:

  1. Eingangsmonteur: Liest in Scheitelpunkt-Daten aus einer Anwendung hat Scheitelpunkt-Puffer geliefert und füttert sie unten die Rohrleitung.
  2. Scheitelpunkt Shader: Führt Operationen auf einem einzelnen Scheitelpunkt auf einmal, wie Transformationen, skinning, oder Beleuchtung durch.
  3. Rumpf Shader: Führt Operationen auf Sätzen von Fleck-Kontrollpunkten durch, und erzeugt zusätzliche als Fleck-Konstanten bekannte Daten.
  4. Bühne von Tesselation: Unterteilt Geometrie, um höherwertige Darstellungen des Rumpfs zu schaffen.
  5. Gebiet Shader: Führt Operationen auf der Scheitelpunkt-Produktion durch die tessellation Bühne, auf die ziemlich gleiche Weise als ein Scheitelpunkt shader durch.
  6. Geometrie Shader: Bearbeitet komplette Primitive wie Dreiecke, Punkte oder Linien. In Anbetracht eines Primitiven verwirft diese Bühne es, oder erzeugt ein oder neuere Primitive.
  7. Strom-Produktion: Kann die Ergebnisse der vorherigen Bühne zum Gedächtnis ausschreiben. Das ist nützlich, um Daten zurück in die Rohrleitung in Umlauf wiederzusetzen.
  8. Rasterizer: Bekehrter-Primitive in Pixel, diese Pixel ins Pixel shader fütternd. Der Rasterizer kann auch andere Aufgaben wie Ausschnitt durchführen, was nicht sichtbare oder interpolierende Scheitelpunkt-Daten in Daten pro Pixel ist.
  9. Pixel Shader: Bestimmt die Endpixel-Farbe, die dem machen Ziel zu schreiben ist, und kann auch einen dem Tiefe-Puffer zu schreibenden Tiefe-Wert berechnen.
  10. Produktionsfusion: Verschmilzt verschiedene Typen von Produktionsdaten (Pixel shader Werte, das Alpha-Mischen, Tiefe/Matrize...), um das Endresultat zu bauen.

Die mit einem runden Kasten illustrierten Rohrleitungsstufen sind völlig programmierbar. Die Anwendung stellt ein shader Programm zur Verfügung, das die genauen für diese Bühne zu vollendenden Operationen beschreibt. Viele Stufen sind fakultativ und können zusammen arbeitsunfähig sein.

Anzeigeweisen

Direct3D führt zwei Anzeigeweisen durch:

  • Weise von Fullscreen: Die Direct3D Anwendung erzeugt die ganze grafische Produktion für ein Anzeigegerät. In diesem Verfahren Direct3D gewinnt automatisch Alt-Tab und geht Schirm-Entschlossenheit und Pixel-Format ohne das Programmierer-Eingreifen unter/wieder herstellt. Das stellt auch viele Probleme zur Verfügung, um wegen der 'Exklusiven Kooperativen Weise' die Fehler zu beseitigen.
  • Mit Fenster versehene Weise: Das Ergebnis wird innerhalb des Gebiets eines Fensters gezeigt. Direct3D kommuniziert mit GDI, um die grafische Produktion in der Anzeige zu erzeugen. Mit Fenster versehene Weise kann dasselbe Niveau der Leistung als voller Schirm abhängig von der Fahrer-Unterstützung haben.

Beweglicher Direct3D

Beweglicher Direct3D wird aus Direct3D abgeleitet, aber hat einen kleineren Speicherfußabdruck. Windows CE stellt Direct3D Bewegliche Unterstützung zur Verfügung.

Zusammenhängende Werkzeuge

D3DX

Direct3D kommt mit D3DX, eine Bibliothek von Werkzeugen hat vorgehabt, allgemeine mathematische Berechnungen auf Vektoren, matrices und Farben durchzuführen, Blick - an und Vorsprung matrices, Fugenbrett-Interpolationen berechnend, und mehrere mehr komplizierte Aufgaben, wie das Kompilieren oder die Versammlung shaders verwendet für die grafische 3D-Programmierung, haben Skelettzeichentrickfilm-Lagerung und Matrixstapel zusammengepresst. Es gibt mehrere Funktionen, die komplizierte Operationen über das 3D-Ineinandergreifen wie mit der Tangenteraumberechnung, Ineinandergreifen-Vereinfachung, vorgeschätzte Strahlen-Übertragung zur Verfügung stellen, für die Scheitelpunkt-Freundlichkeit des geheimen Lagers und stripification und Generatoren für das 3D-Textineinandergreifen optimierend. 2. Eigenschaften schließen Klassen ein, um mit dem Schirmraumlinien zu ziehen, Text und Elfe haben Partikel-Systeme gestützt. Raumfunktionen schließen verschiedene Kreuzungsroutinen, Konvertierung von\zu Barycentric-Koordinaten und begrenzenden Generatoren des Kastens/Bereichs ein. D3DX wird als eine dynamische Verbindungsbibliothek (DLL) zur Verfügung gestellt.

Eine Eigenschaft-Gegenwart in vorherigen Versionen von D3DX wurde in Direct3D 11, entfernt wie:

  • Ein großer Teil der Mathebibliothek ist entfernt worden. Microsoft empfiehlt Gebrauch der XNA Mathebibliothek stattdessen.
  • Das Wirkungsfachwerk ist entfernt worden und wird jetzt als Quelle verteilt.
  • Die Ineinandergreifen-Schnittstelle ist entfernt worden.

DXUT

DXUT (hat auch das Beispielfachwerk genannt), ist eine oben auf der Direct3D API gebaute Schicht. Das Fachwerk wird entworfen, um dem Programmierer zu helfen, weniger Zeit mit weltlichen Aufgaben, wie das Schaffen eines Fensters, das Schaffen eines Geräts, die Verarbeitung von Windows-Nachrichten und das Berühren von Gerät-Ereignissen zu verbringen. Es ist nur verwendbar, um einfache technologieorientierte Demos, Tutorenkurse und Werkstätten zu schreiben.

Wein

Das Wein-Projekt hat Arbeitsdurchführungen des Direct3D 8, 9 und 10 APIs (sie, sind bezüglich am 16. April 2011, 100 %, 78 % und 44 % abgeschlossen beziehungsweise). Die Durchführung von Wein kann auch auf Windows unter bestimmten Bedingungen sein. Die Arbeit am Einführen von Direct3D 10 hat in Wein 1.1.7, mit OpenGL über WGL begonnen.

Direct3D und Windows-Aussicht

Windows-Aussicht und sein aktualisiertes Fahrer-Modell bringen einige neue Verbesserungen und Änderungen im Vergleich zu Windows XP Modell und werden erwartet, sich noch mehr als die Hardware zu entwickeln, und die OS entwickeln sich (über zukünftige Dienstsätze oder in der folgenden Version von Windows).

Windows-Aussicht zwingt Nebenläufigkeit über eine theoretisch unbegrenzte Zahl von Ausführungszusammenhängen auf dem GPU. Nebenläufigkeit wurde bereits in Windows XP als zwei Anwendungen unterstützt, oder mehr konnte in verschiedenen Fenstern durchführen und beschleunigte Hardware sein. Windows-Aussicht macht es eine Voraussetzung, um eine willkürlich Vielzahl von Ausführungszusammenhängen (oder Fäden) in der Hardware oder in der Software zu unterstützen. Aussicht, in seiner grundlegenden Terminplanungsverkörperung (das aktuelle Fahrer-Modell), führt Fäden allein, der Hardware erlaubend, von einem Faden bis den anderen, wenn passend, umzuschalten. Das ist eine Abfahrt von Windows XP, wo sich die Hardware dafür entscheiden konnte, Fäden selbstständig zu schalten, weil der OS Kontrolle darüber beschränkt hatte, was der GPU tun konnte. Auch Windows-Aussicht behandelt Speichermanagement und Paginierung (zum Systemgedächtnis und zur Platte), der eine Notwendigkeit ist, um eine Vielzahl von Ausführungszusammenhängen mit ihren eigenen Mitteln zu unterstützen. Jedem Ausführungszusammenhang wird eine Quellenansicht vom GPU geboten, der das Maximum verfügbar vergleicht (oder es für bewusste Anwendungen überschreitet). Der grösste Teil des Managements wird auf der OS Seite durchgeführt, um ins OS-Kernspeichermanagement richtig integriert zu werden.

Ausführungszusammenhänge werden vor einander geschützt. Wegen der Benutzerweise-Durchführung des Aussicht-Fahrers können ein Schelm oder schlecht geschriebener app Kontrolle der Ausführung des Fahrers nehmen und konnten auf Daten von einem anderen Prozess innerhalb des GPU Gedächtnisses potenziell zugreifen, indem sie modifizierte Befehle senden. Obwohl geschützt, vor dem Zugang durch einen anderen app muss ein gut geschriebener app noch sich gegen Misserfolge und durch andere Anwendungen verursachten Gerät-Verlust schützen. Die Benutzerweise-Durchführung kann das Ereignis von BSODs reduzieren, der von Grafikfahrern verursacht ist (der viel mehr katastrophales Ereignis zu einem Laufen app ist als ein Gerät-verlorenes Ereignis).

Regelmäßig hat Microsoft spokespeople über die Notwendigkeit gesprochen, eine feinere Korn-Zusammenhang-Schaltung zu haben (gekennzeichnet, wie "vorgebracht", planend), um im Stande zu sein, zwei Ausführungsfäden am Shader-Instruktionsniveau statt des Niveaus des einzelnen Befehls oder sogar der Gruppe von Befehlen, als in noch unveröffentlichtem WDDM 2.x Spezifizierung zu schalten. Das ist nicht eine Voraussetzung der Aussicht, noch Direct3D 10 Vereinbarkeit. Direct3D10 apps können laufen, und laufen jetzt oben auf der grundlegenden Terminplanungsdurchführung. Das ist nicht normalerweise ein Problem abgesehen von einer potenziellen Anwendung, die sehr lange Ausführung eines einzelnen Befehls/Gruppe von Befehlen haben würde (der zurzeit unter der Windows-Aussicht verhindert wird). Aussicht kann in diesem Augenblick keine feinere-grained Zusammenhang-Schaltung geltend machen, weil sie zusätzliche Unterstützung von Hardware-Verkäufern verlangen wird, aber es kann in der Zukunft erscheinen.

Präemptive Multitasking des feineren Kornes wurde in WDDM/DXGI 1.2 eingeführt, der sich mit der Entwickler-Vorschau des Windows 8 eingeschifft hat.

Siehe auch

  • HLSL - Shader hohe Sprache
  • DirectX - Sammlung der API, in der Direct3D durchgeführt wird
  • OpenGL - Hauptmitbewerber zu Direct3D
  • DirectDraw
  • 3D-Computergrafik
  • Shader
  • Silverlight

Links


Staatliche Universität New Yorks / Breitensuche
Impressum & Datenschutz