add some stuff to readme
This commit is contained in:
parent
c744862f7b
commit
c4d93df442
117
README.md
117
README.md
|
@ -22,15 +22,122 @@ $ make run
|
||||||
```
|
```
|
||||||
|
|
||||||
Bedienung über Keyboard :D
|
Bedienung über Keyboard :D
|
||||||
- WASD
|
- WASD für freie Kamerabewegung
|
||||||
- R & F für Hoch & Runter
|
- R & F oder Shift + Leertaste: Kamera Hoch & Runter bewegen
|
||||||
- 1,2,3,4,5,6 für Verschiedene Kamerapositionen
|
- 1,2,3,4,5,6 für Verschiedene Kamerapositionen
|
||||||
- 1: Vor den Tafeln
|
- 1: Vor den Tafeln
|
||||||
- 2-4: Verschiedene Sitzplätze
|
- 2-4: Verschiedene Sitzplätze
|
||||||
- 5: Vogelperspektive
|
- 5: Vogelperspektive
|
||||||
- 6: Close-Up vom Normal Map Demo Cube
|
- 6: Close-Up vom Normal Map Demo Cube
|
||||||
|
- X & C: Tafel Hoch & Runter schieben
|
||||||
|
- ESC: Programm schließen
|
||||||
|
|
||||||
|
|
||||||
|
## weitere Infos
|
||||||
|
|
||||||
|
- Alle Objekte werden durch eine Scene Graph Datei (.scg) mit selbst entwickelter Syntax definiert und platziert.
|
||||||
|
|
||||||
|
Erklärung der Scene Graph Syntax:
|
||||||
|
```
|
||||||
|
# Mit einem # beginnende Zeilen sind Kommentare
|
||||||
|
|
||||||
|
# Definition eines Models
|
||||||
|
# Jedem Model muss eine einzigartige ID gegeben werden
|
||||||
|
model 0
|
||||||
|
|
||||||
|
# Angabe der OBJ Datei, aus der die Modelldaten eingelesen werden
|
||||||
|
# Alle Dateipfade sollten absolut sein oder ralativ zum working directory
|
||||||
|
file myObjFile.obj
|
||||||
|
|
||||||
|
# Angabe einer Textur Datei
|
||||||
|
texture myTexture.jpg
|
||||||
|
|
||||||
|
# Angabe einer zweiten Textur Datei. Diese wird über die erste gelegt
|
||||||
|
texture2 mySecondTexture.png
|
||||||
|
|
||||||
|
# Angabe einer Normal Map
|
||||||
|
normal myNormalMap.png
|
||||||
|
|
||||||
|
# Angabe des Shininess Wertes des Models
|
||||||
|
shininess 10.0
|
||||||
|
|
||||||
|
|
||||||
|
# Objekte sind Scene Graph Nodes.
|
||||||
|
# Auch sie brauchen eine einzigartige ID
|
||||||
|
# Diese ID muss nur unter den Objekten einzigartig sein
|
||||||
|
# Ein Objekt kann also die selbe ID haben wie ein Model
|
||||||
|
obj 102
|
||||||
|
|
||||||
|
# Angabe des Modells, das das Objekt nutzt.
|
||||||
|
# Diese Angabe ist optional. Sie kann weggelassen werden, wenn es sich z.B. um ein Group Objekt handelt
|
||||||
|
# Hier wird die vorher gesetzte Model ID referenziert
|
||||||
|
use 0
|
||||||
|
|
||||||
|
# Angabe des Parent Nodes mittels Objekt ID
|
||||||
|
# Diese Angabe ist optional. Wenn kein Parent Node angegeben ist, wird automatisch der root node (ID: -1) als parent gesetzt
|
||||||
|
parent 101
|
||||||
|
|
||||||
|
# Angabe eines Namen
|
||||||
|
# Optional. Kann im Code verwendet werden um den Scene Graph nach diesem Objekt zu durchsuchen.
|
||||||
|
# Für diesen Zweck kann aber auch die Obejekt ID genutzt werden.
|
||||||
|
# Beim Printen des Scene Graph (s. Konsolenausgabe bei Programmstart) wird der Name geprintet
|
||||||
|
# Ist keine Name gesetzt, wird stattdessen die Objekt ID geprintet
|
||||||
|
name MeinObjekt
|
||||||
|
|
||||||
|
|
||||||
|
# Transformationen
|
||||||
|
# Die Transformationen werden in der Reihenfolge ausgeführt, in der sie angegeben wurden
|
||||||
|
# Transformationen propagieren auf jegliche Child Elemente weiter
|
||||||
|
translate 1.0 0.0 0.0
|
||||||
|
scale 1.0 1.5 0.5
|
||||||
|
rotateX 1.0
|
||||||
|
rotateY 3.141
|
||||||
|
rotateZ 0.1
|
||||||
|
|
||||||
|
|
||||||
|
# Beispiel
|
||||||
|
|
||||||
|
model 0
|
||||||
|
file sphere.obj
|
||||||
|
texture sun.jpg
|
||||||
|
|
||||||
|
model 1
|
||||||
|
file sphere.obj
|
||||||
|
texture earth.png
|
||||||
|
|
||||||
|
model 2
|
||||||
|
file sphere.obj
|
||||||
|
texture moon.png
|
||||||
|
normal moon-normal.png
|
||||||
|
|
||||||
|
obj 0
|
||||||
|
name Sonnensystem
|
||||||
|
|
||||||
|
obj 1
|
||||||
|
use 0
|
||||||
|
name Sonne
|
||||||
|
parent 0
|
||||||
|
scale 2.0 2.0 2.0
|
||||||
|
|
||||||
|
obj 2
|
||||||
|
use 1
|
||||||
|
name Erde
|
||||||
|
parent 0
|
||||||
|
translate 5.0 0.0 0.0
|
||||||
|
|
||||||
|
obj 3
|
||||||
|
use 2
|
||||||
|
name Mond
|
||||||
|
parent 2
|
||||||
|
scale 0.2 0.2 0.2
|
||||||
|
translate 0.0 0.0 2.0
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
- es befinden sich zwei Punkt-Lichtquellen im Raum die sich langsam im Kreis umeinander drehen
|
||||||
|
- Die Box neben dem Lehrerpult ist dort um Normal Maps zu demonstrieren. 6 Drücken für Close-Up Ansicht. Am besten ist der Effekt in der Spekularreflektion sichtbar. Einfach kurz warten bis das Lich im richtigen Winkel darüber fliegt
|
||||||
|
- Die Tafeln nutzen 2 übereinandergelegte Texturen: Eine für die Tafel selbst, und eine für den darauf geschriebenen Text
|
||||||
|
|
||||||
## TODO LIST
|
## TODO LIST
|
||||||
|
|
||||||
- [X] README-Datei mit Informationen zum Bauen, zum Starten und zur Bedienung des
|
- [X] README-Datei mit Informationen zum Bauen, zum Starten und zur Bedienung des
|
||||||
|
@ -38,7 +145,7 @@ Programms
|
||||||
- [X] Matrixfunktionen zur Umsetzung der benötigten Transformationen (Verschiebung, Drehung,
|
- [X] Matrixfunktionen zur Umsetzung der benötigten Transformationen (Verschiebung, Drehung,
|
||||||
Skalierung, Position und Orientierung der Kamera, Perspektivprojektion, Normalenmatrix)
|
Skalierung, Position und Orientierung der Kamera, Perspektivprojektion, Normalenmatrix)
|
||||||
- [X] mehrere Objekte in einer 3D-Szene
|
- [X] mehrere Objekte in einer 3D-Szene
|
||||||
- [?] Animation der Kamera und/oder eines Objekts
|
- [X] Animation der Kamera und/oder eines Objekts
|
||||||
- [X] Beleuchtung der Szene, wie in der Vorlesung beschrieben
|
- [X] Beleuchtung der Szene, wie in der Vorlesung beschrieben
|
||||||
- [X] Texturierung von mindestens einem Objekt
|
- [X] Texturierung von mindestens einem Objekt
|
||||||
|
|
||||||
|
@ -53,8 +160,8 @@ Dateien)
|
||||||
- [X] Tests für alle Matrixfunktionen
|
- [X] Tests für alle Matrixfunktionen
|
||||||
- [x] Strukturierung der Szene durch einen einfachen Szenengraph
|
- [x] Strukturierung der Szene durch einen einfachen Szenengraph
|
||||||
- [X] einfache Benutzerinteraktion mit Kamera und/oder Objekten (z. B. über Tastatur)
|
- [X] einfache Benutzerinteraktion mit Kamera und/oder Objekten (z. B. über Tastatur)
|
||||||
- [?] Beleuchtung der Szene mit mehr als einer Lichtquelle
|
- [X] Beleuchtung der Szene mit mehr als einer Lichtquelle
|
||||||
- [?] gleichzeitige Verwendung von mindestens zwei Texturen in einem Objekt
|
- [X] gleichzeitige Verwendung von mindestens zwei Texturen in einem Objekt
|
||||||
- [?] gleichzeitige Verwendung von mindestens zwei verschiedenen Shader-Programmen in einer Szene
|
- [?] gleichzeitige Verwendung von mindestens zwei verschiedenen Shader-Programmen in einer Szene
|
||||||
- [ ] transparente Objekte
|
- [ ] transparente Objekte
|
||||||
- [?] Verwendung einer Umgebungstextur
|
- [?] Verwendung einer Umgebungstextur
|
||||||
|
|
Loading…
Reference in New Issue