Condividi tramite


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 tramite 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 l'API Direct3D 11 per configurare tutte le fasi. Le fasi che presentano core di shader comuni (i blocchi rettangolari arrotondati) sono programmabili usando il linguaggio di programmazione HLSL. Come si vedrà, questa la rende estremamente flessibile e adattabile.

In questa sezione

Argomento Descrizione
fase di input-assembler
L'API Direct3D 10 e superiore 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, morfiing e illuminazione per vertice. I vertex shader operano sempre su un singolo vertice di input e producono un singolo vertice di output. Lo stadio dello shader di vertice deve essere sempre attivo affinché la pipeline venga eseguita. 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 con dettaglio superiore nella GPU. La tassellatura (o suddivisione) delle superfici ad alto ordine in strutture adatte per il rendering.
fase dello shader di geometria
La fase geometry-shader (GS) esegue il codice dello shader specificato dall'applicazione con vertici come input e la possibilità di generare vertici nell'output.
fase di output dello stream
Lo scopo della fase di output del flusso consiste nel flusso continuo dei dati dei vertici dalla fase dello shader geometrico (o dalla fase del vertex shader se la fase dello shader geometrico è inattiva) a uno o più buffer in memoria (vedere Introduzione alla fase di output del flusso).
stadio di rasterizzazione
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.
stadio 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 del rasterizzatore richiama un pixel shader una volta per ogni pixel coperto da una primitiva, ma è possibile specificare un NULL shader per evitare di eseguire uno shader.
stadio di fusione dell'output
La fase di unione dell'output (OM) genera il colore finale del pixel sottoposto a rendering usando una combinazione di stato della pipeline, dei dati pixel generati dagli shader pixel, dei contenuti dei target di rendering e dei contenuti 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.