Aleksander Denisiuk. Materiały dydaktyczne PJWSTK

Przekształcenia w OpenGL

  1. .. (Powrót)
  2. Cube.zip Pobierz projekt, wyświetlający animowany sześcian
    1. przeanalizuj kod:
      • 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?
    2. skompiluj i uruchom
    3. pobaw się trochę programem
    4. opcje linkera dla Code::Blocks w systemie Windows: -lglfw3 -lglew32 -lopengl32 jak na rysunku
  3. K-dron.png (6 punktów) Napisz program, wyświetlający nieruchomy k-dron.
    1. 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ół
    2. Zaprogramuj sterowanie kamerą: niech klawisz Home zbliża kamerę, klawisz End niech oddala kamerę
  4. image/svg+xml Czynności:
    1. Narysuj k-dron na kartce, ponumeruj wszystkie wierzchołki, podpisz ich współrzędne i utwórz tablicę wierzchołków.
    2. Narysuj każdą z jedenastu ścian, podziel na trójkąty i utwórz tablicę indeksów.
    3. Dopasuj polecenie renderowania w funkcji Draw().
    4. Zatrzymuj animację (funkcja Run() obiektu klasy Window).
    5. Uzupenij k-dron w metody Left(), Right(), Up(), Down(). Wykorzystaj te metody w callbacku na zdarzenia klawiatury klasy Window. Opracuj obydwa zdarzenia.
    6. 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?
  5. Nvidia.png Uwaga o kartach Nvidia: jeżeli animacja jest spowolniona, można odznaczyć opcję Sync to VBlank. Czy wiesz, co ta opcja znaczy?
  6. 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