Grafikprogrammierung mit OpenGL 2
Einleitung
Ende 2020 habe ich begonnen Programme mit OpenGL 2 zu schreiben.
Es gibt da bereits grosse Unterschiede zu was ich 2019 mit einer
älteren OpenGL-Version begonnen hatte.
Hier also alles neu für OpenGL2.
Compiler und Bibliotheken
Ich hatte mit diesem Tutorial gestartet:
Tutorial von Pilzschaf
gefunden über Google mit "C++ OpenGL Tutorial deutsch".
In diesem Tutorial wird die OpenGL Shading Language 3.30 benutzt.
Meine Programme werden also wohl auch mindestens Version 3.3 benötigen.
Als Compiler benutze ich GCC, und als Programmierumgebung Emacs und make auf Linux.
Gleichzeitig teste ich auch unter Windows10 mit "Visual Studio 2019".
Es werden folgende Bibliotheken benötigt:
SDL2: libsdl2-dev libSDL.org
GLEW: libglew-dev GLEW.sourceforge.net
Include-Libraries:
GLM (Mathe) ,
stb_image.h (Bilder laden) ,
...
(Auf glut oder freeglut wird bewusst verzichtet)
Mathematische Grundlagen
Neben Vektoren
werden in OpenGL oft Matrizen verwendet (Einzahl: Matrix).
Unter www.opengl-tutorial.org gibt es dazu eine gute
Einführung in Matrizen-Rechnung
Programmiersprachen
Ich verwende C++ für Programme
auf der CPU.
Für Programmteile die direkt auf der Grafikkarte
(GPU) laufen wird noch
GLSL gebraucht.
Wobei ich GLSL noch am lernen bin.
3D-Objekte erstellen
Mit freecad lassen sich einfache (einfarbige) Objekte erstellen. (Möglicherweise bei neueren Versionen gehen auch mehrfarbige Objekte?)
Für kompliziertere Sachen sollte sich Blender eignen.
www.freecadweb.org ,
Freecad Tutorial
www.blender.org ,
Blender Tutorial
noch in Bearbeitung ...
Einrichten unter Linux
Für den Compiler (GCC) sollte das Paket build-essential installiert werden.
Dann noch die beiden oben erwähnten Pakete: libsdl2-dev und libglew-dev
Eins meiner Beispielprogramme an beliebiger Stelle entpackt, dann mit "make" compiliert.
Sollte dann mit z.B. "./main" startbar sein.
noch in Bearbeitung ...
Einrichten unter Windows
Das Verzeichnis "Desktop\C++\VisualProjects\dependencies" anlegen.
Dort hinein dann die beiden oben erwähnten Bibliotheken kopieren.
Eins meiner Beispielprogramme (z.B. Spiel1) dann nach "Desktop\C++\VisualProjects\" kopieren.
Die Datei mit Endung .vcxproj muss noch editiert werden um die Pfade auf die Bibliotheken
anzupassen. Das kann mit Notepad gemacht werden, oder bequemer mit einem Texteditor unter Linux.
Es müssen dabei an 16 Stellen Pfade korrigiert werden.
Vermutlich könnte man das auch irgendwie direkt in Visual Studio machen,
ich weiss aber nicht wie.
Die Startdatei ist diejenige mit Endung .sln (z.B. Spiel1.sln).
Die lässt sich durch Rechtsklick und Auswahl von "Open with"
mit Visual Studio 2019 starten.
noch in Bearbeitung ...
Links
Grafikprogrammierung mit OpenGL - Alte Version
OpenGLTekplot.tar.gz Test von otekplot.h, Grafik-Library wie xtekplot1
OpenGLTekplot1.7z Windows-Version der Tekplot-Grafik-Library
Spiel1.tar.gz Erster Versuch eines 3D-Spiels in OpenGL
Auch auf meiner Spiele-Seite zu finden: ../../spiele/index.html#spiel1
Letzte Änderungen: 26.2.2021 Rolf