CG Exercise #00
Computergraphik Ãœbungsblatt #00
Orga & Installation
als Vorbereitung für Übung #01
Grundlegendes zum Computergraphik-Praktikum
In diesem Praktikum beschäftigen wir uns hauptsächlich mit einem Teilbereich der Computergraphik: der sog. Bildsynthese (siehe rechte Illustration).
In der Bildsynthese gibt es zwei antagonistische Ziele
Stellvertretend für diese zwei Ziele werden wir im Praktikum die folgende Software anwenden:
Näheres dazu in der Vorlesung.
Organisatorisches
Das Aufgabenblatt ist in der jeweiligen Praktikumsstunde zu bearbeiten. Die dazugehörigen Hausaufgaben entsprechend bis zu nächsten Praktikumsstunde. Sie führen außerdem ein Protokoll über die jeweiligen Praktika, das Sie regelmäßig abgeben. Näheres dazu siehe hier.
Installation
Aufgabe 0.1: Wahl der Plattform

Linux / Mac / Windows
Für die Programmieraufgaben wird ein Framework zur Verfügung gestellt (siehe Aufgabe 0.2), welches den Einstieg in OpenGL bzw. GLSL erleichtert. Die dafür benötigte Plattform ist Linux, Windows oder Mac.
Die empfohlene Plattform für die Praktika ist Linux bzw. Ubuntu! Für diese Plattform wird von seiten der Betreuer Support angeboten. Für Windows und Mac folgen Sie bitte den untenstehenden Hinweisen für Ihre jeweilige Plattform.
Die Laborrechner sind bereits entsprechend mit Linux vorinstalliert. Wenn Sie mit Ihrem eigenen Rechner unter Linux arbeiten (BYOD), folgen Sie zur Installation von Linux bitte den Hinweisen des Linux Installations Tutorials. Dies wird von den Betreuern in der Übung anhand einer Linux-Installation in einer virtuellen Maschine vorgeführt (Linux Installations Tutorial Variante 2).
Hinweis: Auch ein relativ alter Rechner ist mit der passenden Linux Distribution vollkommen ausreichend für das Praktikum. Falls Sie Sich dennoch einen neueren Rechner zulegen wollen, so finden Sie entsprechenden Kaufempfehlungen hier.
Falls Sie Probleme mit der Ubuntu-Installation aufgrund von nicht unterstützten Hardkomponenten o.ä. haben, so können Sie Sich alternativ einen Ubuntu Labor- bzw. Leihrechner ausleihen. Bitte wenden Sie Sich dazu an unsere LabIngs!
Aufgabe 0.2: OpenGL & Framework Installation

glVertex
Sie benötigen für das Arbeiten mit OpenGL das sog. glVertex Framework.
Laden Sie bitte den glVertex Framework Installer in Ihr Download-Verzeichnis herunter.
Unter Linux werden damit alle Softwarekomponenten, die für die Softwareentwicklung mit OpenGL notwendig sind, vollkommen automatisch installiert. Sie müssen während des Ablaufs des Installer Skriptes lediglich das Admin-Passwort verdeckt eingeben und die Installation bestätigen. Alle gängigen Linux-Distributionen wie Ubuntu, Mint, Debian, Fedora und openSUSE werden unterstützt.
Unter Linux ist die Installation ganz einfach. Um diese zu starten, geben Sie bitte im entpackten Verzeichnis des Installers einfach Folgendes im Terminal ein, um das Installer Skript zu starten:
Das glVertex Framework funktioniert auch unter Windows und MacOS. Wir empfehlen aufgrund von langjähriger Software-Entwicklungs-Erfahrung mit OpenGL dennoch Ubuntu als Plattform.
Folgen Sie bei der Installation nun bitte den Anweisungen des entsprechenden Installations-Tutorials für Ihr jeweiliges Betriebssystem:
- Linux Installations Tutorial für Ubuntu, Debian usw.
- Mac Installations Tutorial (Intel Chips) für Intel Macs bis 2020
- Mac Installations Tutorial (Apple M-Chips) für Apple Silicon Macs nach 2020 (mit M1-M3 Chip)
- Windows Installations Tutorial für Windows 10–11
- Windows Installations Alternativen für Fortgeschrittene
Materialien:
Aufgabe 0.3: OpenGL Test

OpenGL glxgears
Nach erfolgreicher Installation unter Linux starten wir das Programm glxgears. Sie sollten nun ein paar rotierende Zahnräder (wie im rechten Bild) zu sehen bekommen. Im Hintergrund werkelt bereits OpenGL und damit die Hardwarebeschleunigung der eingebauten Graphikkarte. Das ist in der Regel eine Graphikkarte von Intel, NVidia oder AMD. Näheres dazu erfährt man mit dem Befehl glxinfo bzw. glxinfo | grep OpenGL.*string:
OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: NVS 5200M/PCIe/SSE2 OpenGL core profile version string: 4.6.0 NVIDIA 390.157 OpenGL core profile shading language version string: 4.60 NVIDIA OpenGL version string: 4.6.0 NVIDIA 390.157 OpenGL shading language version string: 4.60 NVIDIA OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.157 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
Aufgabe 0.4: OpenGL Framework

Beispielprogramm qt_triangle
Ãœbersetzen Sie im Linux oder MacOS Terminal das Beispielprogramm qt_triangle im qt_examples Verzeichnis, und rufen Sie es auf:
cd qt_examples
cmake . && make && ./qt_triangle
Bemerkung: Das &&
zwischen den hintereinander aufgeführten Einzelbefehlen stellt sicher, dass bei einem Fehler der folgende Befehl nicht aufgerufen wird.
Hinweis: Unter Windows verwenden Sie CMake nicht auf der Kommando-Zeile sondern das CMake GUI.
Falls Sie ein rotierendes Dreieck sehen, so haben Sie nun das OpenGL Framework ein erstes Mal erfolgreich verwendet. Läuft!
Optional: Ãœbersetzen Sie zum Abschluss noch einmal analog das Beispielprogramm qt_gears im qt_examples Verzeichnis.
Tipp: Falls Sie Abstürze oder Glitches entdecken, versuchen Sie den sog. Software-Rasterizer zu aktivieren, indem Sie in der Shell die folgende Environment-Variable setzen:
export LIBGL_ALWAYS_SOFTWARE=1
Der Effekt hält an, bis die Shell beendet wird. Er funktioniert leider nicht mit NVidia Treibern!
Protokoll des aktuellen Praktikums
Bitte protokollieren Sie die Ergebnisse des aktuellen Praktikums mit. Für heute reicht ein einfacher Screenshot von qt_triangle und eine stichpunktartige Kurzbeschreibung der Installationsschritte und eine abschließenden Reflektion darüber, was für Aha-Effekte Sie heute eventuell hatten oder welche Probleme eventuell aufgetreten sind-
Es wird empfohlen, die Hausaufgaben ebenfalls im Protokoll mit zu dokumentieren, dies ist aber kein Muß. Voraussetzung zum Bestehen des Praktikums ist jedoch, dass mindestens die Dokumentation der jeweiligen Praktika im Gesamtprotokoll vorhanden ist und bis zur jeweiligen Deadline hochgeladen wurde.
Hausaufgaben bis zum nächstem Praktikum
1. BYOD (Bring-Your-Own-Device):
Vergewissern Sie Sich, dass Sie bis zum nächsten Praktikumstermin eine lauffähige Windows, Mac oder Linux-Installation auf Ihrem eigenen Rechner haben!
2. OpenGL:
- Ãœbersetzen Sie analog zu Aufgabe 0.4 den Shader Editor (mittels
qmake && make
im Verzeichnis qt_editor) und probieren Sie ihn selber aus. Falls Sie kein Linux System zur Verfügung haben, verwenden Sie eine virtuelle Maschine! - Was passiert, wenn Sie im Vertex-Shader die Multiplikation mit der sog. Model-View-Projection Matrix mvp löschen? Was könnte also der Zweck dieser Matrix sein? Googlen Sie danach!
- Machen Sie die Löschung rückgängig und laden Sie den Teapot (teapot.obj) als Objekt in den Editor. Ersetzen Sie im Fragment-Shader color durch vec4(1,0,0,1). Was passiert?
Bitte zögern Sie nicht damit, im Laufe des Praktikumsbetriebs nach Hilfe zu fragen - auch untereinander. Gemeinsam kommt man besser zum Ziel.
Und nun viel Spaß mit 3D Computergraphik …