Blender Prüfungsvorbereitung

Aufgaben zur Vorbereitung auf die Computergrafikprüfung
von Adam Kalisz

In der Computergrafik-Vorlesung haben Sie verschiedene Begriffe kennengelernt mit welchen Sie in den Übungen praktisch arbeiten konnten. Dazu gab es des Öfteren Verweise auf Blender um Ihnen zu zeigen, dass es sich dabei nicht nur um theoretische Konzepte handelt. Nachfolgend biete ich Ihnen eine Lernzielkontrolle zu den besprochenen Inhalten.

Fragentyp: Fachbegriffe

  1. Was versteht man unter Backface Culling?


  2. Was versteht man unter einer Normalen?


  3. Welche Modellierungstechniken haben Sie kennengelernt (zwei Antworten)?
    und

  4. Woher weiß Blender, wie ein zweidimensionales Bild (Textur) auf eine dreidimensionale Geometrie geklebt werden muss?


  5. Bitte weisen Sie die folgenden Begriffe den entsprechenden Render-Engines in Blender zu: Real-Time / Offline Rendering und Lokales / Globales Beleuchtungsmodell?
    Render-Engine Real-Time / Offline Beleuchtungsmodell
    Blender Render (Raytracer, mittlerweile entfernt)
    EEVEE (Rasterisierer)
    Cycles (Pathtracer)


  6. Blenderversion 2.8 erhält die neue EEVEE Echtzeit-Renderengine. Damit steigt die OpenGL Version von 1.4 (Jahr 2002) auf mindestens 3.3 (Jahr 2010) und es findet der Wechsel von der sogenannten Fixed-Function zur Programmable-Function Pipeline statt. OpenGL erfordert dafür die Programmierung von zwei bestimmten Komponenten die als kleine Programme auf der Grafikkarte ausgeführt werden. Welche sind das (zwei Antworten)?
    und

  7. Standardmäßig verwenden die Offline-Render-Engines in Blender zum Rendern die Kerne des Hauptprozessors (CPU) des Rechners. Das sind heutzutage meist acht, die nach und nach Teile (Tiles) des finalen Bildes rendern. Es gibt eine andere Art von Prozessor, der verstärkt zum Rendern benutzt wird und z.B. 5760 Kerne hat (vgl. GeForce GTX TITAN Z), die parallel - also gleichzeitig - ein Bild rendern können. Wie nennt man so einen Prozessor?


  8. Um Farben für Materialien zu definieren bietet Blender drei verschiedene Möglichkeiten an; RGB, HSV und Hex. Unter welchem Hauptbegriff fasst man diese Möglichkeiten zusammen (RGB ist ein ...) und welche von diesen drei verwendet man typischerweise wenn man Farben definiert (Tipp: das ist die Standardoption in Blender)?


  9. Standardmäßig betrachtet man eine Szene in Blender durch eine Kamera mit perspektivischer Zentralprojektion als Projektionsverfahren. Sie haben im Praktikum gesehen, dass die Modellierung damit nicht immer sinnvoll ist, da Seitenansichten Punkte, die eigentlich hintereinander liegen, gegebenenfalls so stark verzerren, dass es zu mühsam wird die richtigen Punkte auszuwählen. Welche Projektionsart kennen Sie noch, die insbesondere bei der Modellierung hilfreich ist?


  10. Derzeit dominieren zwei Grafikstandards den Markt mit denen Zeichenbefehle an Grafikkarten gesendet werden können; DirectX und OpenGL. Welcher davon wird für die Echtzeitdarstellung in Blender verwendet?


  11. Da GLUT (OpenGL Utility Toolkit) damals auf Apple's Mac OSX nicht verfügbar war, musste in Blender ein eigenes System entwickelt werden, welches GHOST getauft wurde (Generic Handy Operating System Toolkit). Welche Aufgabe soll dem Entwickler denn dadurch überhaupt abgenommen werden, OpenGL kann doch alles was man braucht um ein einfaches 3D Programm zu schreiben, oder?!


  12. Mit den Optionen "Shade Flat" und "Shade Smooth" lässt sich in Blender zwischen Flat und Smooth Shading umschalten um Objekte flach oder glatt darstellen zu lassen. Für letzteres wurde vor Blender 2.8 noch Gouraud Shading unterstützt. Mittlerweile nur noch fortgeschrittenere Interpolationsmethoden wie z.B. Phong Shading. Was genau wird denn bei so einer glatten Darstellung interpoliert (zwei Antworten)?
    Entweder oder .

  13. Rotationen in 2D sind ja noch recht einfach. Sobald wir in 3D arbeiten gibt es einiges zu beachten, z.B. rechts- vs. linkshändige Koordinatensysteme, den Gimbal Lock oder generell die Art und Weise wie Rotationen ausgedrückt werden. Um letzteres geht es in dieser Frage. Bitte nennen Sie zwei Arten wie man Rotationen im 3D Raum ausdrücken kann. Es gäbe da z.B. Quaternionen (Quaternions), Drehung um beliebige Achsen (Axis, Angle), ... und ... (zwei Antworten, Tipp: Vergleich OpenGL und Blender)?
    und .

Fragentyp: Arbeit mit Blender

  1. Für die Echtzeit-Darstellungsmethode der 3D Ansicht bietet Blender 2.8 "Wire", "Solid", "Look Dev / Material Preview" und "Rendered" an. Welche davon wäre z.B. zur Beurteilung der Materialeigenschaften (Farben, Spiegelungen, Struktur) eines Objekts geeignet?


  2. Während der Modellierung fallen Ihnen vereinzelt Artefakte (d.h. Fehler) bei der Darstellung von einigen Polygonen auf. Es scheint als wären die Flächen unterschiedlich beleuchtet. Woran liegt das und wie lässt sich das Problem beheben (Tipp: Denken Sie daran welche Oberflächeninformation bei der Beleuchtung immer verwendet wird)?


  3. Nun bemerken Sie, dass Ihr Modell seltsamerweise mehr Punkte hat, als Sie eigentlich sehen können. Vorher hatten Sie aus dem Standardwürfel ein Polygon extrudiert, sich dann aber nochmal umentschieden und die Operation deshalb einfach abgebrochen. Was ist dadurch passiert und was tun Sie dagegen?


  4. Sie haben eine neue Kugel erstellt, diese sieht aber noch zu kantig aus - was können Sie dagegen tun ohne die Anzahl der Polygone zu erhöhen?


  5. Sie wissen wie man einen Würfel in OpenGL erstellt - wie geht das in Blender?


  6. Anstatt die Vertex-Koordinaten, Vertex-Farben, Textur-Koordinaten, Normalen, Gruppen und sämtliche Materialeigenschaften für ein Objekt mühsam im (C++)-Programm-Code einzugeben können Sie Ihr Modell komfortabel in Blender erstellen. Aber wie bekommen Sie dieses dann von Blender in Ihre eigene Applikation? Erklären Sie bitte kurz.


  7. In der Vorlesung und bei OpenGL-Themen wurde größtenteils davon gesprochen, dass Objekte aus Dreiecken aufgebaut sind. In Blender haben Sie jedoch gesehen, dass Dreiecke bei der Modellierung generell stören und besser Vierecke verwendet werden sollten. Also müssen diese Dreiecke beim Zeichnen einen ganz entscheidenden Vorteil haben - welches unschlagbare Argument spricht für die Verwendung von Dreiecken in der Grafikpipeline (Tipp: Stellen Sie sich vor Sie möchten ein Dreieck und ein Viereck zeichnen)?


  8. Beim (vereinfachten) Raytracing werden Strahlen aus Sicht der Kamera gesendet und mit jedem Dreieck in der Szene geschnitten um herauszufinden welche Oberfläche von einem Objekt sichtbar ist. Die Zeitkomplexität für diesen Algorithmus ist O(Dreiecke * Pixel). Wenn man Objekte in der Szene mathematisch beschreiben kann, dann lässt sich die Zeitkomplexität auf O(Pixel) reduzieren. Stellen Sie sich vor, dass Sie eine Kugel mit 7.200 Dreiecken und ein Bild mit 1000 Pixeln rendern möchten. Würden Sie die Kugel mit dem ersten (Schneiden von Dreiecken) oder dem zweiten Algorithmus (Schneiden von Kugel) rendern (mit Begründung)?


  9. Die Standardszene in Blender enthält einen Würfel, der sich im Weltursprung befindet (also nicht transliert, rotiert oder skaliert wurde). Sie bewegen den Würfel nun entlang der positiven x-Achse um 4 Einheiten. Welche Werte enthält nun die Model-Matrix des Würfels (also die Transformation von Objekt-Koordinaten zu Welt-Koordinaten)?


  10. Im OpenGL-Teil von Vorlesung und Praktikum haben Sie recht intensiv das Konzept der Hierarchischen Modellierung kennengelernt. Damit konnten Sie erreichen, dass Transformationen abhängig von anderen Transformationen ausgeführt wurden. Erklären Sie bitte, bei welcher Aufgabe dieses Konzept in Blender hilfreich sein kann - oder geht das etwa gar nicht in Blender?


  11. In Blender können Sie alle Objekte der aktuellen Szene im Outliner betrachten. OpenGL bietet diese Möglichkeit nicht, lässt sich aber durch einen sogenannten Szenengraphen erweitern. Welchen Vorteil hätte es einen Szenengraphen in der eigenen Applikation zu implementieren?


  12. Wenn Sie Ihr Bild in Blender fertig gerendert haben ist noch lange nicht Schluss. Mal abgesehen davon, dass Sie auch den Videoschnitt in Blender machen können, so können Sie jedes Rendering im Compositing nachbearbeiten. Auch in OpenGL bietet modernes Post Processing großartige Echtzeit-Verfahren um photorealistische Ergebnisse zu erzielen. Welche fortgeschrittenen Effekte könnte man z.B. in Eevee mittels Multipass-Verfahren rendern (zwei Antworten)?
    Beispielsweise und .

  13. Interessant wird ein Film meistens erst, wenn sich auch etwas bewegt. Dafür gibt es das Konzept der Animation. Erklären Sie bitte kurz wie Animationen funktionieren und was man dafür benötigt. Welche Arbeit nimmt Ihnen Blender hier glücklicherweise ab, wenn Sie beabsichtigen einen 10 Sekunden Film (also 250 Einzelbilder!) zu animieren?
    .

Bonusrunde: Blenderprofi

  1. Wie heißt die Scriptsprache von Blender?


  2. In welcher Programmiersprache wurde Blender geschrieben?


  3. Mit welcher Sprache ist es seit Blenderversion 2.65 möglich, eigene Shader für die Cycles-Renderengine zu schreiben?


  4. Dies ist ein Original-Ausschnitt aus einem sehr alten Blendercode (SVN revision 53304):
    void fdrawline(float x1, float y1, float x2, float y2)
    {
    	float v[2];
    	
    	glBegin(GL_LINE_STRIP);
    	v[0] = x1; v[1] = y1;
    	glVertex2fv(v);
    	v[0] = x2; v[1] = y2;
    	glVertex2fv(v);
    	glEnd();
    }
    Wozu dient diese Funktion?


  5. Sie sind endlich mit Ihrem aufwendigen Blenderprojekt fertig, ahnen jedoch bereits, dass Ihr Heim-Rechner etwa 20 Wochen zum Rendern brauchen wird, dabei ist die Projektabgabe bereits in einer Woche - was können Sie tun?


Beim Absenden werden alle Antworten per E-Mail an Sie und an Mich (Adam Kalisz) gesendet. Damit fällt mir die Korrektur leichter.

Ihr Name:
Ihre E-Mail-Adresse:

DSGVO-Hinweis: Es werden ausschließlich diejenigen Daten erfasst, die man als Nutzer auch auf dieser Seite eingeben kann. Diese Daten werden nicht gespeichert, sondern direkt als Mail versendet. Dadurch ist klar ersichtlich welche Informationen an mich weitergeleitet werden. Selbstverständlich lösche ich gerne die E-Mail oder versende Sie erneut, falls gewünscht. Dazu reicht eine kurze Info an mich.