diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..755f971 --- /dev/null +++ b/readme.md @@ -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. \ No newline at end of file