added readme.md

This commit is contained in:
Filip Kowalski 2018-06-20 20:10:23 +00:00
parent 09816cae60
commit 37552e274d

30
readme.md Normal file
View File

@ -0,0 +1,30 @@
Projekt na zaliczenie grafiki komputerowej i wizualizacji (2018) napisany przez
* Barbarę Bróździńską (s426093)
* Filipa Kowalskiego (s426158)
## Opis
Program napisany w C++ (OpenGL) przedstawia interaktywną scenę podwodną z pływającymi rybami. Wszystkie modele zostały stworzone w Blenderze, a tekstury w Gimpie.
Sterowanie:
WASD - poruszanie kamerą lewo/prawo/przód/tył
QE - poruszanie kamerą w górę i dół
ZX - obracanie kamery
C - przywołanie nowej ryby zwróconej w losowym kierunku przed kamerą
Początkowe ustawienie ryb i roślin jest losowe, ale seed funkcji losującej jest zawsze taki sam.
Ryby mają losowy obrót i płyną przed siebie jednocześnie delikatnie unosząc się i opadając (według funkcji sinus od czasu).
## Shadery
Każdy z modeli teksturowany jest za pomocą jednego z dwóch shaderów: shader_perlin_tex lub shader_tex.
Shader shader_perlin_tex.frag generuje teksturę proceduralną (szum perlina). Przyjmuje rządaną rozdzielczość tekstury.
## Zaimplementowane klasy
### CameraEntity
Przechowuje informacje o kamerze (pozycja, kąt) i zajmuje się jej poruszaniem, macierzą perspektywy itp.
### TexturedObject
Ładuje i przechowuje model .obj oraz przypisaną do niego teksturę i/lub shader. Zawiera metodę pozwalającą wyrenderować oteksturowany model.
### Entity3D
Powiązuje TexturedObject z jego pozycją w scenie. Jest odpowiedzialna za operacje na macierzy transformacji obiektu. Zawiera metody pozwalające na translację, rotację i skalowanie oraz renderuje model.