OpenGL - tekstury Mapowanie tekstur

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

Download "OpenGL - tekstury Mapowanie tekstur"

Transkrypt

1 OpenGL - tekstury Mapowanie tekstur Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki Stosowanej i Modelowania Maj 2017 / Czerwiec 2019 Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

2 Spis treści 1 Obiekty tekstur i ich parametry 2 Nakładanie tekstur (wrapping) 3 Filtrowanie tekstur 4 Ładowanie obrazów tekstur 5 Biblioteka SOIL 6 Używanie tekstur 7 Jednostki teksturujące Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

3 Spis treści 1 Obiekty tekstur i ich parametry 2 Nakładanie tekstur (wrapping) 3 Filtrowanie tekstur 4 Ładowanie obrazów tekstur 5 Biblioteka SOIL 6 Używanie tekstur 7 Jednostki teksturujące Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

4 Obiekty tekstur i ich parametry Tekstury, Podobnie jak obiekty: bufora wierzchołków VBO i tablicy wierzchołków VAO, są obiektami, które muszą zostać wygenerowane przez wywołanie odpowiednich funkcji. W tym momencie można sie już spodziewać, jak taka funkcja będzie wyglądać. GLuint tex; glgentextures(1, &tex); Tekstury są zazwyczaj używane jako "obrazy do dekoracji" modeli 3D, ale w rzeczywistości mogą być używane do przechowywania wielu różnych rodzajów danych. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

5 Obiekty tekstur i ich parametry Istnieją tekstury 1D, 2D i, jak wiemy, nawet 3D, które mogą być używane do przechowywania danych masowych w GPU. Przykładem innego wykorzystania tekstur jest przechowywanie informacji o terenie. W wykładzie zwrócono uwagę na użycie tekstur obrazów, ale zasady te mają zasadniczo zastosowanie do wszystkich rodzajów tekstur. Podobnie jak inne obiekty, tekstury muszą zostać przystosowane do wykonywania na nich operacji. Ponieważ obrazy są dwywymiarowymi macierzami pikseli, należy przywiązać je do obiektu typu GL_TEXTURE_2D. glbindtexture(gl_texture_2d, tex); Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

6 Obiekty tekstur i ich parametry Podczas operacji rysowania piksele w strukturze tekstury będą posiadały adresy w postaci współrzędnych tekstury. Współrzędne te leżą w przedziale od 0, 0 do 1, 0 gdzie: adres (0, 0) konwencjonalnie jest lewym dolnym rogiem tekstury, adres (1, 1) jest prawym górnym rogiem obrazu tekstury. Operacja, która wykorzystuje współrzędne tekstur do pobierania informacji o kolorze pikseli nazywa się próbkowaniem (ang. sampling ). Istnieją różne sposoby podejścia do tego problemu, z których każdy jest odpowiedni dla różnych scenariuszy. OpenGL oferuje wiele opcji kontrolujących sposób pobierania próbek - omówimy ich wspólne cechy. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

7 Spis treści 1 Obiekty tekstur i ich parametry 2 Nakładanie tekstur (wrapping) 3 Filtrowanie tekstur 4 Ładowanie obrazów tekstur 5 Biblioteka SOIL 6 Używanie tekstur 7 Jednostki teksturujące Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

8 Nakładanie tekstur Pierwszą rzeczą, którą trzeba wziąć pod uwagę, sposób pobrania próbk, gdy żądana współrzędna wykracza poza zakres od 0 do 1. OpenGL oferuje 4 sposoby obsługi takiej czynności: GL_REPEAT - część całkowita współrzędnej zostanie zignorowana i zostanie utworzony powtarzający się wzór. GL_MIRRORED_REPEAT - tekstura zostanie również powtórzona, ale obraz będzie obrazem zwierciadlanym, gdy część całkowita współrzędnej jest nieparzysta. GL_CLAMP_TO_EDGE - współrzędna zostanie przekształcona do obszaru pomiędzy 0 a 1. GL_CLAMP_TO_BORDER - Współrzędnym poza zakresem zostanie przypisany wybrany kolor obramowania. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

9 Nakładanie tekstur Te wyjaśnienia mogą być nieco tajemnicze, więc zobaczmy jak wyglądają wszystkie te przypadki: Na początek przykładowy obraz tekstury Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

10 Nakładanie tekstur A teraz wszystkie wymienione przypadki: Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

11 Obiekty tekstur i ich parametry Clamping polega na przyporządkowaniu piksela o współrzędnych (x, y, z) tekselowi o współrzędnych (s, t, r). Parametry obsługi tekstur można zmieniać przy użyciu funkcji gltexparameter* w następujący sposób: gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_S, GL_REPEAT); gltexparameteri(gl_texture_2d, GL_TEXTURE_WRAP_T, GL_REPEAT); Jak zazwyczaj i wskazuje tu typ wartości, którą należy określić. Kolor obramowania dla czynności GL_CLAMP_TO_BORDER określa GL_TEXTURE_BORDER_COLOR ustawiany przy pomocy tablicy wartości RGBA : float color[] = { 1.0f, 0.0f, 0.0f, 1.0f }; gltexparameterfv(gl_texture_2d, GL_TEXTURE_BORDER_COLOR, color); Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

12 Spis treści 1 Obiekty tekstur i ich parametry 2 Nakładanie tekstur (wrapping) 3 Filtrowanie tekstur 4 Ładowanie obrazów tekstur 5 Biblioteka SOIL 6 Używanie tekstur 7 Jednostki teksturujące Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

13 Filtrowanie tekstur Ponieważ współrzędne tekstur są niezależne od rozdzielczości, nie zawsze odpowiadają dokładnie położeniom pikseli. Dzieje się tak, gdy obraz tekstur jest rozciągany powyżej (lub ściskany poniżej) oryginalnego rozmiaru. W takich sytuacjach OpenGL oferuje różne metody decydowania o próbkowanych kolorach. Proces ten nazywa się filtrowaniem i są dostępne następujące jego metody: GL_NEAREST zwraca teksel znajdujący się najbliżej żądanych współrzędnych, GL_LINEAR zwraca średnią ważoną 4 tekseli otaczających podane współrzędne. GL_NEAREST_MIPMAP_NEAREST, GL_LINEAR_MIPMAP_NEAREST, GL_NEAREST_MIPMAP_LINEAR, GL_LINEAR_MIPMAP_LINEAR - próbki pochodzą z MIP-map. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

14 Filtrowanie tekstur Zanim omówimy MIP-mapy, zwróćmy najpierw uwagę na różnicę między interpolacją GL_NEAREST i GL_LINEAR. Na rysunku oryginalny obraz jest 16-krotnie mniejszy niż prostokąt, na którym został on rasteryzowany. Chociaż interpolacja liniowa daje gładszy wynik, to nie zawsze jest to najbardziej idealna opcja. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

15 Filtrowanie tekstur Typ interpolacji, jaki ma zostać użyty do skalowania tekstur określa się dla dwóch oddzielnych przypadków identyfikowanych przez dwa słowa kluczowe: GL_TEXTURE_MIN_FILTER - skalowanie obrazu w dół, GL_TEXTURE_MAG_FILTER - skalowanie obrazu w górę. gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_LINEAR); gltexparameteri(gl_texture_2d, GL_TEXTURE_MAG_FILTER, GL_LINEAR); W przypadku GL_TEXTURE_MAG_FILTER nie ma sensu stosować metod filtrowania innych niż GL_NEAREST i GL_LINEAR, gdyż MIP-mapy są mniejszymi kopiami tekstur. MIP-mapy są filtrowane w trakcie ich tworzenia. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

16 Filtrowanie tekstur Zaleca się używanie MIP-map w miejsce skalowania tekstur podstawowych, ponieważ zapewniają zarówno wyższą jakość, jak i wyższą wydajność. Generowanie MIP-map jest proste i następuje poprzez wywołanie funkcji: glgeneratemipmap(gl_texture_2d); Nie ma więc powodu, aby ich nie używać! Należy jednak pamiętać o załadowaniu samej tekstury głównej przed poleceniem generującym MIP-mapy. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

17 Filtrowanie MIP-map Używanie MIP-map wymaga wyboru jednej z czterech metod ich filtrowania: GL_NEAREST_MIPMAP_NEAREST - wybiera MIP-mapę, która najbardziej pasuje do rozmiaru piksela, który jest teksturowany i używa kryterium GL_NEAREST (elementu tekstury najbliższego określonym współrzędnym). GL_LINEAR_MIPMAP_NEAREST - wybiera MIP-mapę, która najbardziej pasuje do rozmiaru piksela, który jest teksturowany i używa kryterium GL_LINEAR (średnia ważona czterech elementów tekstury, które są najbliższe określonym współrzędnym tekstury). GL_NEAREST_MIPMAP_LINEAR - wybiera dwie MIP-mapy, które najbardziej odpowiadają rozmiarowi piksela, który jest teksturowany i używa kryterium GL_NEAREST, aby uzyskać wartość tekstur z każdej mapy MIP - ostateczna wartość tekstury jest średnią ważoną tych dwóch wartości. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

18 Filtrowanie MIP-map GL_LINEAR_MIPMAP_LINEAR - wybiera dwie MIP-mapy, które najbardziej odpowiadają rozmiarowi piksela, który jest teksturowany i używa kryterium GL_LINEAR, aby uzyskać wartość tekstur z każdej MIP-mapy - ostateczna wartość tekstury jest średnią ważoną tych dwóch wartości. Ostatni przypadek oznacza, że zostanie zastosowane filtrowanie dwuliniowe każdego odpowiedniego poziomu mipmapy i trzeci filtr liniowy między sąsiednimi poziomami mipmapy - stąd termin filtrowanie trójliniowe. Istnieją inne parametry tekstur, które są one dostosowane do specjalnych operacji - więcej szczegółów na ten temat można znaleźć w specyfikacji na stronie internetowej Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

19 Spis treści 1 Obiekty tekstur i ich parametry 2 Nakładanie tekstur (wrapping) 3 Filtrowanie tekstur 4 Ładowanie obrazów tekstur 5 Biblioteka SOIL 6 Używanie tekstur 7 Jednostki teksturujące Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

20 Ładowanie obrazów tekstur Po tym, jak gdy obiekt tekstury zostanie skonfigurowany, nadchodzi czas na załadowanie obrazu tekstury. Odbywa się przez proste załadowanie tablicy pikseli przy pomocy funkcji glteximage2d - w naszym przypadku załadowana zostanie czarno-biała szachownica: // Czarno-biała szachownica float pixels[] = { 0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f }; glteximage2d(gl_texture_2d, 0, GL_RGB, 2, 2, 0, GL_RGB, GL_FLOAT, pixels); Pierwszy parametr oznacza rodzaj tekstury. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

21 Ładowanie obrazów tekstur Drugi paramatr to poziom szczegółowości - 0 oznacza, że mamy do czynienie z teksturą podstawową - parametr ten może być używany do ładowania własnych obrazów MIP-map (jak już wiemy mogą one również zostać wygenerowane z tekstury podstawowej). Trzeci parametr ( GL_RGB ) określa wewnętrzny format pikseli, format, w którym piksele powinny być zapisywane na karcie graficznej - dostępnych jest wiele różnych formatów, w tym skompresowanych. Parametry czwarty i piąty ( 2 i 2 ) określają szerokość i wysokość obrazu liczoną w pikselach - wszystkie implementacje obsługują obrazy tekstur o szerokości co najmniej 1024 tekseli. Szósty parametr powinien zawsze mieć wartość 0. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

22 Ładowanie obrazów tekstur Parametry siódmy i ósmy ( GL_RGB i GL_FLOAT ) określają format pikseli i typ danych w tablicy, która zostanie załadowana. Ostatni parametr ( pixels ) określa samą tablicę. Funkcja ładuje obraz poczynając od współrzędnych (0, 0) - należy na to zwrócić uwagę. Pojawia się teraz pytanie co do samej tablicy pikseli - w jaki sposób powinna być zorganizowana? Tekstury w aplikacjach graficznych będą zazwyczaj bardziej wyrafinowane niż proste wzorce i będą ładowane z plików. Najlepszą praktyką jest posiadanie plików w formacie, który jest natywnie obsługiwany przez sprzęt, ale czasami bardziej wygodne jest ładowanie tekstur ze wspólnych formatów graficznych, takich jak JPG czy PNG. Niestety OpenGL nie oferuje żadnych funkcji pomocniczych do załadowywania pikseli z tych plików graficznych. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

23 Spis treści 1 Obiekty tekstur i ich parametry 2 Nakładanie tekstur (wrapping) 3 Filtrowanie tekstur 4 Ładowanie obrazów tekstur 5 Biblioteka SOIL 6 Używanie tekstur 7 Jednostki teksturujące Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

24 SOIL I tu z pomocą przychodzą nam biblioteki innych firm - jedną z nich jest biblioteka SOIL. SOIL (Simple OpenGL Image Library) to mała i łatwa w użyciu biblioteka, która ładuje pliki obrazu bezpośrednio do obiektów tekstur lub tworzy takie obiekty. Aby zacząć jej używać, należy dodać katalog SOIL do ścieżki include kompilatora i SOIL -framework dla linkera. Chociaż SOIL zawiera funkcje automatycznego tworzenia tekstury z obrazu, używa przy tym innych funkcji, które nie są dostępne w nowoczesnych OpenGL. Z tego powodu po prostu użyjemy SOIL do załadowania obrazu i sami stworzymy teksturę. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

25 SOIL Następujący kod spowoduje załadowanie obrazu z pliku i utworzenie tekstury. int width, height; unsigned char* image = SOIL_load_image("img.png", &width, &height, 0, SOIL_LOAD_RGB); glteximage2d(gl_texture_2d, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image); Teraz można przystąpić do konfiguracji parametrów tekstury i generowania MIP-map. Pamięć obrazu można wyczyścić bezpośrednio po załadowaniu go do tekstury. SOIL_free_image_data(image); Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

26 Spis treści 1 Obiekty tekstur i ich parametry 2 Nakładanie tekstur (wrapping) 3 Filtrowanie tekstur 4 Ładowanie obrazów tekstur 5 Biblioteka SOIL 6 Używanie tekstur 7 Jednostki teksturujące Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

27 Używanie tekstur Jak widać, tekstury są próbkowane przy użyciu współrzędnych tekstur - trzeba je więc dodać do danych wierzchołkowych jako dodatkowe atrybuty. Wykorzystajmy dane z programu rysującego wielokąty dodając współrzędne tekstury. Nowa macierz wierzchołków będzie teraz zawierać współrzędne s i t dla każdego wierzchołka: float vertices[] = { // Position Color Texcoords -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, // Top-left 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // Top-right 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, // Bottom-right -0.5f, -0.5f, 1.0f, 1.0f, 1.0f, 0.0f, 1.0f // Bottom-left }; Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

28 Używanie tekstur Shader wierzchołków musi również zostać zmodyfikowany tak, aby współrzędne tekstury mogły być interpolowane dla każdego fragmentu podobnie jak współrzędne koloru.... in vec2 texcoord; out vec3 Color; out vec2 Texcoord;... void main(){ Texcoord = texcoord;... Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

29 Używanie tekstur Tak jak poprzednio wskaźniki atrybutów muszą zostać dostosowane do nowego formatu: glvertexattribpointer(posattrib, 2, GL_FLOAT, GL_FALSE, 7*sizeof(float), 0); glvertexattribpointer(colattrib, 3, GL_FLOAT, GL_FALSE, 7*sizeof(float), (void*)(2*sizeof(float))); GLint texattrib = glgetattriblocation(shaderprogram, "texcoord"); glenablevertexattribarray(texattrib); glvertexattribpointer(texattrib, 2, GL_FLOAT, GL_FALSE, 7*sizeof(float), (void*)(5*sizeof(float))); Ponieważ dwie współrzędne zostały dodane, każdy z wierzchołków jest teraz opisany 7 danymi, a atrybuty tekstury zajmują 2 ostatnie pozycje Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

30 Używanie tekstur Teraz pozostaje tylko zapewnić dostęp do tekstury dla shadera fragmentów tak, aby był w stanie dokonywać próbkowania tekstury. Odbywa się to przez dodanie zmiennej uniform typu sampler2d, która będzie miała domyślną wartość równą 0. Wartość tę należy zmienić tylko wtedy, gdy chcemy zapewnić dostęp do wielu tekstur. Jako przykład posłuży nam użyty wcześniej obraz kotka, który zostanie załadowany przy użyciu biblioteki SOIL. W tym cely funkcji SOIL_load_image należy przekazać jako pierwszy parametr nazwę pliku zawierającego ten obraz. Obraz powinien się znaleźć w katalogu roboczym aplikacji. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

31 Używanie tekstur Aby pobrać próbkę z tekstury 2D przy użyciu samplera, należy wywołać funkcję texture z właściwym samplerem i współrzędnymi tekstury jako parametrami. Można również pomnożyć uzyskaną próbkę z atrybutem koloru, co może dostarczyć interesujących efektów. Shader fragmentów wygląda teraz tak: #version 150 in vec3 Color; in vec2 Texcoord; out vec4 outcolor; uniform sampler2d tex; void main(){ outcolor = texture(tex, Texcoord) * vec4(color, 1.0); } Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

32 Używanie tekstur Efekt końcowy przeprowadzonych operacji jest natępujący: Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

33 Spis treści 1 Obiekty tekstur i ich parametry 2 Nakładanie tekstur (wrapping) 3 Filtrowanie tekstur 4 Ładowanie obrazów tekstur 5 Biblioteka SOIL 6 Używanie tekstur 7 Jednostki teksturujące Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

34 Jednostki teksturujące Sampler w shaderze cieniującym był do tej pory związany z jednostką teksturującą nr 0. Jednostka teksturująca to odniesienie do konkretnego obiektu tekstury, która ma być próbkowana w module cieniującym. Tekstury są związane z jednostkami teksturującycmi używanymi wcześniej przez glbindtexture. Ponieważ do tej pory nie określono jawnie żadnej jednostki teksturującej, tekstura była związana z domyślną jednostką GL_TEXTURE0. Dlatego sampler w module cieniującym działałał prawidłowo. Funkcja glactivetexture określa który z obiektów tekstury jest związany z konkretną jednostką podczas wywoływania funkcji glbindtexture. glactivetexture(gl_texture0); Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

35 Jednostki teksturujące Liczba obsługiwanych jednostek teksturyjących różni się dla każdej od karty graficznej, ale nie może być mniejsza niż 48. Można śmiało powiedzieć, że limit ten jest nadmiarowy nawet w najbardziej ekstremalnych aplikacjach graficznych. Aby pokazać próbkowanie z wielu tekstur, spróbujmy zmieszać zdjęcia kotka ze zdjęciem szczeniaka. Należy przy tym zmień moduł shadera fragmentów tak, aby próbkowanie zachodziło z dwóch tekstur:... uniform sampler2d texkitten; uniform sampler2d texpuppy; void main(){ vec4 colkitten = texture(texkitten, Texcoord); vec4 colpuppy = texture(texpuppy, Texcoord); outcolor = mix(colkitten, colpuppy, 0.5); } Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

36 Jednostki teksturujące Funkcja mieszająca mix to specjalną funkcją GLSL, która interpoluje liniowo wartość między dwoma zmiennymi w oparciu o trzeci parametr. Wartość 0.0 wskazuje na pierwszą zmienną, a 1.0 na drugą - wartość pośrednia x miesza obie zmienne w stosunku x 1 x. Gdy samplery są gotowe, należy przypisać im pierwsze dwie jednostki teksturujące i powiązać z tymi jednostkami odpowiednie tekstury. Odbywa się to przez dodanie wywołań glactivetexture do kodu ładowania tekstur. Całość kodu przedstawiono na dwóch kolejnych przeźroczach. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

37 Jednostki teksturujące GLuint textures[2]; glgentextures(2, textures); int width, height; unsigned char* image; glactivetexture(gl_texture0); glbindtexture(gl_texture_2d, textures[0]); image = SOIL_load_image("Kitty.png", &width, &height, 0, SOIL_LOAD_RGB); glteximage2d(gl_texture_2d, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image); SOIL_free_image_data(image); gluniform1i(glgetuniformlocation(shaderprogram, "texkitten"), 0); Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

38 Jednostki teksturujące glactivetexture(gl_texture1); glbindtexture(gl_texture_2d, textures[1]); image = SOIL_load_image("Puppy.png", &width, &height, 0, SOIL_LOAD_RGB); glteximage2d(gl_texture_2d, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image); SOIL_free_image_data(image); gluniform1i(glgetuniformlocation(shaderprogram, "texpuppy"), 1); Jednostki teksturujące samplerów ustawia się za pomocą funkcji gluniform*, która akceptuje liczbę całkowitą określającą jednostkę teksturującą. Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

39 Używanie tekstur Przedstawiony kod prowadzi do następującego obrazu: Mirosław Głowacki (AGH, UJK) OpenGL 2017/ / 39

Tekstury. Dorota Smorawa

Tekstury. Dorota Smorawa Tekstury Dorota Smorawa Definiowanie obiektów tekstur Dodawanie tekstur należy rozpocząć od zdefiniowania nazw tekstur ładowanych do bufora. Dla ułatwienia pracy z teksturami możemy przygotować obiekty

Bardziej szczegółowo

Teksturowanie. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 10. Tekstury. Proces nakładania tekstury.

Teksturowanie. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 10. Tekstury. Proces nakładania tekstury. Teksturowanie Oprogramowanie i wykorzystanie stacji roboczych Wykład 10 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Teksturowanie jest

Bardziej szczegółowo

OpenGL Światło (cieniowanie)

OpenGL Światło (cieniowanie) OpenGL Światło (cieniowanie) 1. Oświetlenie włączanie/wyłączanie glenable(gl_lighting); - włączenie mechanizmu oświetlenia gldisable(gl_lighting); - wyłączenie mechanizmu oświetlenia glenable(gl_light0);

Bardziej szczegółowo

Zadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym

Zadanie 1. Ściana. 1. Potrzebne zmienne w dołączonym do zadania kodzie źródłowym Zadanie 1. Ściana Zadanie W pliku walls.cpp znajduje się funkcja void draw_back_wall(). Należy uzupełnić ją, ustawiając odpowiednio parametry teksturowania tak, aby na ścianę, która w pierwotnej wersji

Bardziej szczegółowo

Teksturowanie (ang. texture mapping)

Teksturowanie (ang. texture mapping) Teksturowanie (ang. texture mapping) Radosław Mantiuk Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny Tekstura Funkcja modyfikująca wygląd powierzchni. Ta funkcja może być reprezentowana

Bardziej szczegółowo

OpenGL Światło (cieniowanie)

OpenGL Światło (cieniowanie) OpenGL Światło (cieniowanie) 1. Oświetlenie włączanie/wyłączanie glenable(gl_lighting); - włączenie mechanizmu oświetlenia gldisable(gl_lighting); - wyłączenie mechanizmu oświetlenia glenable(gl_light0);

Bardziej szczegółowo

Synteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych

Synteza i obróbka obrazu. Tekstury. Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Synteza i obróbka obrazu Tekstury Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Tekstura Tekstura (texture) obraz rastrowy (mapa bitowa, bitmap) nakładany na

Bardziej szczegółowo

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23

Grafika Komputerowa Wykład 6. Teksturowanie. mgr inż. Michał Chwesiuk 1/23 Wykład 6 mgr inż. 1/23 jest to technika w grafice komputerowej, której celem jest zwiększenie szczegółowości renderowanych powierzchni za pomocą tekstur. jest to pewna funkcja (najczęściej w formie bitmapy)

Bardziej szczegółowo

Filtrowanie tekstur. Kinga Laurowska

Filtrowanie tekstur. Kinga Laurowska Filtrowanie tekstur Kinga Laurowska Wprowadzenie Filtrowanie tekstur (inaczej wygładzanie) technika polegająca na 'rozmywaniu' sąsiadujących ze sobą tekseli (pikseli tekstury). Istnieje wiele metod filtrowania,

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

Bartosz Bazyluk Teksturowanie Pojęcie tekstury, potok, zastosowania. Gry komputerowe, Informatyka N1, III Rok

Bartosz Bazyluk Teksturowanie Pojęcie tekstury, potok, zastosowania.   Gry komputerowe, Informatyka N1, III Rok Teksturowanie Pojęcie tekstury, potok, zastosowania. http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka N1, III Rok RENDEROWANIE DETALI Problem: W jaki sposób korzystając z dotychczas omówionych

Bardziej szczegółowo

OpenGL teksturowanie

OpenGL teksturowanie OpenGL teksturowanie Teksturowanie polega na pokrywaniu wielokątów obrazami (plikami graficznymi) Umożliwia znaczące zwiększenie realizmu sceny przy niewielkim zwiększeniu nakładu obliczeniowego Rozwój

Bardziej szczegółowo

Bartosz Bazyluk Teksturowanie Mapy bitowe, pojęcie tekstury, potok, zastosowania.

Bartosz Bazyluk Teksturowanie Mapy bitowe, pojęcie tekstury, potok, zastosowania. Teksturowanie Mapy bitowe, pojęcie tekstury, potok, zastosowania. http://bazyluk.net/dydaktyka Grafika Komputerowa i Wizualizacja, Informatyka S1, II Rok SPOSOBY REPREZENTACJI OBRAZU Grafika rastrowa Obraz

Bardziej szczegółowo

Poniżej pokazane są poszczególne etapy, w nawiasach kwadratowych znajdują się nazwy tekstur, które utworzymy w projekcie, a przy strzałkach nazwy

Poniżej pokazane są poszczególne etapy, w nawiasach kwadratowych znajdują się nazwy tekstur, które utworzymy w projekcie, a przy strzałkach nazwy Część IV Postprocessing rozmycie gaussowskie Do tej pory obiekty renderowane były od razu do okna podglądu. Zmienimy trochę ten schemat tworzenia obrazu. Wszystkie przebiegi, które zostały utworzone do

Bardziej szczegółowo

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

Gry Komputerowe Laboratorium 4. Teksturowanie Kolizje obiektów z otoczeniem. mgr inż. Michał Chwesiuk 1/29. Szczecin, r Gry Komputerowe Laboratorium 4 Teksturowanie Kolizje obiektów z otoczeniem mgr inż. Michał Chwesiuk 1/29 Klasa Stwórzmy najpierw klasę TextureManager, która będzie obsługiwała tekstury w projekcie. 2/29

Bardziej szczegółowo

Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty.

Druga aplikacja Prymitywy, alpha blending, obracanie bitmap oraz mały zestaw przydatnych funkcji wyświetlających własnej roboty. Przyszedł czas na rysowanie własnych figur, czyli prymitywy, obracanie bitmap, oraz alpha blending-czyli półprzezroczystość. Będę opisywał tylko rzeczy nowe-nie ma potrzeby abym się powtarzał. Zaczynajmny

Bardziej szczegółowo

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

OpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23 OpenGL : mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski 1/23 Folder z plikami zewnętrznymi (resources) Po odpaleniu przykładowego projektu, nie uruchomi się on poprawnie. Powodem

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

Nowoczesna OpenGL - rendering wielokątów Rendering wielokątów w kontekście biblioteki SFML

Nowoczesna OpenGL - rendering wielokątów Rendering wielokątów w kontekście biblioteki SFML Nowoczesna OpenGL - rendering wielokątów Rendering wielokątów w kontekście biblioteki SFML Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Inżynierii Metali

Bardziej szczegółowo

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie VI. Biblioteka OpenGL - teksturowanie

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie VI. Biblioteka OpenGL - teksturowanie Laboratorium Grafiki Komputerowej i Animacji Ćwiczenie VI Biblioteka OpenGL - teksturowanie Sławomir Samolej Rzeszów, 2013 2 1. Wstęp Podczas tworzenia skomplikowanych obiektów graficznych przydatnym mechanizmem

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

Programowanie Procesorów Graficznych

Programowanie Procesorów Graficznych Programowanie Procesorów Graficznych Wykład 1 9.10.2012 Prehistoria Zadaniem karty graficznej było sterowanie sygnałem do monitora tak aby wyświetlić obraz zgodnie z zawartościa pamięci. Programiści pracowali

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

Praca z wynikami w ALOORA

Praca z wynikami w ALOORA AGROLAB GROUP 02-2018 1 / 15 Spis treści Rozdział 1: praca z dwoma widokami wyników... 3 Wyniki według zlecenia... 3 Wyniki według próbki... 3 Modyfikowanie widoków... 3 Wybieranie określonych zleceń lub

Bardziej szczegółowo

Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie

Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie Mapowanie tekstur Mip-mapy (level of detail) Filtrowanie Multiteksturowanie Korekcja perspektywy http://en.wikipedia.org/wiki/file:perspective_correct_texture_mapping.jpg GL_TEXTURE_MIN_FILTER Zmniejszanie

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

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM) ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM) LABORATORIUM 5 - LOKALIZACJA OBIEKTÓW METODĄ HISTOGRAMU KOLORU 1. WYBÓR LOKALIZOWANEGO OBIEKTU Pierwszy etap laboratorium polega na wybraniu lokalizowanego obiektu.

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

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

Podstawy pozycjonowania CSS

Podstawy pozycjonowania CSS Podstawy pozycjonowania CSS Żeby pokazać w jaki sposób przeglądarka rozkłada elementy na stronie posłużę się prostym przykładowym fragmentem kodu html. div id="before"

Bardziej szczegółowo

7. Dynamiczne generowanie grafiki

7. Dynamiczne generowanie grafiki 7. Dynamiczne generowanie grafiki 7.1. Biblioteka GD Dynamiczne generowanie kodu HTML to podstawowe zastosowanie języka PHP. Często jednak to nie wystarczy i mieszanka: dynamiczny HTML plus statyczna grafika,

Bardziej szczegółowo

Feedy produktowe Ceneo, Skąpiec, Favi, Domodi, Moneteasy

Feedy produktowe Ceneo, Skąpiec, Favi, Domodi, Moneteasy Aplikacja Shoper Appstore Feedy produktowe Ceneo, Skąpiec, Favi, Domodi, Moneteasy Stworzona przez: Krótki opis aplikacji Generuj konfigurorwalny plik XML z produktami z Twojego sklepu. Aplikacja umożliwia

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

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków

// Potrzebne do memset oraz memcpy, czyli kopiowania bloków ZAWARTOŚCI 3 PLIKOW W WORDZIE: MAIN.CPP: #include #include #include pamięci // Potrzebne do memset oraz memcpy, czyli kopiowania bloków #include "Rysowanie_BMP.h" using

Bardziej szczegółowo

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C.

Ustawienia materiałów i tekstur w programie KD Max. MTPARTNER S.C. Ustawienia materiałów i tekstur w programie KD Max. 1. Dwa tryby własności materiału Materiał możemy ustawić w dwóch trybach: czysty kolor tekstura 2 2. Podstawowe parametry materiału 2.1 Większość właściwości

Bardziej szczegółowo

Laboratorium 4 OpenGl (4) Oświetlenie sceny

Laboratorium 4 OpenGl (4) Oświetlenie sceny Laboratorium 4 OpenGl (4) Oświetlenie sceny Przy generacji obrazu obiektu do obliczeń oświetlenia mechanizm renderujący OpenGL wykorzystuje model oświetlenia Phonga. Model ten służy do obliczania oświetlenia

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

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji

Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Ćwiczenie 4 - Podstawy materiałów i tekstur. Renderowanie obrazu i animacji Materiał jest zbiorem informacji o właściwościach powierzchni. Składa się na niego kolor, sposób odbijania światła i sposób nakładania

Bardziej szczegółowo

Visual Studio instalacja

Visual Studio instalacja Visual Studio 2017 - instalacja Do tej pory napisaliśmy wiele programów, z czego niemal wszystkie były aplikacjami konsolowymi. Najwyższy więc czas zająć się tworzeniem aplikacji z graficznym interfejsem

Bardziej szczegółowo

Jeśli chcemy usunąć ze zdjęć niewielkie obszary 'brudów' powstałych w wyniku np. zanieczyszczeń obiektywu lub matrycy.

Jeśli chcemy usunąć ze zdjęć niewielkie obszary 'brudów' powstałych w wyniku np. zanieczyszczeń obiektywu lub matrycy. Retusz zdjęć STEMPEL Jeśli chcemy usunąć ze zdjęć niewielkie obszary 'brudów' powstałych w wyniku np. zanieczyszczeń obiektywu lub matrycy. Można też stosować to narzędzie z powodzeniem do pozbywania się

Bardziej szczegółowo

Operacja macro. czyli jak podpisać zdjęcie i zrobić miniaturę. Tworzymy nową akcję. Anna Góra. Zmiana dpi zdjęcia na 300 piks/cal.

Operacja macro. czyli jak podpisać zdjęcie i zrobić miniaturę. Tworzymy nową akcję. Anna Góra. Zmiana dpi zdjęcia na 300 piks/cal. Operacja macro czyli jak podpisać zdjęcie i zrobić miniaturę 29 września 2009 29 września 2009r. Tworzymy nową akcję 1. Otwieramy zdjęcie w Photoshopie. W palecie Operacje, po prawej stronie obszaru roboczego

Bardziej szczegółowo

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Systemy wirtualnej rzeczywistości. Komponenty i serwisy Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Systemy wirtualnej rzeczywistości Laboratorium Komponenty i serwisy Wstęp: W trzeciej części przedstawione zostaną podstawowe techniki

Bardziej szczegółowo

Ćwiczenie 1 Automatyczna animacja ruchu

Ćwiczenie 1 Automatyczna animacja ruchu Automatyczna animacja ruchu Celem ćwiczenia jest poznanie procesu tworzenia automatycznej animacji ruchu, która jest podstawą większości projektów we Flashu. Ze względu na swoją wszechstronność omawiana

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

dr inż. Jacek Dąbrowski, KSG

dr inż. Jacek Dąbrowski, KSG dr inż. Jacek Dąbrowski, KSG jacek.dabrowski@eti.pg.gda.pl Technologie PHIGS, Iris GL OpenGL, DirectX, OpenGL OpenGL OpenGL ES WebGL OpenCL OGL 1.0: 1992 DirectX:1995, GLIDE: 1996 OGL 1.1-1.5: 1997-2002

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

Dokumentacja WebMaster ver 1.0

Dokumentacja WebMaster ver 1.0 1 Wstęp Dokumentacja WebMaster ver 1.0 Dokumentacja ta przeznaczona jest dla webmasterów, grafików, programistów. Przedstawia ona strukturę aplikacji SOTEeSKLEP, opisuje działanie oraz wyjaśnia m.in. jak

Bardziej szczegółowo

Bartłomiej Filipek www.ii.uj.edu.pl/~filipek

Bartłomiej Filipek www.ii.uj.edu.pl/~filipek Bartłomiej Filipek www.ii.uj.edu.pl/~filipek Nasz Cel Prehistoria krótki wstęp Nowa era! Vertex Shaders Fragment Shaders Podstawy GLSL Obsługa GLSL z API OpenGL Dodajmy parę efektów! Podsumowanie Dodatkowe

Bardziej szczegółowo

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:

Wskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami: Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie

Bardziej szczegółowo

Opis funkcji modułu Konwerter 3D

Opis funkcji modułu Konwerter 3D Opis funkcji modułu Konwerter 3D www.cadprojekt.com.pl Kliknij na tytuł rozdziału, aby przejść do wybranego zagadnienia MODUŁ KONWERTER 3D...3 Wygląd i funkcje okna modułu Konwerter 3D...3 Konwertowanie

Bardziej szczegółowo

Zajęcia nr 15 JavaScript wprowadzenie do JavaScript

Zajęcia nr 15 JavaScript wprowadzenie do JavaScript Zajęcia nr 15 JavaScript wprowadzenie do JavaScript Prowadzący: Andrzej Gąsienica-Samek, strona kółka www.atinea.pl/kolko Wprowadzenie do jsfiddle.net Uruchom Chrome i wejdź na stronę http://jsfiddle.net.

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

3.4. Opis konfiguracji layoutów.

3.4. Opis konfiguracji layoutów. Definicja layout-ów dla tablicy odczytywana jest z tabeli w bazie danych: [UnitId_System] Gdańsk = 42, Gdynia = 43 [UnitId_Subsytem] 6 = TZT, 7 = ZZT [UnitId_Unit] identyfikator obiektu [Update_TimeStamp]

Bardziej szczegółowo

Rysowanie punktów na powierzchni graficznej

Rysowanie punktów na powierzchni graficznej Rysowanie punktów na powierzchni graficznej Tworzenie biblioteki rozpoczniemy od podstawowej funkcji graficznej gfxplot() - rysowania pojedynczego punktu na zadanych współrzędnych i o zadanym kolorze RGB.

Bardziej szczegółowo

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo

Obsługa mapy przy użyciu narzędzi nawigacji

Obsługa mapy przy użyciu narzędzi nawigacji Obsługa mapy przy użyciu narzędzi nawigacji Narzędzia do nawigacji znajdują się w lewym górnym rogu okna mapy. Przesuń w górę, dół, w lewo, w prawo- strzałki kierunkowe pozwalają przesuwać mapę w wybranym

Bardziej szczegółowo

Wypełnianie kolorem lub deseniem

Wypełnianie kolorem lub deseniem Wypełnianie kolorem lub deseniem Gdy narysujesz nowy obiekt, to zostaną mu nadane domyślne kolory wypełnienia, konturu, itp. Oczywiście wszystkie te parametry (i wiele innych) możesz dowolnie modyfikować.

Bardziej szczegółowo

Potok graficzny i shadery. Hubert Rutkowski

Potok graficzny i shadery. Hubert Rutkowski Potok graficzny i shadery Hubert Rutkowski 1. Coś o mnie Zakład Technologii Gier Uniwerytetu Jagiellońskiego 2. Potok graficzny jak w OpenGL Cry Engine 3 (zródło: CryTek) Vertex specification

Bardziej szczegółowo

KOMPUTEROWE WSPOMAGANIE PRAC INŻYNIERSKICH

KOMPUTEROWE WSPOMAGANIE PRAC INŻYNIERSKICH KOMPUTEROWE WSPOMAGANIE PRAC INŻYNIERSKICH Joanna Bartnicka Joanna.Bartnicka@polsl.pl Treści kształcenia 1. Prace inżynierskie w cyklu życia produktu: stadia cyklu życia produktu, typy życia produktu.

Bardziej szczegółowo

WAŻNE! colour.me Google Fonts tutaj

WAŻNE! colour.me Google Fonts tutaj Otwieramy dokument, ustalamy podstawowe parametry. 1. Wpisujemy liczbę stron w tym przypadku będą to 2 (przód i tył). 2. Ustalamy rozmiar docelowy w tym przypadku 85x55 mm. 3. Odznaczamy opcję: strony

Bardziej szczegółowo

Delphi podstawy programowania. Środowisko Delphi

Delphi podstawy programowania. Środowisko Delphi Delphi podstawy programowania Środowisko Delphi Olsztyn 2004 Delphi Programowanie obiektowe - (object-oriented programming) jest to metodologia tworzeniu programów komputerowych definiująca je jako zbiór

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

Shadery. Artur Staszczyk Bartłomiej Filipek

Shadery. Artur Staszczyk  Bartłomiej Filipek Shadery Artur Staszczyk www.astaszczyk.com Bartłomiej Filipek www.bartlomiejfilipek.pl Bartlomiej.filipek@gmail.com Potok graficzny Vertex shader Fragment shader GLSL Przykłady Inne shadery? Vertex shader

Bardziej szczegółowo

Temat: Tekstury uŝytkownika

Temat: Tekstury uŝytkownika Techniki CAD w pracy inŝyniera Aplikacja programu Autodesk Inventor 2010. Studium stacjonarne i niestacjonarne. Kierunek: Elektrotechnika Temat: Tekstury uŝytkownika Opracował: dr inŝ. Andrzej Wilk 2 1.

Bardziej szczegółowo

Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki

Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki Politechnika Warszawska Wydział Mechatroniki Instytut Automatyki i Robotyki Ćwiczenie laboratoryjne 2 Temat: Modelowanie powierzchni swobodnych 3D przy użyciu programu Autodesk Inventor Spis treści 1.

Bardziej szczegółowo

Podstawy Processingu. Diana Domańska. Uniwersytet Śląski

Podstawy Processingu. Diana Domańska. Uniwersytet Śląski Podstawy Processingu Diana Domańska Uniwersytet Śląski Processing jest językiem programowania opartym na języku Java. Jest on nastawiony na aplikacje związane z grafiką, animacją. Projekt został zainicjowany

Bardziej szczegółowo

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

Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe Programowanie gier komputerowych Tomasz Martyn Wykład 6. Materiały informacje podstawowe Czym są tekstury? Tekstury są tablicowymi strukturami danych o wymiarze od 1 do 3, których elementami są tzw. teksele.

Bardziej szczegółowo

Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4. Dokumentacja dla Scandroid. Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4. Scandroid to aplikacja przeznaczona

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

8. Dynamiczne generowanie grafiki, cz. 2

8. Dynamiczne generowanie grafiki, cz. 2 8. Dynamiczne generowanie grafiki, cz. 2 8.1. Generowanie tekstu Chociaż tekst można umieścić na grafice korzystając z HTML (używając grafiki jako tła obiektu), często wygodniej jest umieścić tekst bezpośrednio

Bardziej szczegółowo

Implementacja filtru Canny ego

Implementacja filtru Canny ego ANALIZA I PRZETWARZANIE OBRAZÓW Implementacja filtru Canny ego Autor: Katarzyna Piotrowicz Kraków,2015-06-11 Spis treści 1. Wstęp... 1 2. Implementacja... 2 3. Przykłady... 3 Porównanie wykrytych krawędzi

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Tworzenie szablonów użytkownika

Tworzenie szablonów użytkownika Poradnik Inżyniera Nr 40 Aktualizacja: 12/2018 Tworzenie szablonów użytkownika Program: Plik powiązany: Stratygrafia 3D - karty otworów Demo_manual_40.gsg Głównym celem niniejszego Przewodnika Inżyniera

Bardziej szczegółowo

Informacje i porady dotyczące pisania shaderów.

Informacje i porady dotyczące pisania shaderów. Informacje i porady dotyczące pisania shaderów. 1. Informacje ogólne Będziemy się zajmować shaderami w wersji 2.0, które są obsługiwane przez karty graficzne z procesorami ATI Radeon serii 9000 (premiera

Bardziej szczegółowo

System Obsługi Zleceń

System Obsługi Zleceń System Obsługi Zleceń Podręcznik Administratora Atinea Sp. z o.o., ul. Chmielna 5/7, 00-021 Warszawa NIP 521-35-01-160, REGON 141568323, KRS 0000315398 Kapitał zakładowy: 51.000,00zł www.atinea.pl wersja

Bardziej szczegółowo

GIMP. Ćwiczenie nr 6 efekty i filtry. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 18

GIMP. Ćwiczenie nr 6 efekty i filtry. Instrukcja. dla Gimnazjum 36 - Ryszard Rogacz Strona 18 Ćwiczenie nr 6 efekty i filtry Tak, jak każdy program graficzny GIMP posiada wbudowane narzędzia umożliwiające osiągnięcie różnego rodzaju efektów. Dostępne są one w menu edytowanego rysunku [filtry].

Bardziej szczegółowo

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie VI. Biblioteka OpenGL - teksturowanie

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie VI. Biblioteka OpenGL - teksturowanie Laboratorium Grafiki Komputerowej i Animacji Ćwiczenie VI Biblioteka OpenGL - teksturowanie Sławomir Samolej Rzeszów, 1999 1. Wstęp Podczas tworzenia skomplikowanych obiektów graficznych przydatnym mechanizmem

Bardziej szczegółowo

Za pomocą atrybutu ROWS moŝemy dokonać podziału ekranu w poziomie. Odpowiedni kod powinien wyglądać następująco:

Za pomocą atrybutu ROWS moŝemy dokonać podziału ekranu w poziomie. Odpowiedni kod powinien wyglądać następująco: 1 1. Ramki Najbardziej elastycznym sposobem budowania stron jest uŝycie ramek. Ułatwiają one nawigowanie w wielostronicowych dokumentach HTML, poprzez podział ekranu na kilka obszarów. KaŜdy z nich zawiera

Bardziej szczegółowo

Szablony funkcji i szablony klas

Szablony funkcji i szablony klas Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Pokaz slajdów na stronie internetowej

Pokaz slajdów na stronie internetowej Pokaz slajdów na stronie internetowej... 1 Podpisy pod zdjęciami... 3 Publikacja pokazu slajdów w Internecie... 4 Generator strony Uczelni... 4 Funkcje dla zaawansowanych użytkowników... 5 Zmiana kolorów

Bardziej szczegółowo

Ceneo. (Moduł Magento) v.1.5.0

Ceneo. (Moduł Magento) v.1.5.0 Ceneo (Moduł Magento) v.1.5.0 Strona 1 z 15 Spis treści Zgodny z Magento... 3 Instalacja... 3 Konfiguracja... 3 Konfiguracja Magento... 5 Punkty odbioru... 6 Dodawanie punktu... 6 Produkty CeneoLokalnie...

Bardziej szczegółowo

1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych

1 Wstęp teoretyczny. Temat: Manipulowanie przestrzenią. Grafika komputerowa 3D. Instrukcja laboratoryjna Układ współrzędnych Instrukcja laboratoryjna 9 Grafika komputerowa 3D Temat: Manipulowanie przestrzenią Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Układ

Bardziej szczegółowo

Grafika trójwymiarowa

Grafika trójwymiarowa Strona 1 Grafika 3D w systemie Android Wprowadzenie do OpenGL ES Podstawy rysowania Rzutowanie i kamera Klasa GLSurfaceView Algorytm rysowania Tekstury Strona 2 Grafika 3D w systemie Android W komputerach,

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

VetLINK moduł MAPA Instrukcja obsługi

VetLINK moduł MAPA Instrukcja obsługi VetLINK moduł MAPA Instrukcja obsługi Spis treści Wstęp...1 Przeglądanie i filtrowanie danych...3 Dodawanie nowych obiektów...3 Dodawanie miejsca...3 Dodawanie ogniska...3 Dodawanie obszaru...4 Wstęp Moduł

Bardziej szczegółowo

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1. Widżety KIWIPortal tworzenie umieszczanie na stronach internetowych opcje zaawansowane Autor: Damian Rebuś Data: 29.06.2015 Wersja: 1.3 Strona 1 z 17 1 SPIS TREŚCI 2 Metody osadzania widżetów... 3 2.1

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

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to

Bardziej szczegółowo

Podłączanie bibliotek Zapis danych do pliku graficznego Generowanie promienia pierwotnego Import sceny z pliku Algorytm ray tracingu

Podłączanie bibliotek Zapis danych do pliku graficznego Generowanie promienia pierwotnego Import sceny z pliku Algorytm ray tracingu Ray Tracer cz.1 Michał Chwesiuk Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Wydział Informatyki 4 Kwiecień 2017 Michał Chwesiuk Ray Tracer cz.1 4 Kwiecień 2017 1/21 Plan zajęć laboratoryjnych

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

Laboratorium 2. Część I. Perspektywa. Obsługa poleceń myszy. 2. W sekcji przeznaczonej na definicję zmiennych globalnych dodaj następujące definicje:

Laboratorium 2. Część I. Perspektywa. Obsługa poleceń myszy. 2. W sekcji przeznaczonej na definicję zmiennych globalnych dodaj następujące definicje: Laboratorium 2 Część I Perspektywa. Obsługa poleceń myszy 1. Skompiluj i uruchom załączony program (konieczne jest dodanie lglu32 do poleceń konsolidatora) - na podstawie poprzedniego programu oraz analizy

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

1. Pobieranie i instalacja FotoSendera

1. Pobieranie i instalacja FotoSendera Jak zamówić zdjęcia przez FotoSender? Spis treści: 1. Pobieranie i instalacja FotoSendera 2. Logowanie 3. Opis okna programu 4. Tworzenie i wysyłanie zlecenia Krok 1: Wybór zdjęć Krok 2: Podsumowanie zlecenia

Bardziej szczegółowo

Sieci komputerowe i bazy danych

Sieci komputerowe i bazy danych Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Sieci komputerowe i bazy danych Sprawozdanie 5 Badanie protokołów pocztowych Szymon Dziewic Inżynieria Mechatroniczna Rok: III Grupa: L1 Zajęcia

Bardziej szczegółowo

1. Prymitywy graficzne

1. Prymitywy graficzne 1. Prymitywy graficzne Prymitywy graficzne są elementarnymi obiektami jakie potrafi bezpośrednio rysować, określony system graficzny (DirectX, OpenGL itp.) są to: punkty, listy linii, serie linii, listy

Bardziej szczegółowo

ARCHICAD 21 podstawy wykorzystania standardu IFC

ARCHICAD 21 podstawy wykorzystania standardu IFC ARCHICAD 21 podstawy wykorzystania standardu IFC IFC (Industry Foundation Classes) to otwarty format wymiany danych. Powstał z myślą o ułatwieniu międzydyscyplinarnej współpracy z wykorzystaniem cyfrowych

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo