Primitive e comandi
OpenGL disegna punti, segmenti di linea o poligoni primitivi soggetti a diverse modalità selezionabili. È possibile controllare le modalità indipendentemente l'una dall'altra. Ovvero, l'impostazione di una modalità non influisce sul fatto che siano impostate altre modalità (anche se molte modalità possono interagire per determinare cosa finisce alla fine nel framebuffer). Per specificare primitive, impostare le modalità ed eseguire altre operazioni OpenGL, è possibile eseguire comandi sotto forma di chiamate di funzione.
Le primitive sono definite da un gruppo di uno o più vertici. Un vertice definisce un punto, un endpoint di una linea o un angolo di un poligono in cui si incontrano due archi. I dati (costituiti da coordinate dei vertici, colori, normali, coordinate di trama e flag di arco) sono associati a un vertice e ogni vertice e i relativi dati associati vengono elaborati in modo indipendente, in ordine e nello stesso modo. Le uniche eccezioni a questa regola sono i casi in cui il gruppo di vertici deve essere ritagliato in modo che una determinata primitiva si adatti all'interno di un'area specificata. In questo caso, è possibile modificare i dati dei vertici e creare nuovi vertici. Il tipo di ritaglio dipende dalla primitiva rappresentata dal gruppo di vertici.
I comandi vengono sempre elaborati nell'ordine in cui vengono ricevuti, anche se potrebbe esserci un ritardo indeterminato prima che un comando abbia effetto. Ciò significa che ogni primitiva viene disegnata completamente prima che venga applicato qualsiasi comando successivo. Significa anche che i comandi di query con stato restituiscono dati coerenti con l'esecuzione completa di tutti i comandi OpenGL rilasciati in precedenza.