Fasi della pipeline (Direct3D 10)
La pipeline programmabile Direct3D 10 è progettata per generare grafica per applicazioni di gioco in tempo reale. Il diagramma seguente illustra il flusso di dati dall'input all'output tramite ognuna delle fasi programmabili.
Tutte le fasi possono essere configurate usando l'API. Le fasi con core dello shader comuni (blocchi rettangolari arrotondati) sono programmabili usando il linguaggio di programmazione HLSL. Come si vedrà, la pipeline rende la pipeline estremamente flessibile e adattabile. Di seguito è riportato lo scopo di ognuna delle fasi.
- Input-Assembler fase: la fase dell'assembler di input è responsabile della fornitura di dati (triangoli, linee e punti) alla pipeline.
- Vertex-Shader fase: la fase vertex shader elabora i vertici, in genere eseguendo operazioni come trasformazioni, interfaccia e illuminazione. Un vertex shader accetta sempre un singolo vertice di input e produce un singolo vertice di output.
- Geometry-Shader fase: la fase geometry-shader elabora intere primitive. L'input è una primitiva completa (ovvero tre vertici per un triangolo, due vertici per una linea o un singolo vertice per un punto). Inoltre, ogni primitiva può includere anche i dati dei vertici per qualsiasi primitiva adiacente ai bordi. Ciò può includere al massimo tre vertici aggiuntivi per un triangolo o due vertici aggiuntivi per una linea. Geometry Shader supporta anche l'amplificazione e la de amplificazione della geometria limitate. Data una primitiva di input, geometry shader può eliminare la primitiva o generare una o più nuove primitive.
- Stream-Output Fase: la fase di output del flusso è progettata per lo streaming di dati primitivi dalla pipeline alla memoria fino al rasterizzatore. I dati possono essere trasmessi e/o passati nel rasterizzatore. I dati trasmessi alla memoria possono essere ricircolati nella pipeline come dati di input o readback dalla CPU.
- fase di rasterizzazione: il rasterizzatore è responsabile del ritaglio delle primitive, della preparazione delle primitive per il pixel shader e della determinazione di come richiamare pixel shader.
- Pixel-Shader fase: la fase pixel-shader riceve i dati interpolati per una primitiva e genera dati per pixel, ad esempio il colore.
- Output-Merger fase: la fase di unione dell'output è responsabile della combinazione di vari tipi di dati di output (valori pixel shader, informazioni di profondità e stencil) con il contenuto dei buffer di destinazione di rendering e depth/stencil per generare il risultato finale della pipeline.
Argomenti correlati
-
Guida alla programmazione di per direct3D 10