CGExercises

CG Exercise #03

Computergraphik ├ťbungsblatt #03


Blender Tutorial: Shading & Rigging



Animieren mit Blender (Blender Teil #2)


Aufgabe 3.1: Rigging - Bone-Hierarchien

TeilVideos des WS 2021/22Thema
Blender 3.1YTShading - Materialien und Texturkoordinaten
Blender 3.3YTRigging - Bonehierarchien

Hierarchische Beziehungen zwischen Objekten herzustellen ist essentiell wichtig f├╝r die Vereinfachung einer Animation von Objekten. Bitte erstellen Sie ein Knochenger├╝st (Rig, Armature) f├╝r eines der modellierten Objekte, welches die Deformation der einzelnen Meshbereiche vereinfacht.

Mit dem “Skin” Modifier k├Ânnen Sie recht einfach 3D-Strichfiguren erstellen. Gleichzeitig erm├Âglicht dieser die Ableitung eines Rigs per Knopfdruck. Wenden Sie dazu jedoch ggf. den Mirror Modifier an. Wenn Sie ein komplett neues Rig (Armature) erstellen, dann m├╝ssen Sie das zu animierende Mesh als Kind der Amature (STRG + P im Object mode) zuweisen. Sorgen Sie f├╝r gen├╝gend Gelenke zum Animieren. Lassen Sie Blender automatisch das aufwendige Skinning durchf├╝hren, indem f├╝r jeden Bone die zugeh├Ârigen Vertices (Vertex Groups) ermittelt und zugewiesen werden (Armature Deform - With Automatic Weights).

Aufgabe 3.2: Animation - Objectmode und Posemode

TeilVideos des WS 2021/22Thema
Blender 4.6: AnimationYTAnimation und F-Curve-Modifier

Animieren Sie bitte das Rig f├╝r eines Ihrer Objekte aus der vorherigen ├ťbung. F├╝r die allgemeine, rigide Objektbewegung k├Ânnen Sie die Armature im Object mode ├╝ber Keyframes animieren.

Um feinere Deformationen (z.B. Ver├Ąnderung der Extremit├Ąten) zu animieren, erstellen Sie entsprechend Keyframes im Posemode der Armature.

Denken Sie auch an die Animation der Kamera! Das funktioniert genauso wie die Animation des Rigs im Object mode mithilfe von Keyframes. Schaffen Sie es eine kleine Geschichte mit einfachen Bewegungen zu erz├Ąhlen?

Aufgabe 3.3: Rendering - Die Animation als Videodatei ausspielen

TeilVideos des WS 2021/22Thema
Blender 4.8: Videoschnitt und RenderingYTGerenderte Bildsequenz zu Video zusammenf├╝gen und als Videodatei ausspielen

Bitte rendern Sie die Animation unter Verwendung von Globaler Beleuchtung mithilfe von der Cycles Renderengine. Beachten Sie bitte hierbei, dass Ihre Kamera ├╝ber die gesamte Animation hinweg das wichtige Geschehen zeigen sollte und dass das Rendern lange dauern kann… .

Um bei etwaigen Abst├╝rzen die Arbeit nicht zu verlieren, rendern Sie die Animation zun├Ąchst als Bildsequenz (z.B. .jpg) und f├╝gen diese in Blender wieder zu einem Film zusammen, den Sie dann als Videodatei (z.B. .mp4) ausgeben.

Wenn sie bis hierher gekommen sind, haben Sie die Grundlagen in Blender erlernt und gleichzeitig Ihren ersten Kurzfilm erstellt. Herzlichen Gl├╝ckwunsch!


OpenGL: Erstes eigenes Programm


TeilVideos des WS 2021/22Thema
OpenGL 3.5 & 3.6YTArbeiten mit qt_template

Aufgabe 3.4: Linien zeichnen (CMake)


Linien mit OpenGL

├ľffnen Sie ein Terminal Fenster und navigieren Sie in das “qt_template” Verzeichnis des glVertex Frameworks, welches Sie in ├ťbung #01 installiert haben.

├ťbersetzen Sie die Programmiervorlage und starten Sie sie:

cmake . && make && ./qt_template

Sie sollten nun ein (fast) leeres Fenster sehen. Dies ist der Startpunkt f├╝r die ersten OpenGL Befehle im ersten eigenen OpenGL Programm:

  1. Verwenden Sie einen Plain-Text-Editor wie den Emacs o.├Ą., um das Programm qt_template.cpp zu ver├Ąndern.
  2. Zeichnen Sie eine einzelne Linie, wie in der Vorlage bereits als Kommentar vorgeschlagen.
  3. Zeichnen Sie eine weitere Linie, so dass ein Kreuz entsteht.
  4. Ändern Sie die Hintergrundfarbe auf Himmelblau.
  5. Entlang welcher Achse schaut der Betrachter?
  6. Welche zwei Achsen definieren die Bildebene?

Materialien:

Aufgabe 3.5: Dreiecke zeichnen (Qt Creator)


Dreiecke mit OpenGL

├ľffnen Sie nun dasselbe Programm nicht vom Terminal aus, sondern mit Hilfe von QtCreator. Dazu doppel-klicken Sie auf die .pro-Datei im Verzeichnis “qt_template”. F├╝hren Sie das Programm nun in QtCreator aus, indem Sie auf den gr├╝nen Pfeil klicken.

Sie sollten nun dieselbe Darstellung wie in der vorhergehenden Aufgabe sehen, und k├Ânnen weitere OpenGL Befehle hinzuf├╝gen:

  1. Zeichnen Sie wie in der Vorlesung ein wei├čes Dreieck.
  2. Zeichnen Sie wie in der Vorlesung ein farbiges Dreieck mit unterschiedlichen Farb-Attributen f├╝r jeden Vertex.
  3. Zeichnen Sie ein weiteres Dreieck, welches sich mit dem ersten schneidet.

Hinweis: QtCreator ist die empfohlene Entwicklungsumgebung f├╝r Linux, im Notfall kann man aber auch auf die Kommandozeile (via CMake & Emacs) wie in der vorherigen Aufgabe ausweichen.


Hausaufgaben bis zum vierten Praktikum


1. Blender:

  1. Texturierung:
    1. Erkl├Ąren Sie bitte, wie es funktioniert, dass zweidimensionale Bilder auf dreidimensionalen Objekten dargestellt werden k├Ânnen. Welche zwei Dinge ben├Âtigt man unbedingt, damit dies funktioniert?
    2. Was ist der Unterschied zwischen Welt-, Objekt- und Texturkoordinaten? Welches konkrete kartesische Welt-Koordinatensystem verwendet Blender im Gegensatz zu OpenGL? Das hei├čt, wie sind die Achsen der Koordinatensysteme orientiert?
    3. In folgendem Bild ist die Zuordnung von 3D Raum zum 2D Bildraum gegeben (Zahlen 1 bis 6). Beschreiben Sie bitte welche Formen jeweils auf den Fl├Ąchen A und B zu sehen sind, wenn in Blender die Materialien richtig definiert und dargestellt werden.
  2. Blender-Projekt
    Bereiten Sie als Blender-Team eine Folie vor, auf der Sie Ihr Blender-Projekt und Ihr Team kurz beschreiben! Laden Sie diese Folie ins Protokoll-Uploadverzeichnis hoch (Format: BlenderProject-XYZ.pdf).

2. OpenGL / Matrizen:

  1. Rotation und Translation:
    In der Vorlesung haben wir beispielhaft mit einer Transformationsmatrix einen 3D Vektor transformiert. Die Transformation bestand aus einer Rotation und einer nachfolgenden Translation.
    1. Wie sieht diese Matrix aus? Aus welchen Teilmatrizen ist diese aufgebaut? Erkl├Ąren Sie die Bestandteile der Matrix!
    2. Wie sieht die Matrix und der transformierte Vektor aus, wenn in umgekehrter Reihenfolge transformiert wird, d.h. wenn erst transliert und dann rotiert wird?
  2. Matrizenmultiplikation:
    Die Rotation um einen Punkt ist eine aus drei Teil-Transformationen zusammengesetzte Transformation. Berechnen Sie - wie in der Vorlesung - im zwei-dimensionalen Raum mit homogenen Koordinaten die Rotation des Punktes P mit den Koordinaten (4, 1) um 90 Grad im Uhrzeigersinn um den Punkt A mit den Koordinaten (2, 2).
    1. Stellen Sie daf├╝r die 3 Teil-Transformationsmatrizen auf.
    2. Um welchen Punkt wird bei der lokalen Transformationsmatrix rotiert?
    3. In welcher Reihenfolge m├╝ssen die obigen Matrizen multipliziert werden? Was passiert bei umgekehrter Reihenfolge?
    4. Berechnen Sie durch Matrixmultiplikation die 3×3 Matrix, mit der die gesamte Transformation durchgef├╝hrt wird.
    5. Anschlie├čend transformieren Sie den Punkt P, und ├╝berpr├╝fen zeichnerisch, ob das Ergebnis stimmt.
  3. Animation:
    Angenommen die Framerate sei in fps gegeben. Berechnen Sie die Zeitdauer $\Delta t$ zwischen zwei Frames. Weiterhin sei eine Winkelgeschwindigkeit $\omega$ gegeben. Berechnen Sie den Winkel $\Delta\alpha$, um den in jedem Frame gedreht werden muss, um ein Objekt mit der Winkelgeschwindigkeit $\omega$ zu animieren. Berechnen Sie die Formel f├╝r den Winkel $\Delta\alpha$ in Abh├Ąngigkeit von $\omega$.

Options: