Pipeline grafica

La pipeline programmabile Direct3D 11 è progettata per generare grafica per applicazioni di gioco in tempo reale. Questa sezione descrive la pipeline programmabile Direct3D 11. Il diagramma seguente illustra il flusso di dati dall'input all'output attraverso ognuna delle fasi programmabili.

diagramma del flusso di dati nella pipeline programmabile direct3d 11

La pipeline grafica per Microsoft Direct3D 11 supporta le stesse fasi della pipeline grafica Direct3D 10, con fasi aggiuntive per supportare funzionalità avanzate.

È possibile usare Direct3D 11API per configurare tutte le fasi. Le fasi che presentano core dello shader comuni (blocchi rettangolari arrotondati) sono programmabili tramite il linguaggio di programmazione HLSL . Come si vedrà, la pipeline rende la pipeline estremamente flessibile e adattabile.

Contenuto della sezione

Argomento Descrizione
Fase dell'assembler di input
L'API Direct3D 10 e versioni successive separa le aree funzionali della pipeline in fasi; la prima fase della pipeline è la fase input-assembler (IA).
Fase vertex shader
La fase vertex-shader (VS) elabora i vertici dall'assembler di input, eseguendo operazioni per vertice, ad esempio trasformazioni, skinning, morphing e illuminazione per vertice. I vertex shader operano sempre su un singolo vertice di input e producono un singolo vertice di output. La fase del vertex shader deve essere sempre attiva per l'esecuzione della pipeline. Se non è necessaria alcuna modifica o trasformazione dei vertici, è necessario creare e impostare un vertex shader pass-through sulla pipeline.
Fasi di tassellatura
Il runtime Direct3D 11 supporta tre nuove fasi che implementano la tassellatura, che converte le superfici di suddivisione con dettaglio basso in primitive di dettaglio superiore nella GPU. Tessere a mosaico (o suddivide) superfici ad ordine elevato in strutture adatte per il rendering.
Fase dello shader geometry
La fase geometry-shader (GS) esegue il codice shader specificato dall'applicazione con vertici come input e la possibilità di generare vertici nell'output.
Fase di output di flusso
Lo scopo della fase di output del flusso è l'output continuo (o flusso) dei dati dei vertici dalla fase geometry-shader (o dalla fase vertex shader se la fase geometry-shader è inattiva) in uno o più buffer in memoria (vedere Introduzione con la fase di output del flusso).
Fase rasterizzatore
La fase di rasterizzazione converte le informazioni vettoriali (composte da forme o primitive) in un'immagine raster (composta da pixel) allo scopo di visualizzare grafica 3D in tempo reale.
Fase pixel shader
La fase pixel-shader (PS) consente tecniche di ombreggiatura avanzate, ad esempio l'illuminazione per pixel e la post-elaborazione. Un pixel shader è un programma che combina variabili costanti, dati di trama, valori interpolati per vertice e altri dati per produrre output per pixel. La fase di rasterizzazione richiama un pixel shader una volta per ogni pixel coperto da una primitiva, ma è possibile specificare uno shader NULL per evitare l'esecuzione di uno shader.
Fase di fusione dell'output
La fase di unione dell'output genera il colore del pixel di cui è stato eseguito il rendering finale usando una combinazione di stato della pipeline, i dati pixel generati dagli shader pixel, il contenuto delle destinazioni di rendering e il contenuto dei buffer depth/stencil. La fase OM è il passaggio finale per determinare quali pixel sono visibili (con test depth-stencil) e fondendo i colori dei pixel finali.