CGExercises

CG Exercise #01

Computergraphik Übungsblatt #01


OpenGL & Blender



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

Photorealismus vs. Interaktion

Stellvertretend fĂŒr diese zwei Ziele werden wir im Praktikum die folgende Software anwenden:

Blender vs. OpenGL

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.


Einstieg in die OpenGL-Programmierung


Aufgabe 1.1: Installation OpenGL


OpenGL glxgears

Sie benötigen eine aktuelle OpenGL Installation. Die empfohlene Platform dafĂŒr ist Linux bzw. Ubuntu!

Die Laborrechner sind bereits entsprechend installiert - wenn Sie auf Ihrem eigenen Linux Rechner arbeiten, laden Sie das glVertex Framework herunter und geben Sie im Downloadverzeichnis folgendes im Terminal ein:

unzip *.zip
cd glvertex-*
./installer.sh

Sie mĂŒssen wĂ€hrend des Ablaufs das Admin-Passwort verdeckt eingeben.

Das Skript installiert alle AbhĂ€ngigkeiten automatisch, zumindest fĂŒr die Linux-Distributionen Ubuntu, Mint, Debian, Fedora, openSUSE und fĂŒr MacOS. Das Framework funktioniert zwar ebenfalls unter Windows und MacOS, wir empfehlen aber ganz ausdrĂŒcklich nur Ubuntu. Wir leisten fĂŒr andere Betriebssysteme keine Hilfestellung (insbesondere nicht fĂŒr Mac oder Windows)! Falls Sie keine Ubuntu Installation zur VerfĂŒgung haben sollten, so verwenden Sie bitte einen Ubuntu Labor- oder Leihrechner!

Nach erfolgreicher Installation starten wir das Programm glxgears. Sie sollten nun ein paar rotierende ZahnrÀder (wie im rechten Bild) sehen.

Materialien:

Aufgabe 1.2: OpenGL Framework


Beispielprogramm qt_triangle

Übersetzen Sie im Terminal das Beispielprogramm qt_triangle im qt_examples Verzeichnis, und rufen Sie es auf:

cd qt_exampes
cmake . && make && ./qt_triangle

Bemerkung: Das && zwischen den hintereinander aufgefĂŒhrten Einzelbefehlen stellt sicher, dass bei einem Baufehler der folgende Befehl nicht aufgerufen wird.

Falls Sie ein rotierendes Dreieck sehen, so haben Sie nun das OpenGL Framework ein erstes Mal erfolgreich verwendet. LĂ€uft!

Ü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 nicht mit NVidia Treibern!


Einstieg in Blender


Aufgabe 1.3: Installation Blender


OberflÀche von Blender

Bitte installieren Sie nun nach der Installation von OpenGL auch Blender. Laden Sie Blender bitte direkt ĂŒber

herunter. Die empfohlene Plattform dafĂŒr ist Windows oder Mac. Wir werden im Praktikum mit Blender LTS Release 3.6.4 (Portable) arbeiten.

Aufgabe 1.4: Blender Projekt


Blender Projekt - Beispiel: Sintel

Sie können parallel zu diesem Kurs auf freiwilliger Basis ein Blender-Projekt realisieren. Dazu finden Sie Sich am besten in Gruppen zu maximal 6 Personen zusammen. Überlegen Sie ĂŒber die kommenden Wochen, welches Projekt Sie gerne gemeinsam realisieren möchten, folgendes wĂ€re denkbar:

  • Realisation eines Kurzfilms mit Blender. Kurz heißt wirklich kurz ;-)
  • Realisierung eines eigenen Blender-Addons (Python)

Anforderungen:

  • Eigene Idee und KreativitĂ€t
  • Fremde Assets dĂŒrfen verwendet werden, aber Quellenangabe, kein Plagiat!
  • Codevorlagen sowie LLMs (Large Language Models wie z.B. ChatGPT) dĂŒrfen verwendet werden, solange die verwendeten Quellen bzw. GPT-Prompts entsprechend dokumentiert werden
  • Auf Nachfrage muss der komplette Code erklĂ€rt werden können!

Die Teilnahme am Blenderprojekt ist keine Voraussetzung fĂŒr das Bestehen des Kurses, es ist lediglich eine Empfehlung, um seine Blender-Kenntnisse zu vertiefen. Sie bekommen jedoch das Blender-Projekt als Bonusleistung fĂŒr die CG Klausur angerechnet, wenn Sie Ihr Projekt zum Abschluß dieses Praktikums vorstellen.


Protokoll des aktuellen Praktikums


Bitte protokollieren Sie die Ergebnisse des aktuellen Praktikums mit. FĂŒr heute reicht ein einfacher Screenshot des OpenGL- und Blender-Teils. Es wird empfohlen, die Hausaufgaben ebenfalls im Protokoll mit zu dokumentieren, dies ist aber kein Muß. Voraussetzung zum Bestehen des Praktikums ist jedoch, dass die Dokumentation des jeweiligen Praktikums im Gesamtprotokoll vorhanden ist und bis zur jeweiligen Deadline hochgeladen wird.


Hausaufgaben bis zum zweiten Praktikum


BYOD (Bring-Your-Own-Device):

Vergewissern Sie Sich, dass Sie eine lauffÀhige Linux-Installation auf Ihrem eigen Rechner haben!

1. OpenGL:

  1. Übersetzen Sie analog zu Aufgabe 1.2 den Shader Editor (mittels qmake && make im Verzeichnis qt_editor) und probieren Sie ihn selber aus. Laden Sie den Teapot (teapot.obj) als Objekt in den Editor.
  2. 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!

Blender Cheat Sheet

2. Blender:

  1. In der Demo-Session des Praktikums wurden zwei verschiedene Bildsynthese-Methoden von Blender vorgestellt: “Eevee” und “Cycles”. Laden Sie Sich ein vorgefertigtes Beispielprojekt von https://www.blender.org/download/demo-files/ herunter und rendern Sie dieses ein Mal mit “Eevee” und ein Mal mit “Cycles”.
  2. ErklÀren Sie, was Ihnen jeweils im Vergleich zum anderen Render Modus auffÀllt (z.B.: Dauer, QualitÀt, visuelle Unterschiede in den Bildern).
  3. Empfehlung: Besorgen Sie sich fĂŒr eine angenehme Arbeit mit Blender eine externe Maus mit Mausrad und eine Tastatur mit einem Ziffernblock. Das wird Ihnen die Arbeit erheblich erleichtern.

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 OpenGL und Blender

Options: