CGExercises

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, in dem Sie folgendes stichpunktartig festhalten:

  • jeweiliges Datum des protokollierten Praktikums
  • dabei durchgeführte Schritte
  • Reflexion bzw. Fragen, die dabei aufgetaucht sind
  • finaler Screenshot des jeweiligen Praktikumsergebnisses sowohl für den Blender- und den OpenGL-Teil

Dieses Protokoll geben Sie regelmäßig als PDF nach jedem Praktikum ab (Deadline: 23:59 Uhr des folgenden Tages). Eine Kontrolle erfolgt stichprobenartig. Die Abgabe erfolgt im folgenden Upload-Verzeichnis:

  • http://schorsch.efi.fh-nuernberg.de:8080/upload_cogr/
    • Das Verzeichnis ist nur innerhalb der TH bzw. mit VPN erreichbar
    • Bitte benutzen Sie einen einheitlichen Dateinamen
      • mit dem Format Jahr-Monat-Tag.COGR-Protokoll.Vorname-Nachname.pdf
      • also z.B.: 2020–10–01.COGR-Protokoll.Erika-Musterfrau.pdf
    • Maximal eine Seite pro Praktikum
    • Bitte dokumentieren Sie die Übungen fortlaufend in einem Gesamtprotokoll und nicht einzeln. Zum Ende des Praktikums enthält das Protokoll also alle Übungen.
    • Bitte benutzen Sie diese Word-Vorlage. Diese Vorlage bearbeitet man am besten mit LibreOffice (sudo apt-get install libreoffice) und exportiert die Vorlage vor dem Hochladen als PDF.

Die im Protokoll dargestellten Übungen werden mit + für gute Arbeit, mit ++ für hervorragende Arbeit, und mit - für Aufgaben bewertet, bei denen wesentliche Teile fehlen (oder geschummelt wird).

Die Hausaufgaben werden in der jeweils nächsten Stunde von Studierenden vorgeführt. Die Auswahl wird anhand dieser Teilnehmerliste zufällig getroffen! Auch die vorgeführten Hausaufgaben werden mit + ++ und - bewertet.

Für das Testat müssen Sie das Protokoll abgegeben haben, in dem alle Praktika dokumentiert sind, und mindestens zwei vorgeführte Hausaufgaben bzw. Teilaufgaben vorweisen können. Ggfls. vorhandene - müssen mit ++ ausgeglichen werden.

TeilVideoThema
OrgaYTOrganisatorisches, Protokoll, Hausaufgaben etc.


Einstieg in die OpenGL-Programmierung



OpenGL glxgears
TeilVideoThema
OpenGL 1.1YTOpenGL & Framework Installation

Aufgabe 1.1: Installation OpenGL

Sie benötigen eine aktuelle OpenGL Installation.

Die Laborrechner sind bereits entsprechend installiert - wenn Sie auf Ihrem eigenen Rechner arbeiten, laden Sie das Framework herunter, entpacken Sie es und rufen Sie im entpackten Verzeichnis im Terminal

sudo ./installer.sh

auf. Sie müssen dafür das Admin-Passwort verdeckt eingeben.

Das Skript installiert alle Abhängigkeiten automatisch, zumindest für die Linux-Distributionen Ubuntu, Mint, Debian, Fedora und openSUSE, außerdem auch für MacOS X. Das Framework funktioniert ebenfalls unter Windows, es gibt hierfür jedoch keine Unterstützung sondern nur für Linux und MacOS X!

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

Aufgabe 1.2: OpenGL Framework


Beispielprogramm qt_triangle

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

cmake . && make && ./qt_triangle

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.

Übersetzen Sie zum Abschluß das Beispielprogramm qt_gears im qt_examples Verzeichnis.

Falls Sie Abstürze oder graphische Unstimmigkeiten 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


TeilVideoThema
Blender 1.3YTBlender Installation und Erklärung der Hausaufgabe

Oberfläche von Blender

Aufgabe 1.3: Installation Blender

Bitte installieren Sie nun nach der Installation von OpenGL auch Blender. Sie können zwar auf Linux (Ubuntu) mit dem Befehl sudo apt-get install blender Blender installieren, jedoch ist die verfügbare Blenderversion möglicherweise veraltet. Laden Sie Blender deshalb bitte direkt über

herunter. Wir werden im Praktikum mit Blender 2.90 Portable arbeiten.

Aufgabe 1.4: Blender Projekt


Blender Projekt - Beispiel: Sintel

Finden Sie Sich bitte für ein gemeinsames Blenderprojekt in Gruppen zu maximal 6 Personen zusammen. Überlegen Sie über die kommenden Wochen, welches Projekt Sie gerne gemeinsam realisieren möchten, d.h. das Ziel des Blenderprojektes ist die Realisation einen Kurzfilms mit Blender. Kurz heißt wirklich kurz ;-)

Der Blender Kurzfilm ist keine Voraussetzung für das Testat, Sie bekommen jedoch für die CG Klausur Bonuspunkte angerechnet, wenn Sie einen Kurzfilm zum Abschluß dieses Praktikums vorstellen.


Hausaufgaben bis zum zweiten Praktikum


1. OpenGL:

  1. In der Demo-Session des Praktikums wurde der GLSL Shader Editor des Frameworks gezeigt. Übersetzen Sie den Shader Editor (mittels qmake && make im Verzeichnis editor) und probieren Sie ihn selber aus. Laden Sie den Teapot 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!
  3. Verändern Sie den Fragment-Shader, indem Sie die Ausgabefarbe gl_FragColor verändern. Verwenden Sie dazu die Fragment-Position gl_FragCoord, von der Sie die .z Komponente geeignet skalieren und als Rot-Komponente .r der Ausgabefarbe verwenden. Versuchen Sie damit außerdem ein Streifenmuster zu erzeugen! Tipp: sin()

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: