Projekt na zaliczenie GRK Barbary Bróździńskiej i Filipa Kowalskiego
Go to file
2018-06-20 20:10:23 +00:00
.vs/grk-projekt/v15 finished project 2018-06-20 21:34:24 +02:00
dependencies finished project 2018-06-20 21:34:24 +02:00
models finished project 2018-06-20 21:34:24 +02:00
Release finished project 2018-06-20 21:34:24 +02:00
shaders finished project 2018-06-20 21:34:24 +02:00
src finished project 2018-06-20 21:34:24 +02:00
textures finished project 2018-06-20 21:34:24 +02:00
freeglut.dll finished project 2018-06-20 21:34:24 +02:00
glew32.dll finished project 2018-06-20 21:34:24 +02:00
grk-cw5.vcxproj finished project 2018-06-20 21:34:24 +02:00
grk-cw5.vcxproj.filters finished project 2018-06-20 21:34:24 +02:00
grk-projekt.sln finished project 2018-06-20 21:34:24 +02:00
readme.md added readme.md 2018-06-20 20:10:23 +00:00

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.