Roadmap für DirectX-Desktop-Apps

Hier finden Sie wichtige Ressourcen für die ersten Schritte mit DirectX und C++ zum Entwickeln grafikintensiver Desktop-Apps wie Spiele. Dies ist keine umfassende Liste aller Features oder verfügbaren Ressourcen.

Erste Schritte

Hier sind einige wichtige Themen. Richten Sie Ihr DirectX-Projekt ein, und bereiten Sie sich auf Windows und Beispielanwendungen vor.

Thema BESCHREIBUNG
Erstellen Ihrer ersten Windows-App mit DirectX Verwenden Sie dieses grundlegende Tutorial, um mit der Entwicklung von DirectX-Apps zu beginnen, und verwenden Sie dann die Roadmap, um DirectX weiter zu erkunden.
Erste Schritte mit DirectX für Windows Überprüfen Sie die Schritte, die Sie ausführen müssen, um mit der Entwicklung eines Spiels mit DirectX und C++ zu beginnen.
Vollständiger Code für ein DirectX-Framework Abrufen des Codes für ein einfaches DirectX-Renderingframework.
Verwenden von Direct3D 11 In diesem Abschnitt wird veranschaulicht, wie Sie die Microsoft Direct3D 11-API verwenden, um mehrere allgemeine Aufgaben auszuführen.
Programmieranleitung für Direct3D 11 Der Programmierleitfaden enthält Informationen zur Verwendung der programmierbaren Microsoft Direct3D 11-Pipeline zum Erstellen von 3D-Echtzeitgrafiken für Desktopanwendungen.
Tools für DirectX-Grafiken Dokumentation zu Tools, die zur Unterstützung der DirectX-Entwicklung verwendet werden.
Neuerungen in Direct3D 11 Eine Aufschlüsselung aller Features, die in den neuesten Versionen von DirectX und Direct3D (derzeit 11.2) hinzugefügt wurden.
Visual Studio 2013 herunterladen Sie müssen über Visual Studio Express 2013 für Windows Desktop verfügen, um Windows Store Spiele zu erstellen. Einen Überblick über Visual Studio finden Sie unter Entwickeln von Windows Store-Apps mit Visual Studio 2012. Weitere Informationen zu neuen Features in Visual Studio finden Sie unter Product Highlights for Visual Studio 2013.
Wo finde ich das DirectX SDK? Enthält Anleitungen für Entwickler, die ihre DirectX-Projekte in Microsoft Visual Studio bringen möchten.

Beispielanwendungen

Thema BESCHREIBUNG
Win32-Beispiel für Direct3D-Tutorial Einfaches Direct3D-Desktoptutorialbeispiel.
DirectX-Videorenderingbeispiel Ein Beispiel, das das benutzerdefinierte Videorendering mit Direct3D veranschaulicht.

Lesen Sie die wichtigsten Konzepte von Direct3D 11.

Thema BESCHREIBUNG
Grafikpipeline Behandelt die grundlegende Direct3D 11-Grafikpipeline.
Darstellung Behandelt die Direct3D-Renderingmodelle, -Komponenten, -Shader und den API-Aufrufflow.
Ressourcen Behandelt Direct3D-"Ressourcen", z. B. Puffer und andere GPU-Ressourcentypen.
Effekte Behandelt Direct3D-Multi-Shader-Instanziierung und Effekte.
Vorgehensweise: Erstellen einer Swapkette Erstellen der Swapkette, die zum Zeichnen von Pixeln in einen Bereich des Bildschirms verwendet wird.
Vorgehensweise: Erstellen eines Geräts und des unmittelbaren Kontexts Erstellen einer Direct3D-Geräteabstraktion und eines unmittelbaren Kontexts zum Zeichnen
Vorgehensweise: Erstellen eines Scheitelpunktpuffers Erstellen einer einfachen Liste von Gitternetzvertices für die Verarbeitung durch die GPU.
Vorgehensweise: Erstellen eines Indexpuffers Erstellen eines Indexpuffers, der es dem Vertex-Shader ermöglicht, die Reihenfolge der Scheitelpunkte in einem Gitternetz zu ändern.
Vorgehensweise: Erstellen eines Konstantenpuffers Übergeben konstanter (einheitlicher) Daten zwischen CPU und GPU während des Renderings.
Vorgehensweise: Erstellen einer Textur Erstellen einer Textur oder einer anderen Pufferressource, die von der GPU entnommen werden kann.
Vorgehensweise: Initialisieren einer Textur aus einer Datei Hier erfahren Sie, wie Sie eine Textur aus einer Datei laden und für die Verwendung durch die Shaderpipeline verarbeiten.
Vorgehensweise: Kompilieren eines Shaders Kompilieren eines Shaders für die Verwendung in Ihrer Grafikanwendung.

Grafik-APIs

Thema BESCHREIBUNG
Direct3D 11 Dokumentation der Kern-APIs für die Virtualisierung der GPU und ihrer Ressourcen sowie zum Zeichnen von Grafiken mithilfe eines einheitlichen Shadermodells.
Direct3D HLSL Referenzdokumentation für High-Level Shadersprache, die Syntax und Regeln zum Definieren von Shaderprogrammen, die als Teil der Grafikpipeline in einem einheitlichen Shadermodell ausgeführt werden.
DirectX-Grafikschnittstelle (DXGI) Dokumentation der low-level-APIs, die zum Abrufen der GPU-Schnittstelle und der Systemressourcen verwendet werden.
Direct2D Dokumentation für die Direct2D-APIs, die das Zeichnen von 2D-Primitiven unterstützen. In der Regel wird Direct2D für benutzerdefinierte Benutzeroberflächen, Bildverarbeitung und Batchverarbeitung sowie für einfache Spiele verwendet.
DirectWrite Dokumentation für die DirectWrite-APIs, die benutzerdefiniertes Rendern und Skalieren von Schriftarten unterstützen.
Windows Imaging-Komponente (WIC) Dokumentation für die WIC-APIs, die zum Lesen und Verwalten verschiedener Bitmapbildformate verwendet werden.
DirectDraw Surfaces (DDS) für Texturen Dokumentation zu den DDS-APIs, die für die 2D-Texturkomprimierung und -dekomprimierung in Verbindung mit den WIC-APIs verwendet werden.
DirectXMath Dokumentation zu den DirectXMath-APIs, die Direct3D mit einer Reihe von Typen und Funktionen unterstützen, die für die Entwicklung von 3D-Grafiken in Echtzeit geeignet sind. (ehemals XNAMath.)
DirectCompute Dokumentation zu den DirectCompute-APIs, die für Compute- oder allgemeine Shaderfunktionen verwendet werden.

Audio-, Medien- und Eingabe-APIs

Thema BESCHREIBUNG
XAudio2-Programmieranleitung Knoten der obersten Ebene für die konzeptionelle Dokumentation zur XAudio2-Audio-API.
XAudio2-Programmierreferenz Knoten der obersten Ebene für die XAudio2-Audio-API-Referenzdokumentation.
XInput-Programmierhandbuch Knoten der obersten Ebene für die konzeptionelle Dokumentation zur XInput-Controller-API.
XInput-Programmierreferenz Knoten der obersten Ebene für die Referenzdokumentation zur XInput-Controller-API.
Media Foundation Knoten der obersten Ebene für die API-Dokumentation zur Wiedergabe von Media Foundation -Medien (Audio/Video). In der Regel wird MF in Spielen für die Wiedergabe von Musik verwendet, während XAudio2 für dynamisches Audio verwendet wird.

Port zu DirectX 11

Thema BESCHREIBUNG
Migrieren zu Direct3D 11 Grundlegende Anleitung zum Verschieben Ihrer DirectX 9-Codebasis in DirectX 11.
Dual-use Coding Techniques for Games Ausführlicher Blogbeitrag zur Entwicklung für DirectX _ * 9- und DirectX 11-Featureebenen _ * in einer einzelnen Anwendung.
Implementieren von Schattenpuffern für Direct3D-Featureebene 9 Anleitung zum Implementieren von Schattenzuordnungen unter DirectX-Featureebene 9 _ * .

Arbeiten mit C++

Wenn Sie auf Windows Plattformen ein altes Händchen mit C++ sind, sieht dies möglicherweise etwas anders aus. Im Folgenden finden Sie einige Hinweise auf Themen, die Ihnen helfen können, die Unterschiede zu behandeln.

Hinweis

Einige dieser Themen unterstützen Sie bei der Verwaltung Ihrer C++/CX-Anwendung. Es wird jedoch empfohlen, C++/WinRT für neue Anwendungen zu verwenden. C++/WinRT ist eine vollständig standardisierte, moderne C++17-Programmiersprache für Windows-Runtime-APIs (WinRT), die als headerdateibasierte Bibliothek implementiert ist und Ihnen einen erstklassigen Zugriff auf die moderne Windows-API bietet.

Thema BESCHREIBUNG
Visual C++-Sprachreferenz (C++/CX) Seite auf hoher Ebene, die links zu Inhalten im Zusammenhang mit C++ enthält.
Kurzreferenz (Windows Runtime und Visual C++) Tabelle mit schnellen Informationen zu Operatoren und Schlüsselwörtern für Visual C++ Komponentenerweiterungen (C++/CX).
Typsystem (C++/CX) Referenzinhalt für die Typen, die von C++/CX unterstützt werden.
Namespaces (C++/CX) Referenzinhalt für die Namespaces, die C++-spezifische Typen enthalten, die in Windows Store-Apps verwendet werden können.
Thema BESCHREIBUNG
Asynchrone Programmierung (DirectX und C++) Erfahren Sie mehr über asynchrone und Multithreadprogrammierung für DirectX-Apps und -Spiele.
Asynchrone Programmierung in C++ Beschreibt die grundlegenden Möglichkeiten, die Taskklasse zu verwenden, um asynchrone Methoden Windows Runtime zu nutzen.
task-Klasse (Concurrency Runtime) Referenzdokumentation für die Aufgabenklasse.
Taskparallelität (Concurrency Runtime) Ausführliche Erläuterungen zur Aufgabenklasse und deren Verwendung.

Zusätzliche nützliche Bibliotheken für Windows C++-Programmierung

Thema BESCHREIBUNG
C++-Standardvorlagenbibliothek Windows Laufzeittypen können gut mit Standardvorlagenbibliothekstypen verwendet werden. Die meisten C++-Windows Store-Apps verwenden Sammlungen und Algorithmen der Standardvorlagenbibliothek, mit Ausnahme der ABI-Grenze.
Parallel Patterns Library PPL stellt Algorithmen und Typen bereit, die die Aufgabenparallelität und Datenparallelität auf der CPU vereinfachen.
C++ Accelerated Massive Parallelism (C++ AMP) C++ AMP bietet Zugriff auf die GPU für allgemeine Datenparallelität auf Grafikkarten, die DirectX 11 unterstützen.

Blogs und andere Ressourcen

Thema BESCHREIBUNG
Games for Windows and DirectX blog (Spiele für Windows und DirectX-Blog) Regelmäßig aktualisierter Blog von einem wichtigen DirectX-Entwicklermitwirkenden und einer hervorragenden Ressource für DirectX-Entwickler.
Windows DirectX-Entwicklerblog Der offizielle Windows DirectX-Blog.
DirectX-Blog von Cogn Hargreave) Entwicklerblog von einem anderen angesehenen Windows DirectX-Entwicklermitwirkender.
DirectX-Toolkit DirectX Tool Kit (DxTK), das eine Reihe hilfreicher Unterstützungs-APIs zum Laden von Gitternetzen, wiedergebenden Sounds und anderen gängigen Verhaltensweisen enthält.
DirectXTex-Texturverarbeitungsbibliothek DirectX Texture Processing Library (DxTEX), die Unterstützungs-APIs für die Texturverarbeitung und Komprimierung/Dekomprimierung enthält.