Primitive e comandi
OpenGL disegna primitive punti, segmenti di linea o poligoni 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 alla fine finisce nel framebuffer). Per specificare primitive, impostare le modalità ed eseguire altre operazioni OpenGL, 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 bordo) 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 può verificarsi un ritardo indeterminato prima che un comando abbia effetto. Ciò significa che ogni primitiva viene disegnata completamente prima che qualsiasi comando successivo venga applicato. Significa anche che i comandi di query con stato restituiscono dati coerenti con l'esecuzione completa di tutti i comandi OpenGL rilasciati in precedenza.