Freigeben über


Exemplarische Vorgehensweise Portieren einer einfachen Direct3D 9-App zu DirectX 11 und zur universellen Windows-Plattform (UWP)

In dieser Portierungsübung wird veranschaulicht, wie Sie ein einfaches Renderingframework von Direct3D 9 auf Direct3D 11 und die universelle Windows-Plattform (UWP) umstellen.

Thema BESCHREIBUNG

Initialisieren von Direct3D 11

Hier wird veranschaulicht, wie Sie Direct3D 9-Initialisierungscode in Direct3D 11 konvertieren, und Sie erfahren, wie Sie Handles zum Direct3D-Gerät und zum Gerätekontext abrufen und DXGI zum Einrichten einer Swapchain verwenden.

Konvertieren des Renderingframeworks

Hier wird veranschaulicht, wie Sie ein einfaches Renderingframework von Direct3D 9 in Direct3D 11 konvertieren. Sie erfahren, wie Sie Geometriepuffer portieren, HLSL-Shaderprogramme kompilieren und laden und die Renderkette in Direct3D 11 implementieren.

Portieren der Spielschleife

Zeigt, wie Sie ein Fenster für ein UWP-Spiel implementieren und die Spielschleife übernehmen, einschließlich der Erstellung eines IFrameworkView zum Steuern eines Vollbild-CoreWindows.

 

Es werden zwei Codepfade durchgegangen, mit denen jeweils die gleiche grundlegende Grafikaufgabe durchgeführt wird: das Anzeigen eines sich drehenden Würfels mit Vertexschattierung. In beiden Fällen wird mit dem Code der folgende Prozess abgedeckt:

  1. Erstellen eines Direct3D-Geräts und einer Swapchain
  2. Erstellen eines Vertexpuffers und eines Indexpuffers zum Darstellen eines farbigen Würfelgitters
  3. Erstellen eines Vertexshaders, mit dem Vertizes in Bildschirmbereiche umgewandelt werden, eines Pixelshaders, mit dem Farbwerte vermischt werden, Kompilieren der Shader und Laden der Shader als Direct3D-Ressourcen
  4. Implementieren der Renderkette und Darstellen des gezeichneten Würfels auf dem Bildschirm
  5. Erstellen eines Fensters, Starten einer Hauptschleife und Durchführen der Verarbeitung von Bildschirmmeldungen

Nach der Durcharbeitung dieser exemplarischen Vorgehensweise sollten Ihnen die folgenden grundlegenden Unterschiede zwischen Direct3D 9 und Direct3D 11 bekannt sein:

  • Trennung von Gerät, Gerätekontext und Grafikinfrastruktur
  • Kompilierungsprozess für Shader und Laden von Shaderbytecode zur Laufzeit
  • Konfigurieren von Daten pro Vertex für den Eingabeassemblerzustand
  • Verwenden eines IFrameworkView-Elements zum Erstellen einer CoreWindow-Ansicht

Beachten Sie, dass in dieser exemplarischen Vorgehensweise der Einfachheit halber CoreWindow verwendet wird. Die XAML-Interoperabilität wird nicht behandelt.

Voraussetzungen

Führen Sie die Schritte unter Vorbereiten der Entwicklungsumgebung für die Entwicklung von UWP-DirectX-Spielen aus. Sie müssen noch keine Vorlage laden, aber Sie benötigen Microsoft Visual Studio 2015, um die Codebeispiele für diese exemplarische Vorgehensweise zu laden.

Lesen Sie sich die Informationen unter Konzepte und Aspekte der Portierung durch, um ein besseres Verständnis der in dieser exemplarischen Vorgehensweise verwendeten Programmierkonzepte für DirectX 11 und UWP zu entwickeln.

Direct3D

Microsoft Store