1 / 32

PUSTYNIA GOBI, 5 czerwca 2015 roku

PUSTYNIA GOBI, 5 czerwca 2015 roku. Rafał Rusek przedstawia:. PLATO 3D. czyli. Opracowanie prostego silnika gry 3D za pomocą C++ builder. wciśnij lewy przycisk myszy. Uniwersytet Mikołaja Kopernika. Uniwersytet Mikołaja Kopernika. Wydział Fizyki, Astronomii i Informatyki Stosowanej.

hollis
Download Presentation

PUSTYNIA GOBI, 5 czerwca 2015 roku

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PUSTYNIA GOBI, 5 czerwca 2015 roku

  2. Rafał Rusek przedstawia: PLATO 3D czyli

  3. Opracowanie prostego silnika gry 3D za pomocą C++ builder wciśnij lewy przycisk myszy

  4. Uniwersytet Mikołaja Kopernika Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Podyplomowe Studium Programowania i Zastosowań Komputerów mgr inż. Rafał Rusek Opracowanie prostego silnika gry 3D za pomocą C++ builder Opiekun pracy dyplomowej dr Jacek Matulewski Toruń 2011

  5. Uniwersytet Mikołaja Kopernika CELE • Napisanie programu w języku C++, który umożliwi wyświetlanie prostej grafiki 3D na ekranie monitora, • Po dodaniu interfejsu użytkownika i obsługi za pomocą klawiatury i myszki powstanie prosty silnik trójwymiarowej gry komputerowej.

  6. Uniwersytet Mikołaja Kopernika NARZĘDZIA OGÓLNE Ekranowy układ współrzędnych. Układ ten ma zero w lewym górnym rogu monitora. Punkty na osiach to piksele. Jest ich tyle ile wynosi aktualnie wyświetlana rozdzielczość.

  7. Uniwersytet Mikołaja Kopernika NARZĘDZIA OGÓLNE Wirtualny układ współrzędnych. W celu ułatwienia pracy programisty wprowadzono funkcje przeliczające współrzędne ekranowe na współrzędne wirtualne, czyli układ współrzędnych o przecięciu osi OX i OY w środku okna gry oraz osi OY o zwrocie w górę.

  8. Uniwersytet Mikołaja Kopernika NARZĘDZIA OGÓLNE Skalowanie czcionki. Tekst wyświetlany na ekranie, któremu przypisaliś-my rozmiar czcionki nie jest w pełni skalowalny wraz ze zmianą rozdzielczości monitora. Użyto funkcji w postaci przelicznika, w którym jednostkowy rozmiar czcionki jest zawsze równy 1/300 wysokości ekranu, niezależnie od rozdzielczości monitora. Przy rozdzielczości 1280x1024 Przy rozdzielczości 800x600

  9. Uniwersytet Mikołaja Kopernika STRUKTURA PROGRAMU Program „PLATO 3D” posiada strukturę opartą na podziale na ekrany gry. Każdy z nich wymaga innych komend w procedurach sterujących grą, czyli w Timerze i procedurach uruchamianych po naciśnięciu klawisza myszki, po poruszeniu myszką, bądź użyciu klawiatury. Aktualny ekran gry wskazywany jest przez zmienną globalną currentstate. currentstate = 0 - intro currentstate = 1 - menu główne currentstate = 2 - rozpoczęcie gry – zresetowanie ustawień currentstate = 3 - gra właściwa currentstate = 4 - ekran zwycięstwa/porażki currentstate = 5 - menu pauzy

  10. Uniwersytet Mikołaja Kopernika currentstate = 0 INTRO Intro zwykle składa się z animacji, które można pominąć i najczęściej ma formę pliku filmowego. W intrze można przedstawić zarówno animowane logo producenta i developera gry, jak również wprowadzenie fabularne do treści gry. W „PLATO 3D” intro wyświetla tylko animację tekstów „Rafał Rusek przedstawia” oraz „PLATO 3D”. Początek tej prezentacji to „wersja reżyserska” tego intra. 

  11. Uniwersytet Mikołaja Kopernika currentstate = 1 MENU GŁÓWNE Menu główne wyświetla opcje „Nowa gra” i „Koniec gry”. Opcje można wybrać klikając myszką lub za pomocą klawiatury (strzałki góra/dół, zatwierdzenie Enterem). Ramka jest widoczna wokół aktualnie wybranej opcji.

  12. Uniwersytet Mikołaja Kopernika currentstate = 2 ROZPOCZĘCIE GRY Jest to jedyny ekran gry, który nie jest widoczny dla gracza. Wykorzystuje tylko procedurę Timer, w której dla tego ekranu gry przypisywane są zmiennym globalnym wartości początkowe. Potem następuje przejście do kolejnego ekranu gry.

  13. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Trójwymiarowy wirtualny układ współrzędnych. Środek tego układu współrzędnych, czyli punkt przecięcia się osi OX, OY i OZ, znajduje się na środku monitora. Oś OZ ma kierunek i zwrot w głąb monitora.

  14. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Trójwymiarowy wirtualny układ współrzędnych. W najprostszym przypadku wyświetlenie obrazu trójwymiarowego na monitorze polega po prostu na usunięciu składowej z, a następnie zamianie składowych x i y na współrzędne ekranowe. Sprawa staje się mniej trywialna po dodaniu np. efektów perspektywy.

  15. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Perspektywa Program pozbawiony efektu perspektywy, w rezultacie będzie uniemożliwiał zaobserwowanie, który z dwóch obiektów o takich samych rozmiarach, lecz różnej odległości od obserwatora, jest bliżej, a który dalej. Perspektywa obserwowana w życiu codziennym.

  16. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Perspektywa Wyprowadzenie: Z podobieństwa trójkątów: ab/bo = a’b’/b’o Po przekształceniu: xpersp = (x * b’o)/(b’o + z) Analogicznie: ypersp = (y * b’o)/(b’o + z)

  17. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Perspektywa Długość b’o to odległość od obserwatora do ekranu monitora. W „PLATO 3D” przyjęto wartość 4000 czyli równą szerokości ekranu (w jednostkach wirtualnego u.w.). b’o = 200 b’o = 4000 b’o = 12000

  18. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Obrót 3D W programie „PLATO 3D” obiekt jest najpierw obracany wokół osi OX, potem wokół osi OY, a na koniec wokół osi OZ. Nowe współrzędne można wyliczyć za pomocą macierzy obrotu:

  19. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Obrót 3D Aby otrzymać macierz złożonych obrotów (najpierw wokół osi OX, potem wokół osi OY, a następnie wokół osi OZ) musimy pomnożyć te macierze we właściwej kolejności otrzymując:

  20. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Prostopadłościan Aby narysować prostopadłościan należy zdefiniować punkt, który będzie określał jego położenie, jego długość, szerokość i wysokość, a także kąty obrotu wokół punktu określającego położenie. W „PLATO 3D” na punkt określający położenie prostopadłościanu został wybrany jego środek, czyli punkt, w którym przecinają się przekątne prostopadłościanu.

  21. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Scena Scena, czyli pokój, w którym rozgrywa się akcja „PLATO 3D” jest nieco zmodyfikowaną wersją procedury rysującej prostopadłościan. Punkt określający położenie sceny znajduje się nie w jej geometrycznym środku, ale w środku dolnej podstawy – czyli podłogi sceny.

  22. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Scena Rysowanie kafelków polega na podzieleniu najpierw boku a przez 8 i dzięki pętli for począwszy od –a/2 do +a/2 przesuwając się o a/8 rysowanie linii prostopadłych do boku a (czyli z punktu o drugiej współrzędnej równej –b/2 do punktu o drugiej współrzędnej równej +b/2). Analogicznie dla kierunku prostopadłego (tym razem dzielimy przez 8 bok b).

  23. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Armata i celownik Armata, w odróżnieniu od sceny i wrogów, jest obiektem dwuwymiarowym, a nie trójwymiarowym. Stanowiący jej podstawę zaokrąglony fragment jest elipsą. Lufa śledzi wskaźnik myszy i kieruje się zawsze w jego stronę.

  24. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Wrogowie W „PLATO 3D” wrogami są sześciany. Jest ich piętnaście, pojawiają się w każdej rozgrywce w różnych miejscach (niektóre bliżej, inne dalej) oraz wszystkie się obracają, choć wokół różnych osi obrotu. Efekt takiej różnorodności zapewnia użycie generatora pseudolosowego. Każdy wróg otrzymuje losowo nadane położenie, kąty początkowego obrotu oraz losowo wybraną oś, wokół której może się obracać podczas animacji.

  25. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Wrogowie Każdy wróg jest sześcianem o boku 300, czyli można go wpisać w kulę o promieniu 150 i środku w punkcie, który jest też środkiem wroga. Gdy gracz kliknie lewym przyciskiem myszy sprawdzane jest czy w promieniu 150 znajduje się środek któregokolwiek wroga. Jeśli tak, oznacza to, że gracz trafił i wróg ten otrzymuje cechę „martwy”, a gracz otrzymuje punkty. Przy okazji tego sprawdzania należy uwzględnić przesunięcie wyświetlanego na ekranie obrazu na skutek działania efektu perspektywy.

  26. Uniwersytet Mikołaja Kopernika currentstate = 3 GRA WŁAŚCIWA Licznik czasu Aby zwiększyć emocje z grania dodano do „PLATO 3D” prosty trik w postaci upływającego czasu. Gracz musi zestrzelić wrogów zanim licznik spadnie do zera. W przeciwnym przypadku przegrywa. Licznik czasu jest całkowicie obsługiwany w procedurze Timer. Gdy osiągnie wartość zero uruchamia następny ekran gry (currentstate = 4).

  27. Uniwersytet Mikołaja Kopernika currentstate = 4 EKRAN ZWYCIĘSTWA / PORAŻKI Jest to ekran gry wyświetlany na zakończenie gry. Tak jak intro może przyjąć formę animacji lub filmiku. W „PLATO 3D” ma postać planszy z tekstem, który uzależniony jest od tego co wywołało przejście na ten ekran gry. Kliknięcie dowolnego klawisza przenosi do menu głównego.

  28. Uniwersytet Mikołaja Kopernika currentstate = 5 MENU PAUZY Menu pauzy uruchamiane jest po wciśnięciu klawisza Escape podczas Gry właściwej. Wyświetla opcje do wyboru. W „PLATO 3D” mamy trzy opcje: "Kontynuuj", "Nowa gra" oraz "Koniec gry".

  29. Uniwersytet Mikołaja Kopernika SPOJRZENIE W PRZYSZŁOŚĆ Dalsze prace mogą mieć na celu dodanie możliwości swobodnego przemieszczania się gracza w przestrzeni 3D, zdefiniowanie obiektów nie jako zbudowanych z punktów, ale z wielokątów, dodanie animacji szkieletowej, wprowadzenie cieniowania wielokątów w zależności od położenia źródła światła, dodanie efektu cienia oraz wprowadzenie wykrywania kolizji i oddziaływań fizycznych między obiektami.

  30. Uniwersytet Mikołaja Kopernika DZIĘKUJĘ ZA UWAGĘ! EOF

More Related