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
|
||||
- WASD
|
||||
- R & F für Hoch & Runter
|
||||
- WASD für freie Kamerabewegung
|
||||
- R & F oder Shift + Leertaste: Kamera Hoch & Runter bewegen
|
||||
- 1,2,3,4,5,6 für Verschiedene Kamerapositionen
|
||||
- 1: Vor den Tafeln
|
||||
- 2-4: Verschiedene Sitzplätze
|
||||
- 5: Vogelperspektive
|
||||
- 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
|
||||
|
||||
- [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,
|
||||
Skalierung, Position und Orientierung der Kamera, Perspektivprojektion, Normalenmatrix)
|
||||
- [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] Texturierung von mindestens einem Objekt
|
||||
|
||||
|
@ -53,8 +160,8 @@ Dateien)
|
|||
- [X] Tests für alle Matrixfunktionen
|
||||
- [x] Strukturierung der Szene durch einen einfachen Szenengraph
|
||||
- [X] 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
|
||||
- [X] Beleuchtung der Szene mit mehr als einer Lichtquelle
|
||||
- [X] 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
|
||||
|
|
Loading…
Reference in New Issue