Dr. Raphael Wimmer Sommersemester 2023
Dieser Kurs ist ein Experiment. Manches wird gut klappen, manches weniger gut. Feedback nehme ich gerne an. Manche Details passe ich während des Semesters an.
Anstelle einer klassischen Vorlesung mit Übung gibt es:
Sie erhalten von mir:
“Aufwendiger Kurs, aber sehr praktisch weswegen es auch Spaß macht und die Zeit die man dafür aufwendet auch schnell verfliegt.”
“Interessante Vorlesung, die mir neue Themen und Anwendungsmöglichkeiten beigebracht hat. Die Einführungen in die OpenGL und OpenCV waren spannend und mir davor nur vom hören bekannt. Die Studienleistungen ließen sich auch gut bearbeiten. Waren am Anfang etwas überfordernd (da es bei mir kaum/kein Vorwissen gab), aber ließen sich meistens doch ganz gut durcharbeiten.”
“Sehr interessante Vorlesung, die viel praktisches Wissen mit sich bringt”
“Sehr interessant, aber man muss am Ball bleiben”
“Die Studienleistungen waren sehr interessant und anspruchsvoll, haben aber auch Spaß gemacht. Hab mir teilweise etwas schwer getan, auch weil mir die Erfahrung mit Python gefehlt hat. Vor allem bei Modern Opengl für Python (also mit GLSL) gab es einige Schwierigkeiten, da [...] Mit OpenGL Immediate Mode war die SL jedoch mit den vorhandenen Mitteln gut zu bearbeiten. Die Aufzeichnungen der Vorlesung waren teils etwas spät. Ansonsten sehr interessante und coole Veranstaltung, bei der man auch viel selber herumprobieren durfte (v.a. bei Studienleistungen) und gut erklärte Beispiele bekommen hat.”
Klassische frontale Vorlesung zum Einstieg.
Themen heute:
Danach eine Übung mit:
(kommt noch)
Material:
Es gibt drei verbreitete Möglichkeiten, Python-Module zu installieren:
apt
unter Debian/Ubuntu Linux)pip
- Pythons Paketmanagerconda
- Paketmanagement der Anaconda-DistributionUm für jede Anwendung separate Module zu installieren: virtual environments
apt install python3-matplotlib
pip3 install matplotlib
pip3 install -r requirements.txt
: Textdatei mit Paketnamen und ggf. Versionen.conda
: package manager für Anaconda (Intro).env
anlegen: python3 -m venv .env
source .env/bin/activate
(deaktivieren durch Beenden der Shell)conda create --name myenv
/ conda activate myenv
Entwickeln Sie eine Anwendung Mini-Gimp, mit der man (destruktiv) Bilder bearbeiten kann. Bilder liegen als RGB- oder Graustufenbild vor und können mit Pillow eingelesen und geschrieben werden. Ansonsten sollen alle Bildoperationen selbst geschrieben werden.
Abgabe: Di, 16. Mai 2023 (5 Bonuspunkte - pro angefangener weiterer Woche 1 Punkt weniger)
Verpflichtende Features:
python3 minigimp.py --threshold 90 --blur 3 --edges image.jpg
)Wahlpflichtfeatures (3 Features):
Siehe GRIPS
Entwickeln Sie eine Zeichenanwendung mini-draw.py, mit der man Vektorgrafiken erstellen und bearbeiten kann. Die Funktionsweise soll gängigen Vektorgrafikprogrammen wie z.B. Inkscape ähneln. Die Anwendung soll einen tkinter.Canvas verwenden, in dem über die create_rect()-Methode einzelne Pixel gesetzt werden. Alle weiteren Zeichenoperationen sollen auf dieser Basis implementiert werden. Abgabe: Di, 20.6. 2023 (5 Bonuspunkte - pro angefangener weiterer Woche 1 Punkt weniger)
Folien dieses Mal als PDF in GRIPS
Folien in GRIPS
Entwickeln Sie eine Anwendung, die eine 3D-Welt, organisiert in einem Szenengraph, darstellt. Sie können zur Implementierung den OpenGL Immediate Mode verwenden.
Entwickeln Sie eine Anwendung, die ein non-triviales 3D-Objekt darstellt (z.B. eine Vase). Verwenden Sie zur Implementierung GLSL in Python.
Wahlpflichtfeatures: keine
f(p) => length(p-q) - r
void mainImage( out vec4 fragColor, in vec2 fragCoord )
(= fragment shader)vec2 fragCoord
)vec4 fragColor
, RGBA)vec3
)glPosition
gesetzt wird.