Procedura dettagliata: convertire una semplice app Direct3D 9 in DirectX 11 e in UWP (Universal Windows Platform)

Questo esercizio di conversione mostra come convertire un framework di rendering semplice da Direct3D 9 a Direct3D 11 e a UWP (Universal Windows Platform).

Argomento Descrizione

Inizializzare Direct3D 11

Mostra come convertire il codice di inizializzazione di Direct3D 9 in Direct3D 11 e come ottenere handle al dispositivo Direct3D e al contesto del dispositivo e come usare DXGI per configurare una catena di scambio.

Convertire il framework di rendering

Mostra come convertire un semplice framework di rendering da Direct3D 9 a Direct3D 11, come convertire buffer geometria, come compilare e caricare programmi shader HLSL e come implementare la catena di rendering in Direct3D 11.

Convertire il ciclo del gioco

Mostra come implementare una finestra per un gioco UWP e come riportare il ciclo del gioco, come compilare IFrameworkView per controllare un elemento CoreWindow a schermo intero.

 

Questo argomento illustra due percorsi di codice che eseguono la stessa attività grafica di base: visualizzare un cubo basato su vertex shader rotante. In entrambi i casi, il codice riguarda il processo seguente:

  1. Creazione di un dispositivo Direct3D e di una catena di scambio.
  2. Creazione di un buffer dei vertici e di un index buffer per rappresentare una mesh di cubi colorata.
  3. Creazione di un vertex shader che trasforma i vertici in spazio dello schermo, un pixel shader che fonde i valori dei colori, compilazione di shader e caricamento dei shader come risorse Direct3D.
  4. Implementazione della catena di rendering e presentazione del cubo disegnato sullo schermo.
  5. Creazione di una finestra, avvio di un ciclo principale e gestione dell'elaborazione dei messaggi finestra.

Al termine di questa procedura dettagliata, si avrà acquisito familiarità con le seguenti differenze di base tra Direct3D 9 e Direct3D 11:

  • Separazione tra dispositivo, contesto del dispositivo e infrastruttura grafica.
  • Processo di compilazione degli shader e caricamento del bytecode dello shader al runtime.
  • Come configurare i dati per vertice per la fase assemblaggio input (IA).
  • Come usare un oggetto IFrameworkView per creare una visualizzazione CoreWindow.

Si noti che questa procedura dettagliata usa CoreWindow per semplicità e non copre l'interoperabilità XAML.

Prerequisiti

Preparare l'ambiente di sviluppo per lo sviluppo di giochi DirectX UWP. Non è ancora necessario un modello, ma è necessario Microsoft Visual Studio 2015 per caricare esempi di codice per questa procedura dettagliata.

Visitare Considerazioni e concetti relativi alla conversione per comprendere i concetti di programmazione DirectX 11 e UWP illustrati in questa procedura dettagliata.

Direct3D

Microsoft Store