Projekt-GRK/readme.md
2018-06-20 20:10:23 +00:00

1.5 KiB

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.