jak zaprogromowano, że strzałki zmieniają prędkość obrotu?
jak do shadera są przekazywane macierze?
jak do shadera są przekazywane wierzchołki?
jak do shadera są przekazywane indeksy?
skompiluj i uruchom
pobaw się trochę programem
opcje linkera dla Code::Blocks w systemie Windows: -lglfw3 -lglew32 -lopengl32 jak na rysunku
opcje linkera dla Code::Blocks w systemie Linux: -lX11 -lglfw -lGL -lGLU -lGLEW
zmienna DEBUG w ustawieniach Code::Blocks na rysunku
(3
punkty) Napisz program, wyświetlający k-dron.
(3
punkty) Zaprogramuj możliwość obrotu k-dronu: niech strałki Left, Right, Up, Down obracają k-dron stosownie w lewo, w prawo, w górę, w dół
(3
punkty) Rozbuduj program. Niech klawisz Page Up zbliża, zaś Page Down — oddala kamerę
(3
punkty) Dodaj możliwość przełączenia projekcji perspektywicznej (klawisz Home) i prostopadłej (klawisz End). Przypomnę, że macierz projekcji prostopadłej dla bryły widzenia jest następująca: Czy twój program radzi sobie ze zmianą rozmiaru okna?
Czynności:
Narysuj k-dron na kartce, ponumeruj wszystkie wierzchołki, podpisz ich współrzędne i utwórz tablicę wierzchołków.
Narysuj każdą z jedenastu ścian, podziel na trójkąty i utwórz tablicę indeksów.
Dopasuj polecenie renderowania w funkcji Draw().
Zatrzymuj animację (funkcja Run() obiektu klasy Window).
Uzupenij k-dron w metody Left(), Right(), Up(), Down(). Wykorzystaj te metody w callbacku na zdarzenia klawiatury klasy Window. Opracuj obydwa zdarzenia.
Działania na kamerze zaimplementuj na macierzy view_matrix_ klasy Window. Pamiętaj odpalić procedurę SetViewMatrix(), aby zaktualizować macierz w karcie graficznej. Czemu nie robiliśmy tego z macierzą model_matrix w metodach Left(), Right(), etc?
Zmiana rzutowania: macierz projection_matrix_ klasy Window. Uzupełnij klasę matma w metodę CreateOrthoProjectionMatrix podobną do metody CreatePerspectiveProjectionMatrix. Pamiętaj odpalić procedurę SetProjectionMatrix(), aby zaktualizować macierz w karcie graficznej.
Uwaga o kartach Nvidia: jeżeli animacja jest spowolniona, można odznaczyć opcję Sync to VBlank. Czy wiesz, co ta opcja znaczy?
Termin oddania zadań:
klasowych: na zajęciach. Zadania, oddane po terminie, warte są połowę punktów
domowych: do momentu, gdy się pojawi następne zadanie. Zadania, oddane po terminie, warte są 0 (słownie: zero) punktów