marcus-s' Website
startseite | alle artikel | email | software


Modernes OpenGL mit Windows - Teil 1: Vorbereitung
Zuletzt bearbeitet: January 18 2018 13:52:25
Kategorie: Programmierung


Da die meisten Spiele weiterhin auf der Windows-Plattform aufgrund der Treiber- und Spezifikationsverfügbarkeit geschrieben werden, und sich das ganze als durchaus komplexe Herausforderung zeigen kann, will ich in diesem mehrteiligem Kurs die Grundlagen niederschreiben. In Englisch ist so etwas en Masse zu finden, auf deutsch war ich da nicht fündig. Vielleicht nützt es jemandem da draussen.

Für wen ist dieser Kurs?
Idealerweise angehende Spieleentwickler, die sich bereits etwas mit Programmierung auskennen.

Natürlich eignet sich modernes OpenGL, wenn man es einmal verstanden hat und umsetzen kann, auch für andere interessante Anwendungen.


Was muss ich mitbringen?
Da dieser Kurs in C++ gehalten ist, solltest du zumindest wissen wie man in der Sprache schreibt. Idealerweise kennst du dich mit IDEs etwas aus.


Was brauche ich?
- Einen Computer mit Windows 7, 8, 8.1, oder 10 (alle 10er Versionen gehen)
- Etwas Erfahrung im Umgang mit C++
- Festplattenplatz für Visual Studio und deine Projekte später


Wir fangen ganz unten und ganz vorne an.

Nach meiner Erfahrung ist es am Besten, die für die Plattform vorgesehene Entwicklungsumgebung zu nutzen. Like it or not - auf Windows ist das Visual Studio. Wenn du es noch nicht hast, ist dein erster Schritt dir das Ding zu holen und zu installieren. In diesem Falle ist die Community-Version ausreichend.


Klicke auf den nachfolgenden Link, um dir das Setup der Community-Version herunterzuladen: (Externer Link) .

Installiere es und stelle sicher dass auch Visual C++ angetickert ist, weil das alle notwendigen Pakete mit auf deine Festplatte beamt.


Wenn alles geklappt hat, sollte das Ergebnis so oder ähnlich aussehen (ich habe mein Erscheinungsbild bereits auf Dark gestellt):





Damit wir nun also etwas mit OpenGL machen können, brauchen wir ein paar Dinge, die uns das Leben um einiges leichter machen (das kannst du mir glauben). In diesem Kurs benutzen wir die Library GLFW, die Mathe-Library GLM sowie den Extension-Loader GLAD. Wir werden uns all diese Dinge nun beschaffen und startklar machen.

Die GLFW Library
Eine exzellente, schlanke, und effiziente Library die ich jedem nur empfehlen kann. Die Buchstaben stehen für OpenGL Framework. Gehen wir also als erstes auf diese Seite: (Externer Link). Da es kein Komplettpaket für Visual Studio 2017 gibt, müssen wir einen Trick anwenden. Bitte das Source Package herunterladen.


Sobald das Package heruntergeladen ist, diese an einen gewünschten Ort entpacken. Damit wir die Library auch nutzen können, müssen wir diese zunächst in ein von Visual Studio 2017 brauchbares Format bringen. Das geht einfacher als man denkt.

Das funktioniert mit CMake für Windows. Das magische Linux/Unix Tool gibt es schon seit längerem für Windows. Bitte auf diesen Link (Externer Link) gehen und den aktuellen Windows Installer herunterladen, und anschliessend CMake installieren.

Im Windows Startmenu trägt sich das als CMake GUI ein:





Diesen Eintrag einmal bitte anklicken damit die GUI aufgeht. Wir müssen mit CMake eine Visual Studio Solution erstellen, mit der wir die Library kompilieren (und anschliessend auch nutzen) können.

Sobald CMake offen ist, oben rechts auf den "Browse Source..."-Button klicken und dann zunächst in den Ordner gehen, in dem wir die GLFW-Sourcen entpackt haben. Idealerweise erstellst du direkt in diesem Fenster im GLFW-Ordner einen neuen Unterordner namens build. Diesen trägst du wie im Bild unten gezeigt dort ein.





Wenn du das hast, klickst du auf den Configure-Button, den ich auch im Bild oben hervorgehoben habe. Es erscheint nun folgendes Fenster:





Ich empfehle dir, die Einstellung wie abgebildet vorzunehmen - denn die meisten Computer zuhause oder im Büro benutzen eine 64-bit Architektur. Natürlich kannst du dieses auch auf 32-bit ändern - bedenke dann aber, dass die Library die dann entsteht, auch nur mit 32-bit-Apps benutzt werden kann. Klicke auf Finish.

CMake macht nun bisschen schwarze Magie und präsentiert sich dann irgendwann mit einer Reihe von Text in roten Zeilen. Bevor du denkst dass es schlecht ist, lese bitte weiter: Es bedeutet nur, dass CMake einige Infos von dir fehlen. Am besten lässt du alles so wie es ist, und klickst jetzt noch einmal auf den Configure-Button, und anschliessend auf den Generate-Button. Das schliesst die Erstellung des Projektes für VS ab.





Das geht beides sehr schnell. Du kannst jetzt CMake schliessen. Öffne einen Windows-Explorer und navigiere zu dem build-Ordner, der sich (wenn du diese Anleitung befolgt hast) im Unterordner des Quellcodes von GLFW befindet. In diesem Ordner gibt es eine Datei, die GLFW.sln heisst, was für eine Visual Studio Solution steht. Doppelklicke diese Datei, um die Solution in Visual Studio zu öffnen.





Lasse alles laden, das kann unter Umständen einen kurzen Moment dauern. Deswegen: kurz Geduld. Sobald Visual Studio mit der Solution offen ist, musst du nicht mehr viel tun als dich zu entscheiden ob du deine Library in Debug- oder Release-Mode haben willst. Debug ist evtl. für dich nützlich um Fehler in deinem Game oder Programm zu finden - deshalb lassen wir es mal so wie es aussieht. Klicke in dem Menü auf Build und dann Build Solution.





Alles klar Herr Komissar. Auch das dauert ein Weilchen. Wenn alles durch ist, was Visual Studio dir signalisieren wird, hast du eine nutzbare Library! Yay! Sie ist dann in dem GLFW-Ordner unter build\src\Debug. Gehe in den Ordner und erblicke die Frucht deiner Arbeit:





Damit wir nun endlich coole OpenGL-Games und -Apps erstellen können, brauchen wir nur noch zwei Dinge: die Library vom Bild oben und die entsprechenden Include-Files.

Im zweiten Teil werden wir uns in einem neuen leeren Ordner eine sinnvolle Struktur aufbauen, die Library und Includes hineinkopieren, und schauen ob alles funktioniert.