Wprowadzenie do QT OpenGL

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

OpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23

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

OpenGL : Prymitywy, obsługa klawiatury

PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA...

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

GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego.

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

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Instrukcja instalacji PS Bonus Pack do IBM SPSS Statistics 20 w systemie operacyjnym Windows

Gry Komputerowe - laboratorium 0

Praca w środowisku Visual Studio 2008, Visual C

Gry Komputerowe Laboratorium 3. Organizacja obiektów sceny Kolizje obiektów. mgr inż. Michał Chwesiuk 1/20. Szczecin, r

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

IBM SPSS Statistics Wersja 23. Konfigurowanie ułatwień dostępu

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

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

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Pobierz dane z Programu PŁATNIKA. e-deklaracji

Temat: Transformacje 3D

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

ZESTAW LABORATORYJNY I ZESTAW FARMACEUTYCZNY : Instrukcja instalacji

Dodawanie wzorca graficznego do programów linii InsERT GT

Zaawansowany kurs języka Python

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

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

Instrukcja obsługi aplikacji QR Barcode Scanner

Wprowadzenie do środowiska Qt Creator

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Wprowadzenie do biblioteki klas C++

Maskowanie i selekcja

Mobilne aplikacje multimedialne. OpenGL

Instalacja i opis podstawowych funkcji programu Dev-C++

Instrukcja użytkowania

Prezentacja multimedialna MS PowerPoint 2010 (podstawy)

Tematy lekcji informatyki klasa 4a styczeń 2013

Kodu z klasą. Skarb w zatrutej wodzie, cz. 2. Scenariusz 6

Programowanie Procesorów Graficznych

Programowanie na poziomie sprzętu. Programowanie w Windows API

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

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

Programowanie w Javie

11. Rozwiązywanie problemów

Instalacja krok po kroku /instalacja programu, serwera bazy danych/

Laboratorium grafiki i multimediów

Animacja. Instrukcja wykonania animacji metodą klatek kluczowych. Autor: Bartosz Kowalczyk. Blender 2.61

Ćwiczenie 1 Automatyczna animacja ruchu

Instrukcja połączenia z programem Compas LAN i import konfiguracji

Krótki kurs obsługi środowiska programistycznego Turbo Pascal z 12 Opracował Jan T. Biernat. Wstęp

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

Celem ćwiczenia jest zapoznanie się z podstawowymi funkcjami i pojęciami związanymi ze środowiskiem AutoCAD 2012 w polskiej wersji językowej.

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

Zaawansowane programowanie w C++

Instrukcja obsługi aplikacji QR Droid

KORZYSTANIE Z BAZY DANYCH UpToDate

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

2. Dostosuj listę Szybkiego Dostępu

Programowanie, część III

Programowanie Systemów Czasu Rzeczywistego

Główne elementy zestawu komputerowego

FAQ: /PL Data: 3/07/2013 Konfiguracja współpracy programów PC Access i Microsoft Excel ze sterownikiem S7-1200

Płace VULCAN. 2. W polu nad drzewem danych ustaw rok, za który chcesz utworzyć deklaracje.

Projektowanie przy uz yciu motywo w częś c 1: informacje podśtawowe

Temat: Windows 7 Centrum akcji program antywirusowy

Tematy lekcji informatyki klasa 4a grudzień 2012

Ćwiczenie 6 Animacja trójwymiarowa

INTERAKTYWNA KOMUNIKACJA WIZUALNA. Flash - podstawy

Instrukcja instalacji i konfiguracji Karty EDGE/GPRS SonyEricsson GC85

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

Pomoc do programu Oferent

Zaawansowana Grafika Komputerowa

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

HELIOS pomoc społeczna

Pracownia internetowa w szkole ZASTOSOWANIA

Pomoc do programu Oferent

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Grafika Komputerowa Materiały Laboratoryjne

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

Android - wprowadzenie. Łukasz Przywarty

Instrukcja obsługi xserver

Podręczna pomoc Microsoft Power Point 2007

Pierwsze kroki z easy Soft CoDeSys Eaton Corporation. All rights reserved.

UONET+ moduł Dziennik. Praca z rozkładami materiału nauczania

Oprogramowanie. DMS Lite. Podstawowa instrukcja obsługi

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Instrukcja obsługi programu Do-Exp

1. Przypisy, indeks i spisy.

Modelowanie obiektowe - Ćw. 1.

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

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

Shadery. Artur Staszczyk Bartłomiej Filipek

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Program V-SIM tworzenie plików video z przebiegu symulacji

Automatyzowanie zadan przy uz yciu makr języka Visual Basic

Unity 3D - pierwsze skrypty

Podstawy programowania w Qt4

Transkrypt:

Wprowadzenie do QT mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski 1/21

- Open Graphics Library Open Graphics Library API pozwalające na wykorzystanie akceleracji sprzętowej do renderowania grafiki czasu rzeczywistego. nie jest biblioteką! Jest to zbiór funkcji i numerycznych stałych, które są interpretowane przez system operacyjny i/lub sterownik karty graficznej. Działanie można rozumieć jako maszynę stanu, raz ustawiona wartość parametru systemu pozostaje taka sama do momentu jej zmiany. Główną Konkurencja: Nie obejmuje obsługi wejścia i integracji z systemem operacyjnym w celu utworzenia kontekstu. zaletą Microsoft jest DirectX i wieloplatformowość. Khronos Group Vulcan. 2/21

Środowisko QT - zestaw przenośnych bibliotek i narzędzi programistycznych dedykowanych dla języków C++, QML i Java. Środowisko jest dostępne dla platform: X11 (m.in. GNU/Linux, BSD, Solaris), Windows, Mac OS X, Haiku oraz dla urządzeń wbudowanych opartych na Linuksie ( Extended), Windows CE, Symbian, Android. Biblioteki zawierają niezależne od platformy systemowej moduły obsługi procesów, plików, sieci, grafiki trójwymiarowej (), baz danych (SQL), języka XML, lokalizacji, wielowątkowości, zaawansowanej obsługi napisów oraz wtyczek. https://www.qt.io 3/21

y - programy cieniujące 4/21

- program cieniujący Vertex shader - odpowiedzialny za wyliczenie pozycji na ekranie. attribute vec4 vertex; attribute vec3 normal; uniform mat4 projmatrix; uniform mat4 mvmatrix; void main() {\n" gl_position = projmatrix * mvmatrix * vertex; }; Fragment shader - odpowiedzialny za wyliczenie koloru piksela. void main() { gl_fragcolor = vec4(0.0, 1.0, 0.0, 1.0); } gl_position - pozycja na ekranie gl_fragcolor - kolor piksela 5/21

macierzy w 6/21

macierzy w Macierz projekcji Macierz translacji 7/21

macierzy w Macierz obrotu 8/21

macierzy w Macierz skalowania 9/21

i przygotowanie projektu 10/21

Widok okna QT Creator Wczytanie projektu Tworzenie nowego projektu Otwieranie istniejącego projektu 11/21

Widok okna QT Creator Wczytanie projektu Tworzenie nowego projektu Otwieranie istniejącego projektu Otwórz projekt -> wybieramy z wypakowanego projektu plik qlglgame.pro 12/21

Widok okna QT Creator Wczytanie projektu Następnie należy zaznaczyć odpowiedni Desktop GT Wersja MinGW 32/64 bit. Potwierdzić wybór przyciskiem Skonfiguruj projekt. zestaw narzędzi 13/21

Widok okna QT Creator Widok projektu Uruchom projekt Uruchom projekt z opcją debugowania Zbuduj projekt 14/21

Widok okna QT Creator Struktura projektu 15/21

Widok okna QT Creator Klasy CObject - przechowuje informacje o budowie prymitywów (w projekcie przechowuje informacje o kostce (ang. cube) ) - pozycje wierzchołków, ścian oraz wektorów normalnych. MainWindow - inicjowanie okna kontekstu. Window - okno programu QT. GlWidget - zawiera listę zastosowanych metod, zmiennych, obiektów klas potrzebnych do działania - inicjowanie okna, obsługa shaderów, głównej pętli projektu, obsługa urządzeń peryferyjnych (klawiatura, mysz) oraz obsługa zdarzeń (ang. event). 16/21

Macierz projekcji Procedura umieszczania obiektu na scenie: m_world = m_world_tmp - przywracanie domyślnej macierzy projekcji. m_world.scale(qvector3d(1.0, 1.5, 1.2)) - ustawianie skali obiektu QVector3D(względemX, względemy, względemz). m_world.translate(0.88f, 0.9f, 0.0f); - zmieniamy pozycje obiektu na scenie - (pozycjax, pozycjay, pozycjaz). m_world.rotate(-65.0f, 0, 0, 1) - zmieniamy obrót figury na scenie (ilestopni, dlaosix, dlaosiy, dlaosiz). settransforms(); - akceptujemy wszystkie opcje transformacji obiektu. gldrawarrays(gl_triangles, 0, m_obj.vertexcount()); - rysowanie figury dla podanych transformacji. Uwaga! Istotna jest kolejność wprowadzania parametrów scale, translate, rotate. 17/21

Modyfikacja projektu - dodanie obsługi kolorów 18/21

Modyfikacja projektu Instrukcja opisuje w jaki sposób zmodyfikować kod programu by umożliwić kolorowanie figur w. 1. Otwórz plik glwidget.cpp i odszukaj zmienną fragmentsource. 2. Do zmiennej dodaj parametr przed ciągiem "void main() {\n". 3. Następnie w tej samej " gl_fragcolor = i zamień " gl_fragcolor = vec4(modelcolor, 0);\n" 4. W pliku nagłówkowym glwidget.h zadeklaruj zmienną int m_currentcolor. 5. Po utworzeniu zmiennej udajemy się z powrotem do glwidget.cpp i odszukujemy funkcję void GLWidget::initializeGL(). 6. Odszukujemy linię m_mvmatrixloc = m_program->uniformlocation("mvmatrix"); i doklejamy poniżej niej: m_currentcolor = m_program->uniformlocation("modelcolor"); Po wykonaniu powyższych kroków kolory figur możemy zmieniać wywołując następującą procedurę: m_program->setuniformvalue(m_currentcolor, QVector3D(1.0f, 1.0, 1.0)); Powyższą funkcję wykonujemy każdorazowo przed rysowaniem figury, kolory można ustawiać w zmiennej QVector3D(RedColor, GreenColor, BlueColor) - w przedziale 0.0f do 1.0f. "uniform highp zmiennej vec4(0.0, go vec3 1.0, modelcolor;\n" odnajdź 0.0, ciąg 0.0);\n" na: (124): 19/21

20/21

Wersja podstawowa - 0.75pkt Zbuduj robota z wykorzystując cube a - skorzystaj z opcji skalowania, rotacji i translacji. Odpowiednio pokoloruj figury. Wersja rozszerzona - 1.00pkt Wersja podstawowa + dodanie animacji machania ręką. Animacja ta powinna być uzależniona od zmiennej zliczającą klatki na sekundę. 21/21