Primitive und Befehle
OpenGL zeichnet primitive Punkte, Liniensegmente oder Polygonein mehrere auswählbare Modi. Sie können Modi unabhängig voneinander steuern. Das heißt, das Festlegen eines Modus wirkt sich nicht darauf aus, ob andere Modi festgelegt sind (obwohl viele Modi interagieren können, um zu bestimmen, was letztendlich im Framepuffer endet). Um Primitive anzugeben, Modi festzulegen und andere OpenGL-Vorgänge auszuführen, geben Sie Befehle in Form von Funktionsaufrufen aus.
Primitive werden durch eine Gruppe von scheiteltischen Gittern definiert. Ein Scheitelpunkt definiert einen Punkt, einen Endpunkt einer Linie oder eine Ecke eines Polygons, an dem zwei Kanten aufeinander treffen. Daten (bestehend aus Scheitelpunktkoordinaten, Farben, Normals, Texturkoordinaten und Kantenflags) werden einem Scheitelpunkt zugeordnet, und jeder Scheitelpunkt und die zugehörigen Daten werden unabhängig voneinander, in der Reihenfolge und auf die gleiche Weise verarbeitet. Die einzigen Ausnahmen von dieser Regel sind Fälle, in denen die Gruppe der Scheitelungen abgeschnitten werden muss, damit ein bestimmter Primitiv in einen angegebenen Bereich passt. In diesem Fall können Scheitelpunktdaten geändert und neue Scheitelpunkte erstellt werden. Der Clippingtyp hängt davon ab, welcher Primitiv die Gruppe der Scheitelungen darstellt.
Befehle werden immer in der Reihenfolge verarbeitet, in der sie empfangen werden, obwohl es möglicherweise zu einer unbestimmten Verzögerung kommen kann, bevor ein Befehl wirksam wird. Dies bedeutet, dass jedes Primitiv vollständig gezeichnet wird, bevor ein nachfolgender Befehl wirksam wird. Dies bedeutet auch, dass Zustandsabfragebefehle Daten zurückgeben, die mit der vollständigen Ausführung aller zuvor ausgegebenen OpenGL-Befehle konsistent sind.