# cg1_purple
<h1> Mitglieder </h1>

Luca Conte <br/>
Luca Wresch <br/>
Jonas Dillmann <br/>
Jonas Niewidok <br/>
Finn Wolters

<h1> Bauen, Starten und Bedienen des Programms </h1>



<h1> TODO LIST </h1>

- [ ] README-Datei mit Informationen zum Bauen, zum Starten und zur Bedienung des
Programms
- [ ] Matrixfunktionen zur Umsetzung der benötigten Transformationen (Verschiebung, Drehung,
Skalierung, Position und Orientierung der Kamera, Perspektivprojektion, Normalenmatrix)
- [ ] mehrere Objekte in einer 3D-Szene
- [ ] Animation der Kamera und/oder eines Objekts
- [ ] Beleuchtung der Szene, wie in der Vorlesung beschrieben
- [ ] Texturierung von mindestens einem Objekt

Wenn ihr nicht nur bestehen sondern auch eine gute Note bekommen möchtet, müsst ihr auch
möglichst viele der folgenden Anforderungen erfüllen:

- [ ] Import von Geometriedaten aus separaten Dateien
- [ ] sinnvolle Aufteilung des Codes auf mehrere Dateien (insb. Shader-Code in separaten
Dateien)
- [ ] Datentypen und Hilfsfunktionen für Shader, Geometriedaten, Texturen
- [ ] Überprüfung übergebener Funktionsparameter durch Assertions (soweit möglich)
- [ ] Tests für alle Matrixfunktionen
- [ ] Strukturierung der Szene durch einen einfachen Szenengraph
- [ ] einfache Benutzerinteraktion mit Kamera und/oder Objekten (z. B. über Tastatur)
- [ ] Beleuchtung der Szene mit mehr als einer Lichtquelle
- [ ] gleichzeitige Verwendung von mindestens zwei Texturen in einem Objekt
- [ ] gleichzeitige Verwendung von mindestens zwei verschiedenen Shader-Programmen in einer
Szene
- [ ] transparente Objekte
- [ ] Verwendung einer Umgebungstextur
- [ ] Spiegelung der Umgebungstextur auf einigen Objekten
- [ ] Nebel in einer komplexen 3D-Szene

Für eine besonders gute Note ist die Umsetzung mindestens einer fortgeschrittenen Technik
erforderlich, die nicht in der obigen Liste genannt wird und für die ihr die notwendigen Details
selbst recherchieren müsst.

Weitere Bewertungskriterien sind Code-Qualität, Projektidee und Ästhetik.