Condividi tramite


Introduzione a Direct3D

Direct3D è un'API di basso livello per il disegno di primitive con la pipeline di rendering o per l'esecuzione di operazioni parallele con lo shader di calcolo.

Che cos'è Direct3D?

Direct3D è un'API di basso livello che è possibile usare per disegnare triangoli, linee o punti per fotogramma o avviare operazioni altamente parallele sulla GPU.

Direct3d:

  • Nasconde diverse implementazioni GPU dietro un'astrazione coerente. Ma devi ancora sapere come disegnare grafica 3D.
  • È progettato per guidare un processore specifico della grafica separato. Le GPU più recenti hanno centinaia o migliaia di processori paralleli.
  • Sottolinea l'elaborazione parallela. È stato configurato un gruppo di stato di rendering o calcolo e quindi si avvia un'operazione. Non attendere il feedback immediato dell'operazione. Non si combinano operazioni CPU e GPU.

Quali API Direct3D possono essere usate?

Le API Direct3D scelte dipendono dallo stile dell'app da scrivere.

  • Se si vuole scrivere un'app UWP, usare un subset di API Direct3D 11, DXGI e HLSL. Per un elenco di queste API, vedere API Win32 e COM per le app UWP. Per informazioni su come scrivere un'app Direct3D 11 di Windows Store, vedere Creare grafica 3D con DirectX.
  • Se si scrive un'app desktop, è possibile usare il set completo di API Direct3D 11, DXGI e HLSL.
  • A partire da Windows 8, non è più supportato attivamente il framework XNA per le app desktop. Le app di Windows Store, le app UWP e le app desktop possono tuttavia usare il set completo delle API XAudio2 e DirectXMath . Le app desktop possono usare il set completo delle API XInput, mentre le app di Windows Store e le app UWP possono usare la maggior parte delle API XInput ; per altre informazioni, vedere Versioni di XInput.

Quale versione direct3D?

La versione dell'API Direct3D scelta dipende dal sistema operativo e dal livello hardware di destinazione.

  • Se si vuole eseguire la destinazione Windows 8 e versioni successive, usare le API Direct3D 11.
  • Usare API Direct3D 9 con Windows XP e versioni successive. Tutti gli hardware supportano API Direct3D 9, anche più recenti hardware a livello direct3D 11.
  • Usare API Direct3D 10 con Windows Vista e versioni successive. Solo Direct3D a livello 10 e versioni successive supportano API Direct3D 10.
  • Usare le API Direct3D 10.1 e Direct3D 11 con Windows 7 e versioni successive. È anche possibile usare API Direct3D 10.1 e Direct3D 11 con Windows Vista con Service Pack 2 (SP2).

Direct3D Rendering Pipeline

Nella pipeline di rendering Direct3D i dati provengono da diverse origini, ad esempio gli affluenti di un fiume.

  • Alcune parti del flusso sono programmabili.
  • Alcune parti hanno knobs e quadranti.
  • Le origini dei dati sono flussi seriali di pacchetti (vertici) o matrici indicizzate (risorse shader).
  • I vertici e le risorse shader vengono trasmessi alle primitive, che è possibile amplificare.
  • Le primitive e le risorse shader vengono eseguite nelle operazioni pixel.

Direct3D Compute Shader

Con direct3D compute shader, tutti i processori della GPU vengono eseguiti in parallelo. Quindi il compute shader si comporta più come uno stagno rispetto a un fiume.