TU Wien:Grundlagen der Computergraphik VU (Wimmer)

Aus VoWi
Zur Navigation springen Zur Suche springen

Daten[Bearbeiten | Quelltext bearbeiten]

Vortragende Adam CelarekPhilipp ErlerAnnalena UlschmidMichael Wimmer
ECTS 6,0
Alias Fundamentals of Computer Graphics (en)
Letzte Abhaltung 2025W
Sprache „bei bedarf in englisch“ ist kein zulässiger Sprachcode.
Mattermost grundlagen-der-computergraphikRegisterMattermost-Infos
Links tiss:193018, eLearning, Homepage
Zuordnungen
Bachelorstudium Informatik Modul Grundlagen der Computergraphik (Breite Wahl)
Bachelorstudium Medieninformatik und Visual Computing Modul Grundlagen der Computergraphik (Pflichtfach)
Bachelorstudium Medizinische Informatik Modul Grundlagen der Computergraphik (Gebundenes Wahlfach)
Bachelorstudium Software & Information Engineering Modul Grundlagen der Computergraphik (Gebundenes Wahlfach)


Inhalt[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

VO-Teil:

  • Wiederholung Vektor- und Matrizenmathematik
  • Transformationen
  • Viewing
  • Häufige Datenstrukturen in der Computergraphik (Point Clouds & Friends)
  • Modeling
  • Lighting
  • Texturing
  • uvm.

UE-Teil:

Implementierung in C++ mit wahlweise OpenGL* oder Vulkan. Themen:

  • Setup
  • Transformations & Pipelines
  • Geometry
  • Geometry again
  • Shading
  • Texturing

*Das LVA-Team hat angekündigt, dass die OpenGL Route auslaufend ist und ab WS26 nicht mehr angeboten wird.

Ablauf[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

VO: 2h, 1x wöchentlich.

UE: 6 Programmieraufgaben mit jeweils ~2 Wochen Zeit. Abgabegespräch nach der 3. und der 6. Programmieraufgabe.

Benötigte/Empfehlenswerte Vorkenntnisse[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

Solide Vorerfahrung im imperativen Programmierstil. C++-Kenntnisse vorteilhaft, ansonsten muss man sich einarbeiten. Vorerfahrung mit OpenGL oder Vulkan hilft natürlich ebenfalls.

Vortrag[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

Grundsätzlich gut, Prof. Wimmer ist sichtlich bemüht und interessiert. 9 Uhr in der Früh ist möglicherweise ein etwas abschreckender Zeitpunkt, der Einfluss von Prof. Wimmer darauf ist jedoch unbekannt.

Der Vortrag wird auf Englisch gehalten, da das Fach für einige Masterstudien vorausgesetzt wird.

Weitere Meinung: Ich kann mich der darüberstehenenden Meinung nur anschließen. Desweiteren finde es sehr gut, dass Prof. Wimmer nicht rein die Theorie runterbetet, sondern er stellt auch oft einen direkten Praxisbezug her (z.B. hat er öfters Projekte von früheren Studenten hergezeigt, Kurvenarten via interaktiven Demos erklärt, etc.) und versucht auch hin und wieder das Publikum einzubinden, in dem er nach Fragen zum Stoff oder generellen Erfahrungen im Bereich CG der Studenten fragt. Prof. Wimmer legt auch Wert darauf, dass man weiß/zumindest einmal gehört hat, auf welche mathematischen Grundlagen die Konzepte der Computergraphik basieren und versucht sie live herzuleiten. Leider verliert er sich dann immer etwas beim Erklären/verrechnet sich/vergisst etwas, wodurch der Vortrag ins Stocken gerät. 9 Uhr war eigentlich ok, wobei für Prof. Wimmer es aber auch scheinbar zu früh/unpassend war, da er hin und wieder erst um 9:20 bis 9:30 Uhr erschienen ist.

Übungen[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

1 kleine Git-Setup-Aufgabe ("Aufgabe 0"), danach 6 reguläre Programmieraufgaben im 2-Wochen-Rhythmus. Nach der 3. und der 6. Aufgabe sind Abgabegespräche zu den Aufgaben 1-3 bzw. 4-6 zu absolvieren. Abgabegespräche finden über Zoom oder vor Ort statt. Die Fragen, die einem gestellt werden, sind hauptsächlich theoretisch gehalten, manchmal wird man gebeten ein gewisses Code Stück herzuzeigen und/oder leicht umzuändern (es schien mir aber so, dass in dem Fall nur geschaut wurde, ob man wirklich den Code selbst geschrieben hat und sich im eigenen Programm auskennt oder nicht).

Die Abgabe erfolgt über den Gitlab Server der TU und jeder Push wird mittels einer CI/CD Pipeline überprüft. Die Pipeline erstellt am Ende ein PDF Dokument, wo die eigene Lösung mit der Musterlösung mittels Differenzbildern verglichen wird.

Verspätete Abgaben sind möglich, allerdings steigt mit länger werdender Verspätung der Punkteabzug. Effektiv gibt es nach ein paar Tagen keine Punkte. Nachdem auch die verspätete Punktefrist abgelaufen ist, werden Beispielimplementierungen bereitgestellt.

Die Aufgaben sind in C++ zu implementieren, entweder in OpenGL oder in Vulkan. Nach dem ersten Abgabegespräch (Aufgabe 3) darf gewechselt werden, Aufgaben 1-3 und 4-6 sind jedoch jedenfalls in derselben API zu implementieren. Es sind insgesamt 100 Punkte zu erreichen.

Bei den Aufgaben 2, 4, 5 und 6 gibt es eine oder mehrere Bonusaufgaben, die Extrapunkte bringen. Zusätzlich bringt jede in Vulkan absolvierte Aufgabe einen Extrapunkt von Haus aus. Es sind insgesamt 46 Extrapunkte zu erreichen (40 von Bonusaufgaben, 6 durch Vulkan). Die Bonuspunkte können nicht verwendet werden, um eine negative Note positiv zu machen, d.h. insbesondere, dass 50 Punkte aus den normalen Aufgaben (ohne Bonuspunkte) erreicht werden müssen. Es sei auch angemerkt, dass beim aktuellen Bewertungsschema alle Punkte über ca. 109 Punkten weggeclampt werden bzw. keinen Einfluss mehr auf die Bewertung haben.

Die UE-Note wird mittels dieser Formel berechnet (und ggf. basierend auf der ersten Kommastelle gerundet):

grade = clamp(-0.067 * points + 7.83, 0.5, 5.0)

Prüfung, Benotung[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

Prüfung: Multiple Choice, 90 Punkte, 90 Minuten Arbeitszeit, 50% Bestehensgrenze. Es ist ein nicht programmierbarer Taschenrechner zugelassen, ansonsten ist die Prüfung closed book.

Benotung: 60% UE, 40% VO. Beide Teile mindestens 50%, danach Benotung linear.

Dauer der Zeugnisausstellung[Bearbeiten | Quelltext bearbeiten]

noch offen

Zeitaufwand[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

Durchaus nicht zu unterschätzen, die Programmieraufgaben brauchen jeweils ~15-20h, vor allem ohne C++-Vorkenntnisse.

Lernaufwand für die Prüfung noch offen.

Unterlagen[Bearbeiten | Quelltext bearbeiten]

noch offen

Tipps[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

Vorher C++ schon einmal etwas anschauen. Wenn man von Java oder anderen höheren Programmiersprachen kommt, kann einem das Memory Management durchaus Schwierigkeiten bereiten. Je nach persönlichem Programmierstil kann man in die Objektorientierung rutschen, auch hier gibt es teilweise starke Unterschiede zu Java.

Egal ob OpenGL oder Vulkan, die Website/das Buch LearnOpenGL, kann (vor allem für Task 5) sehr hilfreich sein, da dort die Konzepte sehr verständlich erklärt werden und auch für die Aufgaben relevante (Shader) Code Segmente bereitgestellt werden. Für die ganzen Boilerplate Sachen von Vulkan fand ich Vulkan Tutorial hilfreich.

Highlights / Lob[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

Wenn man am Thema interessiert ist, ist hier sehr viel mitzunehmen. Der Vortrag ist decent, die Übungen sind realistische Szenarien und lassen sich ziemlich auf die Praxis übertragen. Das LVA-Team ist bemüht und wird sich um Probleme kümmern, wenn sie aufgezeigt werden.

Andere Meinung: Eine meiner Lieblingslehrveranstaltungen bis jetzt. Der Vorlesungsstoff ist imo nicht allzu viel tiefergehend als der vom CG-Teil von EVC, aber ich feier den grundsätzlichen Aufbau und Organisation der Übung. Die Menschen vom GCG-Team mit denen ich zu tun hatte, waren alle sehr chillig und hilfsbereit. Vor allem Annalena Ulschmid, die Dozentin, die für die Übungsaufgaben zuständig ist und auch zwei der Vorlesungen hielt, bemüht sich sehr, die LVA zu verbessern sowie für jeden spaßhaft und verständlich zu machen. Das GCG-Team war auch meistens sehr schnell im Beantworten von Forum Posts und Beheben von technischen Problemen der CI/CD Pipeline.

Verbesserungsvorschläge / Kritik[Bearbeiten | Quelltext bearbeiten]

WS 2025[Bearbeiten | Quelltext bearbeiten]

Die Qualität der Angaben schwankt sowohl innerhalb einzelner Angaben als auch zwischen den Angaben, teilweise sehr stark. Das beschränkt sich nicht nur aufs Inhaltliche, z.B. war Aufgabe 4 for some reason in einer anderen Schriftart als die restlichen Angaben. Auch innerhalb der Aufgaben schwanken die Schwierigkeitsgrade. Oft gibt es Unteraufgaben, die sehr detailliert beschrieben sind, gleichzeitig gibt es aber Unteraufgaben, die nur die allernotwendigsten Infos bereitstellen, und den Rest darf man sich ergoogeln. Nicht zuletzt sind oft Bilder an falschen Stellen oder mit den falschen Parametern eingebaut. Generell kommt es auch öfter dazu, dass man, um das Ergebnis einer Unteraufgabe zu sehen, auch die nächste(n) Unteraufgabe(n) machen muss, ohne dass es irgendeine Indication in der Angabe gibt.

Andere Meinung: ^^^ this, absolutely this. Die zweite Hälfte der (Vulkan) Aufgaben braucht dringend eine Überarbeitung, vor allem Task&Boni 6, da dort die Musterlösung (welche als Grundlage der CI/CD Pipeline dient) in mehreren Punkten nicht mit der Angabe übereinstimmt. Es gab einen sehr ausführlichen Forumsthread seitens der Studenten bezüglich der letzten Angabe, das GCG-Team weiß also über die Probleme bescheid. Ich hoffe, dass dieses Feedback auch umgesetzt wird. Sonst find ich das Bewertungssystem unnötig convulted und die Bonuspunkte haben viel zu wenig Auswirkung für die Arbeit, die hinter manchen davon steckt. Der Großteil der Bonuspunkte dient, meiner Meinung nach, aktuell hauptsächlich nur als Puffer, wenn man ein paar Punkte beim Abgabegespräch verliert. So ca. 70% der Foliensätze scheinen ziemlich veraltet zu sein und könnten aufgefrischt/verbessert werden. Ein Skriptum wie in EVC wär auch cool. Man bekommt nur kleine Sneak Peeks hinter die Kulissen mittels den Vorträgen und Posts der Dozentin Ulschmid, aber manche dieser Punkte wurden scheinbar bereits intern besprochen, fanden aber keinen Anklang beim Rest des Teams. Ich weiß auch nicht, was ich davon halten soll, dass die Testangabe dieses Jahr mit Hilfe von Gemini erstellt wurde, but we'll see soon.