Politechnika Poznańska, Instytut Informatyki, SUM-TWO



Podobne dokumenty
Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Grafika 3D na przykładzie XNA 3.1

Programowanie telefonów z Windows Phone 7, cz. 3

Plan wykładu. Akcelerator 3D Potok graficzny

Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D

Wykład 4. Rendering (1) Informacje podstawowe

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

1 Temat: Vertex Shader

Projektowanie graficzne. Wykład 2. Open Office Draw

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

2 Przygotował: mgr inż. Maciej Lasota

Księgarnia PWN: Andrzej Jaskulski - AutoCAD 2010/LT Podstawy projektowania parametrycznego i nieparametrycznego

Wprowadzenie do QT OpenGL

Spis treści CZĘŚĆ I. NIEPARAMETRYCZNE PROJEKTOWANIE 2D...31

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

SpriteKit. Biblioteka do tworzenia gier wbudowana w SDK. Wspiera grafikę 2D w oparciu o sprite y

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

Unity. Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.

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

Podstawy Windows Phone 7.5

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

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

Układy współrzędnych GUW, LUW Polecenie LUW

Czym jest wykrywanie kolizji. Elementarne metody detekcji kolizji. Trochę praktyki: Jak przygotować Visual Studio 2010 do pracy z XNA pod Windows

3 Programy do tworzenia

Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe

Wymagania edukacyjne z informatyki w klasie V

PRZEWODNIK PO PRZEDMIOCIE

Uniwersytet Łódzki dla dzieci

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

MVVM i XAML w Visual Studio 2015 / Jacek Matulewski. Gliwice, cop Spis treści

Profesjonalni i skuteczni - projekt dla pracowników branży telekomunikacyjnej

6.4. Efekty specjalne

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Acronis Backup & Recovery 10 Server for Windows, Acronis Backup & Recovery 10 Workstation. Instrukcja szybkiego rozpoczęcia pracy

PRZEWODNIK PO PRZEDMIOCIE

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Sieciowe Technologie Mobilne. Laboratorium 2

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

IRONCAD. TriBall IRONCAD Narzędzie pozycjonujące

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

4. Oprogramowanie OCR do rozpoznawania znaków 39

Rok akademicki: 2017/2018 Kod: JFM s Punkty ECTS: 7. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Autodesk 3D Studio MAX Teksturowanie modeli 3D

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików Konsola Zapisanie rezultatu do pliku... 50

Zastosowania Robotów Mobilnych

Programowanie na poziomie sprzętu. Programowanie w Windows API

Transformacje obiektów 3D

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza dźwięku i obrazu

WAŻNE! colour.me Google Fonts tutaj

BLENDER- Laboratorium 1 opracował Michał Zakrzewski, 2014 r. Interfejs i poruszanie się po programie oraz podstawy edycji bryły

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Windows Vista i DirectX 10 to największe

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

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

Badanie ruchu złożenia

Zasoby. Musimy zaimportować zasoby dla gry z Asset Store

Straszyński Kołodziejczyk, Paweł Straszyński. Wszelkie prawa zastrzeżone. FoamPro. Instrukcja obsługi

Animacje z zastosowaniem suwaka i przycisku

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

GUI - projektowanie interfejsów

ROZKŁADY MATERIAŁU PRZEDMIOT ELEMENTY INFORMATYKI KLASA IV, V I VI.

INTERAKTYWNA KOMUNIKACJA WIZUALNA. Flash - podstawy

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Unity 3D - pierwsze skrypty

Praktyczne zastosowanie grafiki komputerowej

Oprogramowanie. DMS Lite. Podstawowa instrukcja obsługi

Microsoft PowerPoint 2003 efektywne tworzenie i prezentacji multimedialnych

1 Zrozumieć Flasha... 1 Co można zrobić za pomocą Flasha?... 2 Tworzenie obrazków do strony 3 Animowanie witryny 4 Tworzenie filmów

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

Tematy lekcji informatyki klasa 4a styczeń 2013

1. Prymitywy graficzne

OPROGRAMOWANIE UŻYTKOWE

Unity 2D - prosta gra

Grafika komputerowa i wizualizacja

Informatyka II. Laboratorium Aplikacja okienkowa

Mikołaj Kania Waldemar Korłub Jakub Krajewski

Programowanie gier komputerowych. Tomasz Martyn. Wykład 10. Różności: Cinamatics, Aktorzy kinematyczni, Prefabs, Archetypes

1. Dodawanie integracji

Gry Komputerowe - laboratorium 2. Kamera FPP / TPP. mgr inż. Michał Chwesiuk 1/11. Szczecin, r

Wprowadzenie do programu 3ds Max THEBRAIN

Temat: Transformacje 3D

KARTA KURSU (realizowanego w module specjalności) Modelowanie 3D

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

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

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

Wykład 8: klasy cz. 4

PRZEWODNIK PO PRZEDMIOCIE

OpenGL i wprowadzenie do programowania gier

Programowanie obiektowe

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Zaawansowany kurs języka Python

Transkrypt:

Politechnika Poznańska, Instytut Informatyki, SUM-TWO 11 kwietnia 2015

Historia DirectX Gry pod DOS korzystały z własnych bibliotek graficznych. Pierwsze wersje Windows umożliwiały tworzenie grafiki tylko za pomocą GDI. GDI nie nadaje się do tworzenia szybkiej grafiki. Od Windows 3.1 Microsoft starał się zaimplementować obsługę szybkiej grafiki w Windows biblioteka WinG.

Historia DirectX DirectX zastąpił WinG dla 32-bitowych Windows DirectX dostępny jest na Windows począwszy od wersji 95 (tylko do DX8.0a). Windows NT4 miało specyficzną wersję DX3.0a. Aktualna wersja to 11.2 (tylko >=Vista) Od wersji 9 istnieje rozszerzenie dla języków zarządzanych platformy.net (porzucone) Wersje są kompatybilne wstecz.

Historia XNA zapowiedź 24 marca 2004 CP - 14 marca 2006 wersja 1.0-11 grudnia 2006 wersja 2.0-13 grudnia 2007 wersja 3.0-30 października 2008 wersja 4.0-16 września 2010

Zintegrowana platforma do wytwarzania gier oparta na platformie.net Kod tylko w C#

Narzędzia XNA Game Studio http://msdn.microsoft.com/en-us/xna/default.aspx Visual Studio 2008 Visual C# 2008 Express

Platformy Gra niezależna platformowo: Windows XP Windows Vista XBOX 360 ZUNE Projekt Mono.XNA (martwy) Windows Phone 7 od wersji 4.0

XBOX 360 Przed XNA konieczny był zakup drogiego SDK Kod między grą dla Windows i XBOX może być niemal w pełni współdzielony Trzeba brać pod uwagę rozdzielczości docelowe konsoli i inne sterowanie XBOX Live Marketplace

Nowy projekt

Pusty projekt Klasa Game

Klasa Game Podstawowe metody: Initialize LoadContent UnloadContent Update(GameTime) Draw(GameTime)

Initialize Inicjalizuje obiekty i zmienne Tworzy kontekst karty graficznej

LoadContent Wywoływana po Initialize Wywoływana gdy trzeba zaktualizować grafikę gry (np. zmiana ustawień grafiki) Używana do załadowania zasobów: obrazów, modeli, dźwięków, itp.

Update Wywoływana w ramach pętli gry Tu powinna się znaleźć obsługa logiki gry: reakcja na użytkownika obliczanie ruchu detekcja kolizji AI...

Draw Wywoływana w ramach pętli gry Tu powinna się znajdować tylko obsługa rysowania sceny i nic więcej

UnloadContent Wywoływana w momencie zakończenia gry Tutaj umieszczamy zwalnianie zasobów

Cykl życia gry

Prosta animacja 2D Klasa reprezentująca Sprite

Obrazek Dodajemy do podkatalogu Content

Zmiany w klasie Game Pola Metoda LoadContent Metoda UnloadContent Metoda Draw

Efekt

Animacja Nowe pola w klasie MySprite Nowy konstruktor Metoda Move

Animacja w klasie Game Metoda LoadContent Metoda Draw

Efekt

Detekcja kolizji Metoda w klasie MySprite Metoda Update w klasie Game

Efekt

Obsługa klawiatury Metoda Update

Obsługa wejścia Jako urządzenia wejściowe XNA obsługuje: pad XBOX klawiaturę mysz

Obsługa klawiatury Metody Keys[] GetPressedKeys() bool iskeydown(keys key) bool iskeyup(keys key)

Obsługa myszy Obiekt Mouse i struktura MouseState LeftButton MiddleButton RightButton ScrollWheelValue X, Y XButton1 XButton2

Obsługa Pad a Klasa GamePad Obsługuje do 4 padów (PlayerIndex) Kolekcja przycisków (Buttons) Obsługa joysticków (Thumbsticks) Obsługa analogowych triggerów Obsługa wibracji (SetVibration())

Warstwy domyślnie obiekty nakładają się w kolejności rysowania można to zmienić stosując wartswy warstwy są numerowane w zakresie 0-1 (float) wywołuje się inne wersje metody SpriteBatch.Draw i SpriteBatch.Begin

Framerate Domyślnie wynosi 60 fps Można sterować zmieniając odstęp między wywołaniami metody Update W zmiennej GameTime możemy sprawdzić, czy gra nie działa za wolno Gdy sprzęt nie nadąża ramki są pomijane

Tekst w 2D Tekst rysuje się podobnie jak sprite y Klasa SpriteFont Na podstawie opisu tekstu w XML XNA tworzy obrazek SpriteFont też jest zasobem

Tekst w 2D

Tekst w 2D

Tekst w 2D dodajemy pole do klasy Game w metodzie LoadContent wczytujemy zasób w metodzie Draw dodajemy obsługę rysowania

Dźwięk Do tworzenia efektów trzeba korzystać z Microsoft Cross-Platform Audio Creation Tool (XACT)

Dźwięk

Dźwięk Edycja banku dźwięków Własności dźwięku Pliki na dysku

Dodanie dźwięku dźwięk jest kolejnym zasobem dodawanym do Content

Klasy dźwiękowe AudioEngine - główna klasa odpowiedzialna za komumnikację z urządzeniem dźwiękowym WaveBank - kolekcja plików dźwiękowych SoundBank - kolekcja utworów bazujących na dźwiękach

Odtwarzanie dźwięku Obiekty dźwiękowe Metoda Initialize Odtworzenie dźwięku

Zapętlony dźwięk Pole Cue W metodzie Initialize W metodzie Update

Grafika 3D

System współrzędnych XNA domyślnie stosuje praworęczny układ współrzędnych

Kamera Ustawienia kamery określają dwie macierze View i Projection View: lokalizacja kamery kierunek kamery orientacja kamery Projection kąt widzenia zasięg, itp.

Macierz widoku Metoda Matrix.CreateLookAt Parametry typu Vector3: cameraposition cameratarget cameraupvector

Macierz projekcji Metoda Matrix.CreatePerspectiveFieldOfView Parametry: fieldofview aspectratio nearplanedistance farplanedistance

Kamera Warto kamerę zdefiniować jako dodatkowy komponent

Kamera pusty komponent

Kamera dodajemy macierze widoku i projekcji i kamerę do klasy Game

Grafika 3D podstawowym elementem w grafice 3D jest wierzchołek położony w przestrzeni 3D z wierzchołków budujemy trójkąty z trójkątów budujemy dowolne kształty wektory macierze

Rodzaje wierzchołków XNA VertexPositionColor VertexPositionTexture VertexPositionColorTexture VertexPositionNormalTexture

Rysujemy trójkąt Deklarujemy pole w klasie Game Inicjalizujemy tablicę w metodzie LoadContent

Rysujemy trójkąt Dodajemy obsługę rysowanie w metodzie Draw

Rysujemy trójkąt

Co to jest BasicEffect? W XNA renderowanie sceny 3D odbywa się zawsze z wykorzystaniem efektów HLSL Klasa BasicEffect realizuje podstawowy efekt bez potrzeby pisania kodu Efekty składają się z technik Technika składa się z wielu przebiegów

Klasa BasicEffect Najciekawsze własności: View - macierz określająca widok kamery Projection - macierz projekcji World - macierz świata LightingEnabled - czy aktywne przetwarzanie świateł AmbientLightColor - kolor otoczenia DirectionalLight$ ($=0,1,2) - źródła światła FogColor, FogStart, FogEnd - ustawienia mgły

Składanie węzłów Sposób rysowania węzłów PointList LineList LineStrip TriangleList TriangleStrip TriangleFan

Wektory 3D Przydatne metody: Distance - odległość euklidesowa Add, Substract - suma i różnica Multiply, Divide - iloczyn i iloraz Clamp - ogranicza współrzędne do określonego obszaru Lerp - interpolacja liniowa między wektorami SmoothStep - interpolacja z wagą

Operacje macierzowe Matrix.CreateRotation$ ($=X,Y,Z) Matrix.Translation Matrix.Scale Matrix.CreateLookAt Matrix.CreatePerspectiveFieldOfView Matrix.CreateOrtographic

Animacja trójkąta Dodajemy pole określające położenie świata sceny W BasicEffect ustawiamy własność World na to pole W metodzie Update obsługujemy klawiaturę

Animacja trójkąta

Obrót trójkąta Obrót wokół osi Y

Culling Domyślnie rysowane są elementy zgodnie z ruchem wskazówek zegara Jeżeli kolejność z aktualnego punktu widzenia jest odwrotna nie rysują się Ma to zapobiegać rysowaniu obiektów 3D od wewnątrz - teoretycznie niepotrzebne Culling można wyłączyć

Obroty Można obracać wokół każdej z osi z osobna CreateRotationX, CreateRotationY, CreateRotationZ wokół wszystkich CreateFromYawPitchRoll

Prostokąt definiujemy 4 wierzchołki zmieniamy wywołanie rysowania

Dodanie tekstury Dodajemy pole odpowiadające teksturze Zmieniamy wszędzie rodzaj węzłów na VertexPositionTexture Ładujemy teksturę w LoadContent Zmieniamy proces rysowania

Tekstura

Modele 3D XNA obsługuje format.x i.fbx Narzędzia do modelowania: 3D Studio Max Maya Blender (www.blender.org) Lightwave Modo XSI ModTool (www.softimage.com/products/modtool)

Modele 3D Model składa się z siatek (Mesh) Siatka może zawierać informacje o materiałach, kolorach i teksturach Siatka może też zawierać zapisany efekt do obsługi renderowania Z siatką powiązane jest przekształcenie umieszczające ją w przestrzeni

Modele 3D Model jest też rodzajem zasobu (Content) Najlepiej stworzyć osobną klasę

Rysowanie modelu

Obracanie modelu W metodzie Update dodajemy obrót i modyfikujemy metodę GetWorld

HLSL High Level Shader Language Następca API Fixed Function Pipeline Projektowany pierwotnie we współpracy z NVidia Umożliwia bezpośrednie programowanie karty graficznej W HLSL piszemy jak mają działać shader y Zapisywane w pliku o rozszerzeniu fx

Shader Służą do renderowania sceny Vertex shader - uruchamiany dla każdego wierzchołka sceny Pixel shader - uruchamiany dla każdego widocznego piksela sceny

Shader

HLSL Składnia podobna do C Składa się z: definicji typów definicji zmiennych globalnych definicji funkcji przekształceń definicji technik

HLSL - przykład Typy i zmienne globalne

HLSL - przykład Kod shaderów

HLSL - przykład Technika

Obsługa HLSL w XNA Definiujemy efekt Ładujemy efekt w LoadContent Rysujemy z użyciem efektu

Programowanie sieciowe XNA korzysta z API Games for Windows Live i XBOX Live wymagane konto w powyższych usługach

A. Reed: Learning XNA 3.0 O Reilly ISBN: 0-596-52195-2 Do zobaczenia 17 maja 速