Specyfikacja OpenGL Podstawy programowania grafiki komputerowej*

Wielkość: px
Rozpocząć pokaz od strony:

Download "Specyfikacja OpenGL Podstawy programowania grafiki komputerowej*"

Transkrypt

1 Specyfikacja OpenGL Podstawy programowania grafiki komputerowej* Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki Stosowanej i Modelowania 2 Uniwersytet im. Jana Kochanowskiego w Kielcach Wydział Matematyczno-Przyrodnmiczy Instytut Fizyki Zakład Informatyki Październik 2016 *na podstawie materiałów ze strony Mirosław Głowacki (AGH, UJK) OpenGL / 35

2 Spis treści 1 Wstęp 2 Składnia i typy 3 Operacje OpenGL i potok renderingu Mirosław Głowacki (AGH, UJK) OpenGL / 35

3 Spis treści 1 Wstęp 2 Składnia i typy 3 Operacje OpenGL i potok renderingu Mirosław Głowacki (AGH, UJK) OpenGL / 35

4 Co rozumiemy pod hasłem OpenGL Biblioteka OpenGL (ang. Open Graphics Library) powstała w 1992 roku na bazie języka GL opracowanego przez firmę Silicon Graphics Inc. (SGI) na potrzeby stacji graficznych IRIS. Gdy Microsoft zaimplementował wersję 1.1 biblioteki w systemi Windows stała się ona niezmiernie popularna. Obecnie jest to podstawowa niskopoziomowa biblioteka graficzna 3D, obsługiwana przez wszystkie liczące się systemy operacyjne oraz większość procesorów graficznych. OpenGL charakteryzuje się: 1 niezależnością od platformy sprzętowej, 2 ogólnie dostępną specyfikacją. Czyni to z OpenGL standard powszechnie wykorzystywany przez producentów oprogramowania użytkowego i gier. Mirosław Głowacki (AGH, UJK) OpenGL / 35

5 Rozwój OpenGL Rozwojem OpenGL zajmowała się do lipca 2006 organizacja ARB (ang. Architecture Review Board), w skład której wchodzili przedstawiciele firm 3DLabs, Apple, ATI, Dell, IBM, Intel, NVIDIA, SGI i Sun. Obecnie zadania te przejął Kronos Group, która to organizacja zajmuje się również: OpenCL, tj. API wspomagającym pisanie aplikacji na różne jednostki obliczeniowe (CPU, GPU, itd.) OpenGL ES, przenośną wersją OpenGL. Taki sposób wprowadzania zmian w bibliotece zapewnia zachowanie niezależności OpenGL od jednej platformy sprzętowej lub programowej przy jednoczesnym uwzględnieniu do najnowszych osiągnięć w dziedzinie grafiki komputerowej. Mirosław Głowacki (AGH, UJK) OpenGL / 35

6 Biblioteka GLU Ważnym uzupełnieniem OpenGL jest biblioteka GLU (ang. OpenGL Graphics System Utility Library) Zawiera ona szereg dodatkowych narzędzi do obsługi: macierzy, teksturowania, wypełniania wielokątów, krzywych i płatów NURBS, itp. Mirosław Głowacki (AGH, UJK) OpenGL / 35

7 Spis treści 1 Wstęp 2 Składnia i typy 3 Operacje OpenGL i potok renderingu Mirosław Głowacki (AGH, UJK) OpenGL / 35

8 Procedury i funkcje OpenGL Polecenia OpenGL określane są jako funkcje lub procedury. Znaczna część funkcji wykonuje te same operacje, ale rożni się zbiorem argumentów. Przyjęta konwencja nazewnictwa określa liczbę i rodzaj parametrów funkcji według schematu: rtype Name { } {b s i i64 f d ub us ui ui64} {v} ([args,] T arg1,..., T argn [,args]) Element rtype Name Znaczenie wartość zwracana przez funkcję nazwa funkcji poprzedzona przedrostkiem gl (glu dla funkcji z biblioteki GLU) Mirosław Głowacki (AGH, UJK) OpenGL / 35

9 Procedury i funkcje OpenGL Element Znaczenie 1, 2, 3, 4 liczba argumentów funkcji b argumenty typu GLbyte s argumenty typu GLshort i argumenty typu GLint i64 argumenty typu GLint64 f argumenty typu GLfloat d argumenty typu GLdouble ub argumenty typu GLubyte us argumenty typu GLushort ui argumenty typu GLuint ui64 argumenty typu GLuint64 v tablica jako argument funkcji - brak specyfikacji liczby argumentów funkcji Mirosław Głowacki (AGH, UJK) OpenGL / 35

10 Procedury i funkcje OpenGL Zasady umieszczania argumentów funkcji: Argumenty poleceń umieszczone w nawiasach [args,] i [, args] mogą, ale nie muszą być obecne. Argumenty od arg1 do argn mają typ T, który odpowiada jednemu z okeśleń typu b s i i64 f d ub us ui ui64. Jeśli ostatnim znakiem nie jest v, a { } występuje, to N jest podane przez { }. Jeśli ostatnim znakiem nie jest v, a { } nie występuje, to liczba argumentów jest z góry ustalona. Jeśli ostatnim znakiem jest v, to jest obecny tylko argument arg1 i jest nim tablica N-wartości wskazanego typu Mirosław Głowacki (AGH, UJK) OpenGL / 35

11 Procedury i funkcje OpenGL Przykładowo grupa funkcji gluniform* w specyfikacji OpenGL jest opisywana następująco: void Uniform {1234} {if} ( int location, T value ); co wskazuje na osiem deklaracji funkcji: void Uniform1i( int location, int value ); void Uniform1f( int location, float value ); void Uniform2i( int location, int v0, int v1 ); void Uniform2f( int location, float v0, float v1 ); void Uniform3i( int location, int v0, int v1, int v2 ); void Uniform3f( int location, float v0, float v2, float v2 ); void Uniform4i( int location, int v0, int v1, int v2, int v3 ); void Uniform4f( int location, float v0, float v1, float v2, float v3 ); Mirosław Głowacki (AGH, UJK) OpenGL / 35

12 Typy danych OpenGL Typy danych dostępne w bibliotece OpenGL. Typ bitów Opis OpenGL (min.) GLboolean 1 typ logiczny GLbyte 8 liczba całkowita ze znakiem (U2, tzn. w kodzie uzupełnień do 2) GLubyte 8 liczba całkowita bez znaku GLchar 8 ciąg znaków tekstowych GLshort 16 liczba całkowita ze znakiem (U2) GLushort 16 liczba całkowita bez znaku GLint 32 liczba całkowita ze znakiem (U2) GLuint 32 liczba całkowita bez znaku Mirosław Głowacki (AGH, UJK) OpenGL / 35

13 Typy danych OpenGL Typ bitów Opis OpenGL (min.) GLfixed 32 dwie 16-bitowe liczby całkowite ze znakiem (U2) (odpowiednik liczb zmiennoprzecinkowych) GLint64 64 liczba całkowita ze znakiem (U2) GLuint64 64 liczba całkowita bez znaku GLsizei 32 nieujemna liczba całkowita GLenum 32 typ wyliczeniowy całkowity GLintptr ptrbits wskaźnik na liczbę całowitą ze znakiem (U2) GLsizeiptr ptrbits wskaźnik na nieujemna liczbę całkowita GLsync ptrbits uchwyt obiektu synchronizacji GLbitfield 32 pole bitowe Mirosław Głowacki (AGH, UJK) OpenGL / 35

14 Typy danych OpenGL Typ bitów Opis OpenGL (min.) GLhalf GLfloat liczba zmiennoprzecinkowa połówkowej precyzji zakodowana jako skalar bez znaku liczba zmiennoprzecinkowa GLclampf 32 liczba zmiennoprzecinkowa z przedziału [0, 1] GLdouble 64 liczba zmiennoprzecinkowa podwójnej precyzji GLclampd 64 liczba zmiennoprzecinkowa z przedziału [0, 1] Mirosław Głowacki (AGH, UJK) OpenGL / 35

15 Typy danych OpenGL Specyfikacja nie określa jakiego rodzaju typy danych są użyte w konkretnej implementacji biblioteki OpenGL Specyfika typów OpenGL W szczególnosci typy danych OpenGL nie są typami występującymi w językach programowania Implementacja OpenGL może stosować typy danych zawierające większą niż minimalna liczbę bitów. Określenie prtbits oznacza minimalną liczbę bitów niezbędną do umieszczenia wskaźnika Stąd typy GLintptr i GLsizeiptr muszą umożliwić zapamiętanie dowolnego adresu. Biblioteka OpenGL zawiera typ pusty GLvoid. Mirosław Głowacki (AGH, UJK) OpenGL / 35

16 Układ współrzędnych i barwy Układ współrzędnych Biblioteka OpenGL stosuje prawoskrętny układ współrzędnych kartezjańskich, w którym oś OZ skierowana jest prostopadle do płaszczyzny rzutni. Warto także pamiętać, ze literatura informatyczna preferuje lewoskrętne układy współrzędnych z osią OZ skierowana w głąb monitora. Model barw Biblioteka OpenGL wykorzystuje model barw RGB, opierający się na trzech podstawowych barwach: czerwonej, zielonej i niebieskiej, w razie potrzeby uzupełniając składowe RGB o kanał alfa ( RGBA ). Wybór trybu w jakim będzie generowany obraz dokonywany jest podczas tworzenia okna renderingu. Mirosław Głowacki (AGH, UJK) OpenGL / 35

17 Bufor ramki W OpenGL w skład bufora ramki (pamięci obrazu) wchodzą następujące elementy: bufor koloru (ang. color buffer), bufor głębokości, nazywany także buforem głębi (ang. depth buffer), bufor szablonowy, nazywany także buforem szablonu (ang. stencil buffer), bufor akumulacyjny (ang. accumulation buffer). Bufor koloru Specyfikacja OpenGL wymaga co najmniej jednego bufora koloru Implementacje biblioteki OpenGL zawierają najczęściej dwa bufory koloru: przedni i tylni - ich zamiana umożliwia płynne wyświetlenie animacji gdyż jeden bufor jest aktualnie prezentowany, a drugi służy do generowania nowej sceny 3D. Mirosław Głowacki (AGH, UJK) OpenGL / 35

18 Bufor ramki Ponadto implementacja OpenGL może zawierać lewe i prawe bufory koloru, które umożliwiają tworzenie obrazów stereoskopowych. Bufor głębokości używany jest podczas działania algorytmu Z-bufora, którego zadaniem jest ukrywanie niewidocznych powierzchni. Bufor szablonu służy do ograniczenia obszaru renderingu do wybranej części okna i w implementacjach często jest łączony z buforem głębokości. Ostatni z wymienionych elementów ramki - bufor akumulacyjny, umożliwia łączenie kilku obrazów w celu uzyskania określonego efektu końcowego. Wybór, które bufory wchodzą w skład ramki dokonuje się podczas tworzenia okna renderingu. Mirosław Głowacki (AGH, UJK) OpenGL / 35

19 Okno renderingu Jedna z konsekwencji sprzętowej i systemowej niezależności biblioteki OpenGL jest brak jakichkolwiek funkcji obsługujących komunikację z użytkownikiem, w tym obsługi okien, klawiatury i myszki. Większość graficznych systemów operacyjnych posiada jednak specjalizowane funkcje pozwalające na obsługę okna renderingu OpenGL. Przykładowo: X Windows zawiera bibliotekę GLX, Microsoft Windows bibliotekę WGL, Mac OS X aż trzy biblioteki: AGL, CGL i NSGL. Także systemy wbudowane, korzystające ze znacznie skromniejszej biblioteki OpenGL ES (ang. OpenGL Embedded Systems), zawierają bibliotekę narzędziową EGL. Mirosław Głowacki (AGH, UJK) OpenGL / 35

20 Okno renderingu Oczywiście stosowanie rozwiązań specyficznych dla danego systemu operacyjnego powoduje, ze danego programu nie można skompilować i uruchomić w innym systemie operacyjnym bez dokonania szeregu zmian w tekście źródłowym. Rozwiązanie problemu stanowią biblioteki oferujące jeden, niezależny od systemu operacyjnego, interfejs do obsługi okien i komunikatów. Pierwszą biblioteką tego typu była biblioteka AUX (ang. Auxiliary Library), zwana także pod nazwa GLAUX. Największą popularność zdobyła jednak biblioteka GLUT (ang. OpenGL Utility Toolkit), opracowana przez Marka J. Kilgarda - choć od dawna nierozwijana to jest ciągle najbardziej popularną i powszechnie stosowana wieloplatformową biblioteką służącą do uruchamiania programów w OpenGL. Mirosław Głowacki (AGH, UJK) OpenGL / 35

21 Maszyna stanu Maszyna stanu OpenGL to zbiór wszystkich zmiennych wewnętrznych (zmiennych stanu) i ustawień biblioteki. Wiele zmiennych stanu jest dwustanowych - inne mają wartości całkowite lub zmiennoprzecinkowe. Istotna cecha maszyny stanu Ważną cecha maszyny stanu OpenGL jest zachowywanie zmiennych stanu do czasu, aż zostaną one zmienione przez jakąś funkcję. Pozwala to na prosta optymalizację programów poprzez oddzielenie i jednokrotne wywołanie grupy funkcji ustawiających wartości tych zmiennych stanu, które nie ulegają dalszym zmianom. Mirosław Głowacki (AGH, UJK) OpenGL / 35

22 Obsługa błędów Ważne znaczenie w bibliotece OpenGL spełniają zmienne stanu oznaczające wystąpienie błędu. Uwaga Nie wszystkie błędy spowodują zatrzymanie wykonywania programu, ale są zapamiętywane przez system. Nie jest natomiast wykonywana funkcja odpowiedzialna za powstanie błędu. Wyjątek stanowi wystąpienie błędu o kodzie GL_OUT_OF_MEMORY, który powoduje powstanie stanu nieokreślonego. Informacje o kodzie bieżącego błędu zwraca funkcja: GLenum glgeterror( void ) Mirosław Głowacki (AGH, UJK) OpenGL / 35

23 Znaczenie kodów błędów GL_NO_ERROR - brak błędu, GL_INVALID_ENUM - argument typu wyliczeniowego poza dopuszczalnym zakresem, GL_INVALID_VALUE - argument liczbowy poza dopuszczalnym zakresem, GL_INVALID_OPERATION - operacja niewykonalna w obecnym stanie, GL_STACK_OVERFLOW - operacja spowodowałaby przepełnienie stosu, GL_STACK_UNDERFLOW - operacja spowodowałaby niedomiar stosu, GL_OUT_OF_MEMORY - brakuje pamięci do wykonania operacji, GL_TABLE_TOO_LARGE - wskazana tablica jest za duża. Mirosław Głowacki (AGH, UJK) OpenGL / 35

24 Przechowywania kodów błędów Każdy rodzaj błędu jest oddzielnie zapamietywany, a każdorazowe wywołanie funkcji glgeterror zwraca kod tylko jednego błędu. Sprawdzanie błędów polega na wywoływaniu funkcji glgeterror tak długo, aż zwrócona zostanie wartość GL_NO_ERROR. Biblioteka GLU ma odrębne kody błędów będące odpowiednikami kodów błędów OpenGL: GLU_INVALID_OPERATION, GLU_INVALID_ENUM, GLU_INVALID_VALUE i GLU_OUT_OF_MEMORY. Mirosław Głowacki (AGH, UJK) OpenGL / 35

25 Przechowywania kodów błędów Ciąg znaków opisujący kod błędu biblioteki OpenGL oraz GLU, wskazany w parametrze errorcode, zwraca funkcja: const GLubyte * gluerrorstring( GLenum errorcode ) Typowy kod odczytujący błędy zgłaszane przez bibliotekę OpenGL ma postać pętli: GLenum error; while( ( error = glgeterror() )!= GL_NO_ERROR ) { // obsługa błędu } Mirosław Głowacki (AGH, UJK) OpenGL / 35

26 Spis treści 1 Wstęp 2 Składnia i typy 3 Operacje OpenGL i potok renderingu Mirosław Głowacki (AGH, UJK) OpenGL / 35

27 Potok renderingu OpenGL koncentruje się jedynie na renderingu do bufora ramki oraz czytaniu wartości zapisanych w tym buforze. Biblioteka nie ma wsparcia dla innych urządzeń, takich jak myszy i klawiatury, stąd trzeba używać innych mechanizmów w celu przetworzenia informacji wprowadzanych przez użytkownika. Wprowadzane polecenia OpenGL: określają obiekty geometryczne, które mają zostać narysowane oraz kontrolują obsługę obiektów przez różne etapy renderingu. Mirosław Głowacki (AGH, UJK) OpenGL / 35

28 Polecenia OpenGL Zasady obsługi poleceń OpenGL: 1 polecenia OpenGL są zawsze przetwarzane w kolejności, w jakiej zostały przekazane do OpenGL, 2 ewentualne opóźnienie realizacji skutków danego polecenia nie mogą mieć wpływu na wyniki późniejszych poleceń, 3 operacje pobierania zmiennych stanu, zapytania i odczyty pikseli zwracają stan odpowiadający kompletnemu wykonaniu wszystkich wcześniej wywoływanych poleceń OpenGL (poza przypadkami wyraźnie określonymi w specyfikacji), 4 OpenGL wiąże dane w chwili wywoływania polecenia, a wszelkie późniejsze zmiany danych nie mają wpływu na jego wynik. Mirosław Głowacki (AGH, UJK) OpenGL / 35

29 Etapy potoku renderingu 1 Pierwszy etap potoku renderingu operuje na prymitywach geometrycznych : punktach, segmentach linii i wielokątach które są opisane przez wierzchołki. W tym etapie wierzchołki są przekształcane i oświetlane, a prymitywy są obcinane do bryły widoku w celu przygotowania do następnego etapu - rasteryzacji. 2 Rasteryzator generuje szereg fragmentów - elementów bufora ramki używanych do dwuwymiarowego opisu prymitywów. 3 Fragmenty są przekazywane do następnego etapu - na poszczególnych fragmentach wykonywanych jest szereg operacji przed finalnym zapisem w buforze ramki. Mirosław Głowacki (AGH, UJK) OpenGL / 35

30 Model działania OpenGL Biblioteka OpenGL wykorzystuje model działania klient-serwer. W typowym przypadku klientem OpenGL jest aplikacja wykorzystująca polecenia OpenGL, a serwerem OpenGL aktualnie używana implementacja biblioteki (np. w sterowniku karty graficznej) Implementacja biblioteki OpenGL przetwarza polecenia przesłane przez klienta OpenGL. Serwer OpenGL może, ale nie musi działać na tym samym komputerze co klient OpenGL. Biblioteka OpenGL została zaprojektowana do obsługi wielu rodzajów sprzętu graficznego i jej specyfikacja zawiera opis zalecanych rozwiązań, z wyraźnie wskazanymi możliwymi od nich odstępstwami. Wariacje implementacji OpenGL powodują, że poszczególne implementacje nie muszą być zgodne "piksel do piksela" Mirosław Głowacki (AGH, UJK) OpenGL / 35

31 Zmienne stanu Wyróżniamy dwa rodzaje zmiennych stanu: zmienne serwera OpenGL umiejscowione serwerze OpenGL. zmienne klienta OpenGL umiejscowione w kliencie OpenGL Większość zmiennych stanu OpenGL wchodzi w skład serwera OpenGL. Każdy egzemplarz kontekstu OpenGL zawiera jeden pełny zestaw zmiennych stanu serwera OpenGL. Natomiast każde połączenie klienta serwerem zawiera odrębny zbiór zmiennych stanu zarówno klienta jak i serwera OpenGL. Specyfikacja przewiduje możliwość współdzielenia niektórych zmiennych stanu w ramach różnych kontekstów renderingu. Mirosław Głowacki (AGH, UJK) OpenGL / 35

32 Zmienne stanu Zmienne stanu modyfikowane są, w sposób jawny lub nie, przez cały szereg poleceń biblioteki OpenGL Do odczytu zmiennych stanu służy grupa funkcji glget*, z których najbardziej podstawowe są następujące: void glgetbooleanv( GLenum pname, GLboolean *params ); void glgetintegerv( GLenum pname, GLint *params ); void glgetinteger64v( GLenum pname, GLint64 *params ); void glgetfloatv( GLenum pname, GLfloat *params ); void glgetdoublev( GLenum pname, GLdouble *params ); Parametr pname określa, którą wartość maszyny stanów OpenGL chcemy pobrać, a params wskaźnik na zwracaną wartość. W zależności od rodzaju pobieranej zmiennej tablica params może zawierać pojedynczą zmienną lub tablicę zmiennych. Mirosław Głowacki (AGH, UJK) OpenGL / 35

33 Zmienne stanu Podobna grupa funkcji obsługuje tzw. indeksowane zmienne stanu, których wartości mogą różnić się dla poszczególnych indeksów zawartych w parametrze index : void glgetbooleani_v( GLenum target, GLuint index, GLboolean *data ); void glgetintegeri_v( GLenum target, GLuint index, GLint *data ); void glgetinteger64i_v( GLenum target, GLuint index, GLint64 *data ); void glgetfloati_v( GLenum target, GLuint index, GLfloat *data ); void glgetdoublei_v( GLenum target, GLuint index, GLdouble *data ); Mirosław Głowacki (AGH, UJK) OpenGL / 35

34 Zmienne stanu Dostępne są jeszcze dwie funkcje pobierające informacje o włączeniu lub wyłączeniu danej właściwości maszyny stanu OpenGL (dwuwartościowe zmienne stanu). Pierwsza z nich obsługuje pojedyncze właściwość wskazaną w parametrze cap, druga właściwość indeksowaną, której indeks zawiera parametr index : GLboolean glisenabled( GLenum cap ); GLboolean glisenabledi( GLenum target, GLuint index ); Mirosław Głowacki (AGH, UJK) OpenGL / 35

35 Zmienne stanu Włączanie i wyłącznie zmiennych stanu określających dwustanowe właściwości maszyny stanu umożliwiają funkcje: void gldisable( GLenum cap ); void glenable( GLenum cap ); void glenablei( GLenum target, GLuint index ); void gldisablei( GLenum target, GLuint index ); które w wersji indeksowej działają na zmiennej o indeksie wskazanym w parametrze index. Mirosław Głowacki (AGH, UJK) OpenGL / 35

Co to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. OpenGL - Achitektura. OpenGL - zalety. olas@icis.pcz.

Co to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5. OpenGL - Achitektura. OpenGL - zalety. olas@icis.pcz. Co to jest OpenGL? Oprogramowanie i wykorzystanie stacji roboczych Wykład 5 Dr inż. Tomasz Olas olas@icis.pcz.pl OpenGL (Open Graphics Library) jest niskopoziomowa biblioteka graficzna (API - programowy

Bardziej szczegółowo

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5 Wykład 5 p. 1/? Oprogramowanie i wykorzystanie stacji roboczych Wykład 5 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Wykład 5 p. 2/? Co

Bardziej szczegółowo

OpenGL i Qt. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

OpenGL i Qt. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska w Qt i Qt Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2019 Bogdan Kreczmer Niniejszy dokument zawiera materiały

Bardziej szczegółowo

Janusz Ganczarski. OpenGL Pierwszy program

Janusz Ganczarski. OpenGL Pierwszy program Janusz Ganczarski OpenGL Pierwszy program Spis treści Spis treści..................................... 1 1. Pierwszy program.............................. 1 1.1. Rysowanie sceny 3D...........................

Bardziej szczegółowo

GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie

GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie http://galaxy.agh.edu.pl/~mhojny Prowadzący: dr inż. Hojny Marcin Akademia Górniczo-Hutnicza Mickiewicza 30 30-059 Krakow pawilon B5/p.406 tel. (+48)12 617 46

Bardziej szczegółowo

Programowanie warstwy wizualnej gry

Programowanie warstwy wizualnej gry Programowanie warstwy wizualnej gry Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski OpenGL (Open Graphics Library) jest wieloplatformową biblioteką pozwalającą na niskopoziomowy dostęp do karty

Bardziej szczegółowo

OpenGL oświetlenie i tekstury. OpenGL oświetlenie. Bogdan Kreczmer.

OpenGL oświetlenie i tekstury. OpenGL oświetlenie. Bogdan Kreczmer. OpenGL oświetlenie Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2018 Bogdan Kreczmer Niniejszy dokument zawiera

Bardziej szczegółowo

Materiały. Dorota Smorawa

Materiały. Dorota Smorawa Materiały Dorota Smorawa Materiały Materiały, podobnie jak światła, opisywane są za pomocą trzech składowych. Opisują zdolności refleksyjno-emisyjne danej powierzchni. Do tworzenia materiału służy funkcja:

Bardziej szczegółowo

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

GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego. GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego. http://bazyluk.net/zpsb Grafika Komputerowa, Informatyka, I Rok PROGRAMOWANIE GRAFIKI KOMPUTEROWEJ CZASU RZECZYWISTEGO Grafika

Bardziej szczegółowo

8 Przygotował: mgr inż. Maciej Lasota

8 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 8 1/6 Grafika Komputerowa Instrukcja laboratoryjna Temat: Listy wyświetlania i tablice wierzchołków 8 Przygotował: mgr inż. Maciej Lasota 1) Listy wyświetlania Listy wyświetlania (ang.

Bardziej szczegółowo

Światła i rodzaje świateł. Dorota Smorawa

Światła i rodzaje świateł. Dorota Smorawa Światła i rodzaje świateł Dorota Smorawa Rodzaje świateł Biblioteka OpenGL posiada trzy podstawowe rodzaje świateł: światło otoczenia, światło rozproszone oraz światło odbite. Dodając oświetlenie na scenie

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/6 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Manipulowanie przestrzenią 2 Przygotował: mgr inż. Maciej Lasota 1) Manipulowanie przestrzenią Istnieją dwa typy układów współrzędnych:

Bardziej szczegółowo

OpenGL - Open Graphics Library. Programowanie grafiki komputerowej. OpenGL 3.0. OpenGL - Architektura (1)

OpenGL - Open Graphics Library. Programowanie grafiki komputerowej. OpenGL 3.0. OpenGL - Architektura (1) OpenGL - Open Graphics Library Programowanie grafiki komputerowej Rados$aw Mantiuk Wydzia$ Informatyki Zachodniopomorski Uniwersytet Technologiczny! OpenGL: architektura systemu do programowania grafiki

Bardziej szczegółowo

6 Przygotował: mgr inż. Maciej Lasota

6 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 6 1/7 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Materiały i oświetlenie 6 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie Specyfikacja biblioteki OpenGL rozróżnia trzy

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Wizualizacja 3D. dr inż. Marcin Gabryel

Wizualizacja 3D. dr inż. Marcin Gabryel Wizualizacja 3D dr inż. Marcin Gabryel Modele braw CMYK (Cyan, Magenta, Yellow, black) RGB (Red, Green, Blue) HSV (Hue, Saturation, Value) RGB Model polega na sumowaniu sygnałów w poszczególnych kanałach.

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Wykład 4. Rendering (1) Informacje podstawowe

Wykład 4. Rendering (1) Informacje podstawowe Wykład 4. Rendering (1) Informacje podstawowe Z punktu widzenia dzisiejszego programowania gier: Direct3D jest najczęściej wykorzystywanym przez profesjonalnych deweloperów gier API graficznym na platformie

Bardziej szczegółowo

OPENGL PRZEKSZTAŁCENIA GEOMETRYCZNE

OPENGL PRZEKSZTAŁCENIA GEOMETRYCZNE OPENGL PRZEKSZTAŁCENIA GEOMETRYCZNE SPIS TREŚCI 1. Przekształcenia geometryczne... 3 1.1. Obrót... 3 1.2. Skalowanie... 3 1.3. Przesunięcie... 3 1.4. Mnożenie macierzy... 4 1.5. Ładowanie macierzy... 4

Bardziej szczegółowo

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja

Bardziej szczegółowo

3 Przygotował: mgr inż. Maciej Lasota

3 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 3 1/5 Grafika Komputerowa 3D Instrukcja laboratoryjna Temat: Rysowanie prymitywów 3 Przygotował: mgr inż. Maciej Lasota 1) Rysowanie prymitywów Podstawową rodziną funkcji wykorzystywanych

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

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

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import Fraction.h #import <stdio.h> #import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 11 dr inż. CORBA CORBA (Common Object Request Broker Architecture) standard programowania rozproszonego zaproponowany przez OMG (Object Management Group)

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego

Bardziej szczegółowo

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL Dorota Smorawa Pierwszy program Pierwszy program będzie składał się z trzech etapów: Funkcji rysującej scenę 3D, Inicjacji okna renderingu,

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Podstawy programowania w języku C++ Zadania

Podstawy programowania w języku C++ Zadania Podstawy programowania w języku C++ Zadania Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

OpenGL oświetlenie. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska OpenGL oświetlenie Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska Kurs: Copyright c 2017 Bogdan Kreczmer Niniejszy dokument zawiera

Bardziej szczegółowo

Programowanie na poziomie sprzętu. Programowanie w Windows API

Programowanie na poziomie sprzętu. Programowanie w Windows API Programowanie w Windows API Windows API Windows Application Programming Interface (API) to zestaw funkcji systemu operacyjnego Windows, które umożliwiają aplikacjom korzystanie z wszystkich usług systemu.

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok OpenGL Open Graphics Library Jest to API pozwalające na renderowanie grafiki w czasie rzeczywistym,

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Światło. W OpenGL można rozróżnić 3 rodzaje światła

Światło. W OpenGL można rozróżnić 3 rodzaje światła Wizualizacja 3D Światło W OpenGL można rozróżnić 3 rodzaje światła Światło otaczające (ambient light) równomiernie oświetla wszystkie elementy sceny, nie pochodzi z żadnego konkretnego kierunku Światło

Bardziej szczegółowo

1 Temat: Vertex Shader

1 Temat: Vertex Shader Instrukcja Architektura procesorów graficznych 1 Temat: Vertex Shader Przygotował: mgr inż. Tomasz Michno 1 Wstęp 1.1 Czym jest shader Shader jest programem (zazwyczaj krótkim), wykonywanym przez kartę

Bardziej szczegółowo

GRAFIKA KOMPUTEROWA 10: Antyaliasing

GRAFIKA KOMPUTEROWA 10: Antyaliasing GRAFIKA KOMPUTEROWA 10: Antyaliasing http://galaxy.agh.edu.pl/~mhojny Prowadzący: dr inż. Hojny Marcin Akademia Górniczo-Hutnicza Mickiewicza 30 30-059 Krakow pawilon B5/p.406 tel. (+48)12 617 46 37 e-mail:

Bardziej szczegółowo

Moc płynąca z kart graficznych

Moc płynąca z kart graficznych Moc płynąca z kart graficznych Cuda za darmo! Czyli programowanie generalnego przeznaczenia na kartach graficznych (GPGPU) 22 października 2013 Paweł Napieracz /20 Poruszane aspekty Przetwarzanie równoległe

Bardziej szczegółowo

Wprowadzenie do QT OpenGL

Wprowadzenie do QT OpenGL 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

Bardziej szczegółowo

Programowanie Obiektowew języku C++ Zadania L4

Programowanie Obiektowew języku C++ Zadania L4 Programowanie Obiektowew języku C++ Zadania L4 Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30

Grafika Komputerowa Wykład 4. Synteza grafiki 3D. mgr inż. Michał Chwesiuk 1/30 Wykład 4 mgr inż. 1/30 Synteza grafiki polega na stworzeniu obrazu w oparciu o jego opis. Synteza obrazu w grafice komputerowej polega na wykorzystaniu algorytmów komputerowych do uzyskania obrazu cyfrowego

Bardziej szczegółowo

Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm

Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki

Bardziej szczegółowo

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

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

Technologie obiektowe

Technologie obiektowe WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Programowanie Obiektowew języku C++ Zadania L2

Programowanie Obiektowew języku C++ Zadania L2 Programowanie Obiektowew języku C++ Zadania L2 Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek

Implementacja sieci neuronowych na karcie graficznej. Waldemar Pawlaszek Implementacja sieci neuronowych na karcie graficznej Waldemar Pawlaszek Motywacja Czyli po co to wszystko? Motywacja Procesor graficzny GPU (Graphics Processing Unit) Wydajność Elastyczność i precyzja

Bardziej szczegółowo

Jak napisać program obliczający pola powierzchni różnych figur płaskich?

Jak napisać program obliczający pola powierzchni różnych figur płaskich? Część IX C++ Jak napisać program obliczający pola powierzchni różnych figur płaskich? Na początku, przed stworzeniem właściwego kodu programu zaprojektujemy naszą aplikację i stworzymy schemat blokowy

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

Grafika komputerowa i wizualizacja

Grafika komputerowa i wizualizacja Grafika komputerowa i wizualizacja Radosław Mantiuk ( rmantiuk@wi.zut.edu.pl, p. 315 WI2) http://rmantiuk.zut.edu.pl Katedra Systemów Multimedialnych Wydział Informatyki, Zachodniopomorski Uniwersytet

Bardziej szczegółowo

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu Mirosław Głowacki Obraz realistyczny Pojęcie obrazu realistycznego jest rozumiane w różny sposób Nie zawsze obraz realistyczny

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów

GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów http://galaxy.agh.edu.pl/~mhojny Prowadzący: dr inż. Hojny Marcin Akademia Górniczo-Hutnicza Mickiewicza 30 30-059 Krakow pawilon B5/p.406 tel. (+48)12

Bardziej szczegółowo

76.Struktura oprogramowania rozproszonego.

76.Struktura oprogramowania rozproszonego. 76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie

Bardziej szczegółowo

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup Baltie 3 Podręcznik do nauki programowania dla klas I III gimnazjum Tadeusz Sołtys, Bohumír Soukup Czytanie klawisza lub przycisku myszy Czytaj klawisz lub przycisk myszy - czekaj na naciśnięcie Polecenie

Bardziej szczegółowo

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk Podstawy informatyki Informatyka stosowana - studia niestacjonarne Grzegorz Smyk Wydział Inżynierii Metali i Informatyki Przemysłowej Akademia Górniczo Hutnicza im. Stanisława Staszica w Krakowie, Materiał

Bardziej szczegółowo

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY.

Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY. Program szkolenia VBA (VISUAL BASIC FOR APPLICATIONS) W EXCELU PRZEKROJOWY SZKOLENIE JEST DLA OSÓB, KTÓRE: chcą podnieść swoje umiejętności pracy w języku VBA do poziomu średniozaawansowanego, nigdy wcześniej

Bardziej szczegółowo

1 Wprowadzenie do algorytmiki

1 Wprowadzenie do algorytmiki Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności

Bardziej szczegółowo

Zaawansowany kurs języka Python

Zaawansowany kurs języka Python PyGame 18 grudnia 2015 Plan wykładu 1 Wprowadzenie Parametry wyświetlania Powierzchnie 2 Klawiatura Mysz Dżojstik 3 Odtwarzanie plików dźwiękowych Odtwarzanie muzyki Samodzielne tworzenie dźwięków 4 3D:

Bardziej szczegółowo

Wykład I. Wprowadzenie do baz danych

Wykład I. Wprowadzenie do baz danych Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles

Bardziej szczegółowo

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu Mirosław Głowacki Zagadnienia Jak rozumiemy fotorealizm w grafice komputerowej Historyczny rozwój kart graficznych Przekształcenia

Bardziej szczegółowo

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem

Bardziej szczegółowo

Temat: Wprowadzenie do OpenGL i GLUT

Temat: Wprowadzenie do OpenGL i GLUT Instrukcja laboratoryjna 8 Grafika komputerowa 3D Temat: Wprowadzenie do OpenGL i GLUT Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny OpenGL

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Wstęp... 19 1. Podstawy... 23. 2. Pierwszy program... 29. 3. Definiowanie sceny 3D... 35. 4. Przekształcenia geometryczne... 47

Wstęp... 19 1. Podstawy... 23. 2. Pierwszy program... 29. 3. Definiowanie sceny 3D... 35. 4. Przekształcenia geometryczne... 47 Spis treści 3 Wstęp... 19 1. Podstawy... 23 1.1. Składnia...24 1.2. Typy danych...25 1.3. Układ współrzędnych...25 1.4. Barwy...26 1.5. Bufor ramki...26 1.6. Okno renderingu...26 1.7. Maszyna stanów...27

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia

Bardziej szczegółowo

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT. WYDZIAŁ: GEOLOGII, GEOFIZYKI I OCHRONY ŚRODOWISKA KIERUNEK STUDIÓW: INFORMATYKA STOSOWANA RODZAJ STUDIÓW: STACJONARNE I STOPNIA ROK AKADEMICKI 2014/2015 WYKAZ PRZEDMIOTÓW EGZAMINACYJNYCH: I. Systemy operacyjne

Bardziej szczegółowo

Programowanie procesorów graficznych GPGPU

Programowanie procesorów graficznych GPGPU Programowanie procesorów graficznych GPGPU 1 GPGPU Historia: lata 80 te popularyzacja systemów i programów z graficznym interfejsem specjalistyczne układy do przetwarzania grafiki 2D lata 90 te standaryzacja

Bardziej szczegółowo

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

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin, Gry Komputerowe Laboratorium 1 Zajęcia organizacyjne mgr inż. Michał Chwesiuk 1/22 projektowych Zajęcia projektowe składają się zajęć (plus jedno zajęcie godzinne). Zajęcia polegają na programowania grafiki

Bardziej szczegółowo

Podstawy Programowania C++

Podstawy Programowania C++ Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:

Bardziej szczegółowo

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3

Currenda EPO Instrukcja Konfiguracji. Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji Wersja dokumentu: 1.3 Currenda EPO Instrukcja Konfiguracji - wersja dokumentu 1.3-19.08.2014 Spis treści 1 Wstęp... 4 1.1 Cel dokumentu... 4 1.2 Powiązane dokumenty...

Bardziej szczegółowo

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

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS) Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS) Temat: Platforma Systemowa Wonderware cz. 2 przemysłowa baza danych,

Bardziej szczegółowo

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie System komputerowy System komputerowy (ang. computer system) to układ współdziałaniadwóch składowych: sprzętu komputerowegooraz oprogramowania, działających coraz częściej również w ramach sieci komputerowej.

Bardziej szczegółowo

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE.

Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE. Program szkolenia PODSTAWY VBA (VISUAL BASIC FOR APPLICATIONS) I FORMULARZE SZKOLENIE JEST DLA OSÓB, KTÓRE: znają program Microsoft Excel na poziomie średniozaawansowanym, chcą poznać ogólne zasady tworzenia

Bardziej szczegółowo

Plan wykładu. Akcelerator 3D Potok graficzny

Plan wykładu. Akcelerator 3D Potok graficzny Plan wykładu Akcelerator 3D Potok graficzny Akcelerator 3D W 1996 r. opracowana została specjalna karta rozszerzeń o nazwie marketingowej Voodoo, którą z racji wspomagania procesu generowania grafiki 3D

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania

Bardziej szczegółowo

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

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1. Grażyna Koba MIGRA 2019 Spis treści (propozycja na 2*32 = 64 godziny lekcyjne) Moduł A. Wokół komputera i sieci komputerowych

Bardziej szczegółowo

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej

Bardziej szczegółowo

Podstawy programowania skrót z wykładów:

Podstawy programowania skrót z wykładów: Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace

Bardziej szczegółowo

Wprowadzenie. Artur Staszczyk Bartłomiej Filipek

Wprowadzenie. Artur Staszczyk  Bartłomiej Filipek Wprowadzenie Artur Staszczyk www.astaszczyk.com Bartłomiej Filipek www.bartlomiejfilipek.pl Bartlomiej.filipek@gmail.com Podstawy grafiki 3D GPU Co to jest OpenGL Potok Graficzny Inicjalizacja Rendering

Bardziej szczegółowo

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów

Generated by Foxit PDF Creator Foxit Software http://www.foxitsoftware.com For evaluation only. System Szablonów System Szablonów System szablonów System szablonów to biblioteka, która pozwala oddzielić warstwę prezentacji od warstwy logicznej. Aplikacja WWW najpierw pobiera wszystkie dane, przetwarza je i umieszcza

Bardziej szczegółowo

Przeciążanie operatorów

Przeciążanie operatorów Instrukcja laboratoryjna nr 4 Programowanie w języku C 2 (C++ poziom zaawansowany) Przeciążanie operatorów dr inż. Wilk-Jakubowski Jacek mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz Wprowadzenie Oprócz

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak 1

Wprowadzenie. Dariusz Wawrzyniak 1 Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Programowanie proceduralne w języku C++ Podstawy

Programowanie proceduralne w języku C++ Podstawy Programowanie proceduralne w języku C++ Podstawy Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

EGZAMIN MATURALNY Z INFORMATYKI WYBRANE: ... (system operacyjny) ... (program użytkowy) ... (środowisko programistyczne)

EGZAMIN MATURALNY Z INFORMATYKI WYBRANE: ... (system operacyjny) ... (program użytkowy) ... (środowisko programistyczne) Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. MIN 2018 KOD UZUEŁNIA ZDAJĄCY ESEL miejsce na naklejkę EGZAMIN MATURALNY Z INORMATYKI OZIOM ROZSZERZONY CZĘŚĆ I DATA: 11 maja

Bardziej szczegółowo

Elementarne obiekty geometryczne, bufory. Dorota Smorawa

Elementarne obiekty geometryczne, bufory. Dorota Smorawa Elementarne obiekty geometryczne, bufory Dorota Smorawa Elementarne obiekty Tworząc scenę 3D, od najprostszej, po najbardziej skomplikowaną, używamy obiektów złożonych, przede wszystkim podstawowych, elementarnych

Bardziej szczegółowo

Bazy danych 2. Wykład 1

Bazy danych 2. Wykład 1 Bazy danych 2 Wykład 1 Sprawy organizacyjne Materiały i listy zadań zamieszczane będą na stronie www.math.uni.opole.pl/~ajasi E-mail: standardowy ajasi@math.uni.opole.pl Sprawy organizacyjne Program wykładu

Bardziej szczegółowo

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p.

Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni. Wykład 6. Karol Tarnowski A-1 p. Programowanie proceduralne INP001210WL rok akademicki 2018/19 semestr letni Wykład 6 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Wskaźnik do pliku Dostęp do pliku: zapis, odczyt,

Bardziej szczegółowo

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: moduł specjalności obowiązkowy: Inżynieria oprogramowania Rodzaj zajęć: wykład, laboratorium I KARTA PRZEDMIOTU CEL PRZEDMIOTU GRAFICZNE MODELOWANIE

Bardziej szczegółowo

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

Bardziej szczegółowo