Condividi tramite


Rendering Pipeline

L'hardware grafico che supporta Direct3D versione 10 può essere progettato con core programmabili dello shader condivisi. L'unità di elaborazione grafica (GPU) può programmare core shader che possono essere pianificati tra i blocchi funzionali che costituiscono la pipeline di rendering. Questo bilanciamento del carico significa che gli sviluppatori hardware non devono usare ogni tipo di shader, ma solo quelli necessari per eseguire il rendering. Questo bilanciamento del carico può quindi liberare risorse per i tipi di shader attivi. La figura seguente illustra i blocchi funzionali della pipeline di rendering. Le sezioni che seguono la figura descrivono i blocchi in modo più dettagliato.

Diagramma che illustra i blocchi funzionali della pipeline di rendering Direct3D.

  • Assembler input

    La fase dell'assembler di input usa operazioni di funzione fissa per leggere i vertici in memoria. L'assembler di input forma quindi primitive geometry e crea elementi di lavoro della pipeline. Gli identificatori dei vertici generati automaticamente, gli identificatori di istanza (disponibili per il vertex shader) e gli identificatori primitivi (disponibili per il geometry shader o pixel shader) consentono l'elaborazione specifica dell'identificatore. La linea tratteggiata nella figura mostra il flusso di elaborazione specifica dell'identificatore.

  • Vertex shader

    La fase vertex shader accetta un vertice come input e restituisce un vertice.

  • Geometry shader

    La fase geometry shader accetta una primitiva come input e restituisce zero, una o più primitive. Le primitive di output possono contenere più dati del possibile senza il geometry shader. La quantità totale di dati di output per operazione è (dimensioni vertice x numero di vertici).

  • Output del flusso

    La fase di output del flusso concatena (flussi out) primitive che raggiungono l'output del geometry shader per restituire i buffer. L'output del flusso è associato allo shader geometry e entrambi vengono programmati insieme.

  • Rasterizzatore

    Le primitive della fase di rasterizzazione (inclusi i limiti di clip personalizzate), eseguono la divisione prospettica sulle primitive, implementano il riquadro di visualizzazione e la selezione scissor, eseguono la selezione della destinazione di rendering ed eseguono la configurazione primitiva.

  • Pixel shader

    La fase pixel shader accetta un pixel come input e restituisce un pixel nella stessa posizione o nessun pixel. Il pixel shader non può leggere le destinazioni di rendering correnti.

  • Unione output

    La fase di fusione dell'output esegue operazioni di fusione, profondità e stencil di rendering della funzione fissa.