Programowanie gier 3D w HTML5. Andrzej P.Urbański Politechnika Poznańska



Podobne dokumenty
Zdarzenia Zdarzenia onload i onunload

Defilada - przykład wykorzystujący animowane modele Copperlicht. Andrzej P.Urbański Politechnika Poznańska

Referat Pracy Dyplomowej

która metoda jest najlepsza

TECHNOLOGIE INTERNETOWE WYKŁAD 6. JavaScript Funkcje i obiekty

Wprowadzenie. 1. Terminal WebRTC. LABORATORIUM 5: WebRTC komunikacja między terminalami.

GRY KOMPUTEROWE 3D OpenGL DirectX Ogre3D Crystal Space ClanLib Irrlicht SDL Ardor3D jmonkey Engine GRY KOMPUTEROWE 2D ORX Troll2D

Dokumentacja imapliteapi

Techniki animacji komputerowej

Spis treści CZĘŚĆ I JĘZYK SIECI 17. Wstęp 13. Rozdział 1 Wprowadzenie do HTML5 19. Rozdział 2 Znajomość znaczników HTML5 37

Specyfikacja Wymagań Oprogramowania

D O K U M E N T A C J A

STRONY INTERNETOWE mgr inż. Adrian Zapała

Multimedia i interfejsy. Ćwiczenie 5 HTML5

Szkolenie wycofane z oferty. Programowanie w JavaScript (zawiera jquery)

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

ANIMACJE W CSS3. Czyli po co płacić podatek o Javy Script i JQuery

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Udostępnianie obrazu z kamer Sanyo HD na stronach WWW PORADNIK

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Wykład 03 JavaScript. Michał Drabik

Sieciowe Technologie Mobilne. Laboratorium 4

TECHNIKI WWW (WFAIS.IF-C125) (zajęcia r.)

Wyświetlanie publikacji w formacie DjVu. Wyświetlanie publikacji w Bałtyckiej Bibliotece Cyfrowej można realizować na 3 sposoby:

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Przykłady oprogramowania wykorzystujacego Qt

WYKŁAD 1 ANGULARJS CZĘŚĆ 1

SYSTEMY ZARZĄDZANIA TREŚCIĄ WORDPRESS

Wybrane działy Informatyki Stosowanej

Podstawy JavaScript ćwiczenia

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Java jako język programowania

Zagadnienia programowania obiektowego

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Flex 3. Piotr Strzelczyk Wydział EAIiE Katedra Automatyki. Kraków, 2008

Utworzenie pliku. Dowiesz się:

System zarządzający grami programistycznymi Meridius

Audio i Video w HTML5

Projektowanie gier komputerowych. dr inż. Mariusz Szwoch

Szczegółowy opis przedmiotu zamówienia

Funkcje i instrukcje języka JavaScript

PRZEWODNIK PO PRZEDMIOCIE

Tworzenie Stron Internetowych. odcinek 9

Zasoby, pliki graficzne

Wybrane działy Informatyki Stosowanej

FLEX ( ) Przygotowanie środowiska developerskiego Hello world w MXML Hello world w ActionScript

Zawartość specyfikacji:

jquery i AJAX - Praktycznie Szkolenie dla webdeveloperów, freelancerów, webdesignerów

Delphi podstawy programowania. Środowisko Delphi

Spadające jabłuszka. licencja CC-BY-SA Uznanie autorstwa Na tych samych warunkach 3.0 Polska. Strona 51

OpenLaszlo. OpenLaszlo

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 2. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,

Zaawansowany kurs języka Python

Jak przeglądać publikacje w formacie DjVu?

Aplikacje Internetowe

Adres siedziby firmy:..

REFERAT PRACY DYPLMOWEJ. Temat pracy: Projekt i realizacja warstwy serwerowej gry internetowej

Informatyka kl. 1. Semestr I

Exulto Software House

Krótki kurs JavaScript

Wybrane działy Informatyki Stosowanej

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Specyfikacja techniczna kreacji HTML5

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Grafika komputerowa i wizualizacja

Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r

Plan wykładu. Akcelerator 3D Potok graficzny

Liczba godzin. N (nauczyciel) studia niestacjonarne

INSTRUKCJA DO WARSZTATU ON-LINE DYNAMICZNA TOŻSAMOŚĆ DLA PRZEWODNIKA

Adobe Connect Instalacja Adobe Flash Player

Grafika 3D na przykładzie XNA 3.1

Dokument hipertekstowy

INTERAKTYWNA KOMUNIKACJA WIZUALNA. Flash - podstawy

Programowanie obiektowe

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Unity 3D - pierwsze skrypty

Unreal Engine w 24 godziny : nauka tworzenia gier / Aram Cookson, Ryan DowlingSoka, Clinton Crumpler. Gliwice, cop Spis treści.

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

UML w Visual Studio. Michał Ciećwierz

Systemy Geoinformatyczne

Obiekt navigator. Dodał Administrator wtorek, 16 marzec :32

HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści

CZYM JEST JAVASCRIPT?

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

Spis treści. Księgarnia PWN: Roland Zimek - SWiSH Max2 i SWiSH Max3. Wprowadzenie... 9

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

Spis treści. Księgarnia PWN: Roland Zimek - Swish Max3

Instrukcja użytkowania platformy ONLINE. Akademii Doskonalenia Zawodowego NATUROPATA ADZ Naturopata

Układy VLSI Bramki 1.0

Sieciowe Technologie Mobilne. Laboratorium 1

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Kompresja stron internetowych

Sieciowe Technologie Mobilne. Laboratorium 2

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Zdarzenia w JavaScript (Zajęcia r.)

Front-end: solidne podstawy. Wszystko, co warto wiedzieć o HTML, CSS, JavaScript i Bootstrap.

Tomasz Grześ. Systemy zarządzania treścią, cz. II

Pomoc dla systemu WordPress

Transkrypt:

Programowanie gier 3D w HTML5 Andrzej P.Urbański Politechnika Poznańska

Moje marzenie Od dawna jest znany pakiet Open GL napisany w C++ i bardzo ułatwiający tworzenie gier 3D Zaproponowałem kiedyś jako pracę dyplomową stworzenie plug-in do wybranej przeglądarki, który by umożliwiał użycie Open GL z poziomu JavaScript Innymi słowy zaraz po wejściu na stronę internetową można by grać w grę 3D

Moja Gwiazdka W trakcie ustalania standardu HTML5 podobno pod naciskiem takich lobby jak Stevie Jobs i Microsoft, chcących usunąć plug-in Flash z rynku przyjęto standard rozszerzenia HTML o część odpowiedzialną za renderowanie 3D. Założono użycie w tym celu przez producentów przeglądarek internetu kodu OpenGL. To więcej niż chciałem Open GL dostępne bez żadnych we wszystkich przeglądarkach

Jak jest zaprogramowana gra? 1. Potrafi wyświetlać pojedynczą ramkę 3D 2. Potrafi animować! biorąc wskazania zegara i parametrów ruchu zmienia obiekty gry 3. Jest interaktywna! - czyta ruchy manipulatorów gracza i odpowiednio zmienia parametry ruchu 4. Jest wiarygodna i ciekawa! - traktuje kolizje obiektów zgodnie z fizyką i regułami gry 5. Jest wymagająca i emocjonująca! - punktuje cele pośrednie i ostateczny

Powiązanie poszczególnych elementów gry 1 wyświetlanie Danych liczbowych I komunikatów 3 podsłuchiwanie Myszki i klawiatury 1 wyświetlanie 3D Punkty I cele gry 4 kolizje Parametry ruchu 5 punktowanie Obiekty gry 2 Odwzorowywanie Ruchu w grze 2 wpływ zegara 2 wpływ Parametrów ruchu

Struktura programu 3D w HTML5 Moduł te unikalne dla konkretnej gry podkreśllono 1. obsługi karty graficznej w języku GLCS 2. obsługi karty graficznej w języku JavaScript 3. odwołujący się do biblioteki webgl celem wyświetlania obiektów 3D 4. nadsłuchujący klawiaturę/mysz 5. przeliczania parametrów ruchu i zegara na ramki 3D 6. odwzorowujący klawiaturę na parametry ruchu 7. rozpoznający i rozstrzygający kolizje 8. aktualizujący punkty i cele wg. stanu obiektów gry

Zalety webgl w HTML5 Dzięki (1) i (2) programy w webgl efektywnie wykorzystują możliwości karty graficznej Biblioteka webgl (3) oparta na rozwijalnym od lat OpenGL ułatwia programowanie w 3D Możliwości (4) programowania obsługi klawiatury, a zwłaszcza myszy i kanału dźwiękowego są dużo większe niż bez webgl

Struktura dokumentu z grą <!DOCTYPE html> <html> <script id="shader-fs" type="x-shader/x-fragment"> Kod w języku GLCS </script> <script id="shader-vs" type="x-shader/x-vertex"> Kod w języku GLCS </script> <script type="text/javascript"> Kod w języku JavaScript wt ym funkcji: startujmojagre();</script> <body onload= startujmojagre(); > <canvas width= 400 height= 400 > </canvas> </body> </html>

Jak się przechowuje obiekty 3D? Projektujemy obiekt w siatce 3D o współrzędnych w trójwymiarowym układzie kartezjańskim XYZ Łączymy wszystkie trójkąty na tej powierzchni w większe niekoniecznie płaskie powierzchnie Każdą taką powierzchnię umieszczamy w odpowiednim kształcie i proporcjach na płaszczyźnie w jednym pliku z teksturami Każdą powierzchnię z pliku tekstur mapujemy na powierzchnię na trójwymiarowej siatce obiektu

Jak to wygląda w praktyce? Najprostsze gry można tworzyć w czystym HTML-u przetwarzanym wyłącznie w przeglądarce na własnym komputerze Chrome wymaga by co najmniej obrazy z teksturami były pobierane ze strony internetowej, a nie lokalnego komputera, ale można było to włączyć dodając allowfile-access-from-files Przeglądarki opornie adaptują nowości 3D. Na dziś dzień tylko Chrome i FireFox. Wymagania dla kart graficznych(np.nie Intel 3150) HTML5 z webgl to już jednak standard!

Czym jest WebGL w HTML5? OpenGL tradycyjnie był pakietem bibliotecznym dla C++ WebGL to OpenGL ES 2.0 dla JavaScript Renderowanie w Open GLES 2.0 wymaga shaderów karty graficznej, które muszą być: Ładowane w kodzie źródłowym (shadersource), Kompilowane wywołaniem z JS (compileshader) Przyłączone do programu (attachshader) Linkowane (linkprogram) Używane (useprogram).