Operazione OpenGL di base

Il diagramma seguente illustra come OpenGL elabora i dati. Come illustrato, i comandi vengono immessi a sinistra e si procede con una pipeline di elaborazione. Alcuni comandi specificano oggetti geometrici da disegnare e altri controllano la modalità di gestione degli oggetti durante varie fasi di elaborazione.

Diagram showing the OpenGL data processing pipeline stages.

Le fasi di elaborazione nell'operazione OpenGL di base sono le seguenti:

  • Elenco di visualizzazione Invece di avere tutti i comandi procedere immediatamente attraverso la pipeline, è possibile scegliere di accumulare alcuni di essi in un elenco di visualizzazione per l'elaborazione in un secondo momento.

  • Analizzatore La fase di elaborazione dell'analizzatore offre un modo efficiente per approssimare la geometria della curva e della superficie valutando i comandi polinomiali dei valori di input.

  • Operazioni per vertice e assembly primitivo OpenGL elabora i punti geometrici, i segmenti di linea e i poligoni di cui sono descritti dai vertici. I vertici vengono trasformati e illuminati e le primitive vengono ritagliate nel riquadro di visualizzazione in preparazione alla rasterizzazione.

  • Rasterizzazione La fase di rasterizzazione produce una serie di indirizzi del buffer di frame e valori associati usando una descrizione bidimensionale di un punto, un segmento di linea o un poligono. Ogni frammento così prodotto viene inserito nell'ultima fase, operazioni per frammento.

  • Operazioni per frammento Si tratta delle operazioni finali eseguite sui dati prima che vengano archiviate come pixel nel framebuffer.

    Le operazioni per frammento includono gli aggiornamenti condizionali del framebuffer in base ai valori z in ingresso e archiviati in precedenza (per il buffer z) e la fusione dei colori pixel in ingresso con i colori archiviati, nonché la maschera e altre operazioni logiche sui valori pixel.

I dati possono essere input sotto forma di pixel anziché vertici. I dati sotto forma di pixel, ad esempio, potrebbero descrivere un'immagine da usare nel mapping delle trame, ignora la prima fase di elaborazione descritta in precedenza e viene invece elaborata come pixel, nella fase delle operazioni in pixel. Le operazioni pixel seguenti, i dati pixel sono i seguenti:

  • Archiviata come memoria trama, da usare nella fase di rasterizzazione.
  • Rasterizzato, con i frammenti risultanti uniti nel framebuffer proprio come se fossero stati generati da dati geometrici.