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
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.
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.
Aufgabe 0.2: OpenGL & Framework Installation
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.
Dieses Skript installiert unter Linux und Mac alle Softwarekomponenten, die für die Softwareentwicklung mit OpenGL notwendig sind, vollkommen automatisch. Sie müssen während des Ablaufs 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:
Falls Sie Probleme mit der Ubuntu-Installation z.B. aufgrund von nicht unterstützten Hardkomponenten haben, so können Sie Sich alternativ einen Ubuntu Labor- bzw. Leihrechner ausleihen. Bitte wenden Sie Sich dazu an unsere LabIngs!
Das glVertex Framework funktioniert ebenfalls unter Windows und MacOS. Wir empfehlen aber ausdrücklich Ubuntu als Plattform.
Folgen Sie bei der Installation bitte den Anweisungen des jeweiligen Installations-Tutorials für Ihr entsprechendes Betriebssystem:
- Linux Installations Tutorial
- Mac Installations Tutorial für Intel Macs
- Mac Installations Tutorial M für Apple Silicon Macs (M1-M3)
- Windows Installations Tutorial
Materialien:
Aufgabe 0.3: OpenGL Test
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
Ãœ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 Linux-Installation auf Ihrem eigenen Rechner bzw. als Notlösung in einer VM haben!
2. OpenGL:
- Ãœbersetzen Sie analog zu Aufgabe 0.3 den Shader Editor (mittels
qmake && make
im Verzeichnis qt_editor) und probieren Sie ihn selber aus. - 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 …