3dMatchGL Wykorzystanie biblioteki graficznej OpenGL przy tworzeniu gry 3DMatchGL.

Slides:



Advertisements
Podobne prezentacje
Modele oświetlenia Punktowe źródła światła Inne
Advertisements

Metody pozycjonowania elementów na stronie www
Wzorce.
Podstawy grafiki komputerowej
Bezpieczeństwo wyjątków w C++: OpenGL
Przekształcenia afiniczne
Grafika komputerowa Wykład 2 Wykorzystanie podstawowych usług bibliotecznych (API) w operacjach graficznych.
Interaktywny edytor terenu
Podstawy programowania grafiki 3D z użyciem biblioteki OpenGL
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Wskaźniki. Definiowanie wskaźników Wskaźnik może wskazywać na obiekt dowolnego typu. int * w; char * Wsk_Znak; float * Wskaz_Real; Przykłady: Wskaźnik.
Tworzenie prezentacji w programie PowerPoint
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
Obiekt bryła obrotowa (ang lathe = „tokarka”)
wykonał Jarosław Orski promotor pracy: mgr Szymon Smaga
Tworzenie nowej biblioteki
Programowanie grafiki 3D
Programowanie grafiki 3D
Programowanie grafiki 3D
Przegląd ważniejszych bibliotek używanych przy projekcie Quall.
Techniki programowania gier
KINEMATYKA MANIPULATORÓW I ROBOTÓW
Tworzenie publikacji w programie: PUBLISHER
Współrzędne jednorodne
Wprowadzenie do grafiki komputerowej
Współrzędne jednorodne
Menu Tabela program Microsoft Word
Wskaźnik może wskazywać na obiekt dowolnego typu. int * w; char * Wsk_Znak; float * Wskaz_Float; Przykład: Wskaźnik przechowuje adres obiektu wskazanego.
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
A. Jędryczkowski - marzec 2005 r. ©
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Programowanie gier komputerowych Tomasz Martyn
Autorka : Gosia Okrasa Kl. 2 gim. CZĘŚĆ I - PODSTAWY
O B J A Ś N I E N I E D O P R O G R A M U X A R A 3 D Z I E L O N A G Ó R A 2006.
Odwzorowywanie tekstur
Inicjalizacja i sprzątanie
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
Zasady przywiązywania układów współrzędnych do członów.
1 Analiza obiektowa Peter Coad / Edward Yourdon Analiza obiektowa wydawnictwo: Oficyna Wydawnicza READ ME, Warszawa 1994 dr Waldemar Wolski.
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Dofinansowano ze środków Ministra Kultury i Dziedzictwa Narodowego
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
EDYTOR GRAFIKI PAINT - podstawy pracy.
MS Office MS PowerPoint 2007
Model obiektowy bazy danych
EDYTOR GRAFIKI PAINT - podstawy pracy.
Grafika i komunikacja człowieka z komputerem
Obróbka obrazu w komputerze
Grafika i komunikacja człowieka z komputerem
Wzorce slajdów, animacje, różne orientacje slajdów
Portal edukacyjny A.Ś. Zarz ą dzanie informacj ą w ś rodowisku Windows.
Wstęp do Podstawy Programowania
Ms Access Raporty Marzena Nowakowska WZiMK, PŚk
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Informatyka – szkoła gimnazjalna – Scholaris - © DC Edukacja Tworzenie stron WWW w programie Microsoft FrontPage Informatyka.
Podsumowanie omówionych zagadnień
Instrukcja obsługi aplikacji „Wizualizacja produktów CRH Klinkier”
Style i szablony w MS Word 2010
Edytor tekstu Word – możliwości graficzne
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
czyli geometria (i nie tylko) w sztuce. Fraktale w Logo Komeniuszu
PODSTAWY PRACY W PROGRAMIE AUTOCAD OPISYWANIE RYSUNKÓW: ‒style tekstu; ‒wprowadzanie tekstu tekst wielowierszowy tekst jednowierszowy ‒edycja tekstu. WYMIAROWANIE.
Akademia ETI 2016 LABORATORIUM 2 – OBSŁUGA WYŚWIETLACZA GRAFICZNEGO.
Wykład 4 Dr Aneta Polewko-Klim
T. 18. E Proces DGA - Działania (operatorka).
Procedury własne to procedury tworzone przez użytkownika, składające się z nagłówka, który zawiera słowa oto i nazwę procedury z parametrem, treści procedury.
LaTeX cd.
Obróbka obrazu w komputerze
Grupy danych.
Zapis prezentacji:

3dMatchGL Wykorzystanie biblioteki graficznej OpenGL przy tworzeniu gry 3DMatchGL

Struktura programu: a) szablon w C++Builder, b) komponent TOpenGLAPPanel, c) silnik ładujący modele *.ASE, d) silnik gry – grafika OpenGL, e) silnik gry – fizyka, f) dźwięk – biblioteka FMOD.

Komponent TOpenGLAPPanel: Typowy komponent typu panel. Nie ma co prawda dokumentacji, ale tutoriale i nazwy właściwości mówią same za siebie w większości przypadków. Jedyne o czym należałoby wspomnieć, to inicjacja, moment zmiany rozmiaru panelu oraz to, co należałoby wykonać przed narysowaniem każdej klatki (co w większości pokrywa się z samym OpenGL, ale wydaje się należeć do standardu).

Inicjacja: Zdarzenie OnInit Typ wypełniania gładki glShadeModel(GL_SMOOTH); glClearColor(0.0f, 0.0f, 0.0f, 0.5f); glClearDepth(1.0f); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LEQUAL); glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); Ustawienie koloru czyszczenia To samo dla bufora Z Uaktywnienie testu głębi przy rysowaniu Ustawienie funkcji dla testu głębi Ustawienie parametru obliczania perspektywy na najlepszy

Zmiana rozmiaru panelu: Zdarzenie OnResize Zapobieganie dzieleniu przez zero (patrz gluPerspective w OnPaint) if (OpenGLAPPanel1->Height==0) OpenGLAPPanel1->Height=1; glViewport(0,0,OpenGLAPPanel1->Width,OpenGLAPPanel1->Height); Ustawienie okna, w którym ma być rysowane

Rysowanie jednej klatki animacji: Zdarzenie OnPaint Czyszczenie bufora kolorów i głębi glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45, (GLfloat)OpenGLAPPanel1->Width / (GLfloat)OpenGLAPPanel1->Height, 0.01f, 1000.0f); gluLookAt(0,-10,10,0,0,0,0,0,1); glMatrixMode(GL_MODELVIEW); ... glFinish(); Tryb macierzy projekcyjnej Ładowanie macierzy jednostkowej Ustaw perspektywę – kąt, aspekt i zakres dystansu rysowania Ustaw pozycję, cel i wektor pionu kamery Tryb macierzy modeli (służy do rysowania) Tutaj odbywa się rysowanie obiektów gry Nakaz czekania przed rysowaniem następnej klatki do zakończenia aktualnej

Relacja OpenGL - Panel: TOpenGLAPPanel stanowi łącznik, między programistą, a biblioteką OpenGL. Wykonuje wszystkie operacje konfiguracji, zmiany buforów itp. za nas. Dba o to, aby w kazdym momencie OpenGL rysował w wyznaczonym dla niego miejscu – w panelu. W tym samym czasie mamy możliwość wydawania poleceń bezpośrednio bibliotece, więc komponent ten w żaden sposób nas nie ogranicza. Przy większej ilości paneli, należy jeszcze przed narysowaniem ustalić, które okienko jest aktywnym. Służy do tego odpowiednia metoda komponentu.

Silnik gry – grafika OpenGL: a) tworzenie obiektu, b) modyfikacja obiektu.

Tworzenie obiektu: Blok glBegin / glEnd Rozpoczęcie bloku definiującego obiekt glBegin( TYP ); ... glEnd(); Rozpoczęcie bloku musi być równoczesne z definicją typu strumieniowanego obiektu. Mogą to być punkty (GL_POINTS), linie (GL_LINES), trójkąty (GL_TRIANGLES) i pochodne tych typów. Strumieniowe definiowanie wierzchołków Zakończenie bloku definiującego obiekt

Tworzenie obiektu: Strumień wierzchołków Dla każdego wierzchołka należy podać jego definicję Określenie koloru wierzchołka (i ewentualnie jego przeźroczystości) [ glColor( parametry ) ] [ glTexCoords( parametry )] glVertex( parametry ) Określenie koordynatów tekstury (jeżeli obiekt jest teksturowany) Określenie położenia wierzchołka w przestrzeni każda z tych funkcji występuje w najróżniejszych odmianach (zmienna liczba parametrów, typów danych itp...).

Tworzenie obiektu: Przykład glBegin( GL_TRIANGLES ); glColor3f( 1,0,0 ); glVertex3f( -1,0,0 ); glColor3f( 0,1,0 ); glVertex3f( 0,1,0 ); glColor3f( 0,0,1 ); glVertex3f( 1,0,0 ); glEnd(); Rysuje trójkąt o rogach w kolorach (r,g,b) kolejno czerwonym, zielonym i niebieskim i wierzchołkach kolejno w (x,y,z): [-1,0,0 ]->[0,1,0]->[1,0,0]

Modyfikacja obiektu: Funkcje Aby tak utworzony obiekt zmodyfikować,czyli obrócić, przesunąć czy przeskalować, należy wszystkie te operacje wykonać w odwrotnej kolejności: ... glBegin(...); glEnd(); Funkcje przekształcające Definicja obiektu

Modyfikacja obiektu: Funkcje Ładowanie macierzy jednostkowej (identyczność przekształcenia) glLoadIdentity(); glTranslate glRotate glScale Funkcja przemieszczenia Funkcja obrotu Funkcja skali

Modyfikacja obiektu: Przykład float Alfa,X,Y,Z; glLoadIdentity(); glTranslatef( X, Y, Z ); glRotatef( Alfa, X, Y, Z ); glScalef( X, Y, Z ); glBegin(...); ... glEnd(); W przykładzie obiekt zdefiniowany w bloku glBegin/glEnd poddany jest najpierw skali o parametrach X, Y i Z, następnie obrócony o kąt Alfa wokół wektora [X, Y, Z] i w końcu przemieszczony o wektor [X,Y,Z].

3dMatchGL Dziękuję za uwagę