/ / Verwendung von Methoden von OpenGL mit LWJGL - java, opengl, lwjgl

Verwenden von OpenGL-Methoden mit LWJGL - java, opengl, lwjgl

Ich bin verwirrt, wie OpenGL zusammen mit LWJGL verwendet werden kann. Ich plane, OpenGL 4.4 (oder 4.3) zu verwenden und mich unter OpenGL 3.0 fernzuhalten.

Ich kam jedoch durch meine erste Aufgabe eines Buches, das ich tun muss glClearBufferfv()und ich konnte es nicht finden GL44.*stellt sich heraus, ist es in GL30.*.

Ich würde meinen Code viel lieber mit einem statischen Import schreiben als verwenden GL30.glClearBufferfv(...) Es zwingt mich auch jedes Mal, genau zu wissen, in welcher Version welche Funktionalität eingeführt wurde.

Ich weiß, dass viele Leute LWJGL verwenden, also dachte ich, es sollte einen einfacheren Weg geben.

bearbeiten: Hat nicht genug aufgepasst, offensichtlich gibt es keine GL30.glClearBufferfv(...)aber es gibt die fi Variante. Was soll ich jetzt benutzen?

Antworten:

3 für die Antwort № 1

Sie müssen verstehen, wie OpenGL-Versionierung funktioniert, um zu verstehen, warum glClearBufferfv (...) ist in dem GL30 Namensraum.

Jede Version führt ein neues Set von ein erforderlich Funktionalität und bis zur Version 3.1 Die erforderliche Funktionalität wuchs nur. Mit der Einführung von 3.1 und der Unterscheidung zwischen Kern- / Kompatibilitätsprofilen in 3.2 können Sie in älteren Namespaces entfernte Funktionen ausführen 3.1. Es ist jedoch buchstäblich unmöglich, eine OpenGL-Anwendung zu erstellen nur verwendet Funktionen, die in OpenGL 4.4 oder 4.3 hinzugefügt wurden.

Die meisten Befehle, die Sie für nützliche Zwecke benötigen, wurden vor 10-15 Jahren eingeführt. Zum Beispiel, glDrawArrays (...) wurde in OpenGL 1.1 eingeführt und ist nach wie vor wichtig für die Erstellung von GL 4.4-Software. Um also ein Vertex-Array zu zeichnen, müssen Sie etwas aus dem GL11 Namespace. Sie leihen sich also Befehle und Konstanten aus vielen verschiedenen Namespaces.