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.