Laboratorium 4 OpenGl (4) Oświetlenie sceny

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

Download "Laboratorium 4 OpenGl (4) Oświetlenie sceny"

Transkrypt

1 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 punktu leżącego na powierzchni obiektu 3-D dla dość ogólnego przypadku, zarówno w sensie oświetlenia, jak i charakterystyki powierzchni obiektu. Model pozwala na połączenie własności rozpraszania światła i odbicia kierunkowego oraz na intuicyjne powiązanie zależności otrzymywanego efektu oświetlenia z wartościami liczbowymi parametrów. Model Phonga zadany jest wzorami pozwalającymi na obliczenie trzech składowych (R, G, B) intensywności oświetlenia analizowanego punktu powierzchni obiektu. Wielkości oznaczone literami k, I, a, b, c i n występują w poniżej podanym kodzie, przy czym indeksy a, d, i s dotyczą odpowiednio światła otoczenia (ambient), światła rozproszonego (diffuse) i światła kierunkowego (specular). Symbole oznaczone dużymi literami N, L, R, i V są wektorami jednostkowymi, a ich mnożenie oznacza operację iloczynu skalarnego. Wektor N jest wektorem normalnym do powierzchni w analizowanym punkcie. Wektor L wyznacza kierunek padania światła na oświetlany punkt. Wektor R określa kierunek odbicia promienia dla idealnego zwierciadła a wektor V kierunek obserwacji punktu. Interpretację wymienionych wektorów pokazano na rysunku Jak można łatwo policzyć dla zdefiniowania materiału z jakiego wykonany jest obiekt i opisania jednego na razie źródła światła potrzeba aż 22 parametrów liczbowych i trzech wektorów (wektor R jest przekształconym wektorem L). Parametry liczbowe zostały bezpośrednio podane w przykładowym kodzie, natomiast informacja o wektorach zawarta jest w opisie sceny w sposób pośredni i odpowiednio interpretowana przez system generacji efektów oświetlenia. Wektor L wynika z położenia źródła światła i oświetlonego punktu powierzchni. Współrzędne położenia źródła światła zostały jawnie wpisane w kodzie. Wektor N, czyli wektor normalny do powierzchni w analizowanym punkcie na razie w kodzie nie występuje, a wektor opisujący kierunek obserwacji V wynika ze sposobu rzutowania, który zdefiniowano w funkcji RespaheWindow(). Znajomość modelu Phonga pozwala na w miarę proste i intuicyjne manipulowanie parametrami materiału i źródła światła. 1. Zmodyfikuj program z poprzedniego laboratorium zmieniając rysowanie dzbanka szkieletowego glutwireteapot() na wypełniony glutsolidteapot(). 2. W funkcji InitOpengl() dodaj: // współczynniki ka =[kar,kag,kab] dla światła otoczenia GLfloat mat_ambient[] = 1.0, 1.0, 1.0, 1.0}; // współczynniki kd =[kdr,kdg,kdb] światła rozproszonego GLfloat mat_diffuse[] = 1.0, 1.0, 1.0, 1.0};

2 // współczynniki ks =[ksr,ksg,ksb] dla światła odbitego GLfloat mat_specular[] = 1.0, 1.0, 1.0, 1.0}; // współczynnik n opisujący połysk powierzchni GLfloat mat_shininess = 20.0}; // Definicja źródła światła // położenie źródła GLfloat light_position[] = 0.0, 0.0, 10.0, 1.0}; // składowe intensywności świecenia źródła światła otoczenia // Ia = [Iar,Iag,Iab] GLfloat light_ambient[] = 0.1, 0.1, 0.1, 1.0}; // składowe intensywności świecenia źródła światła powodującego // odbicie dyfuzyjne Id = [Idr,Idg,Idb] GLfloat light_diffuse[] = 1.0, 1.0, 1.0, 1.0}; // składowe intensywności świecenia źródła światła powodującego // odbicie kierunkowe Is = [Isr,Isg,Isb] GLfloat light_specular[]= 1.0, 1.0, 1.0, 1.0}; // składowa stała ds dla modelu zmian oświetlenia w funkcji // odległości od źródła GLfloat att_constant = 1.0}; // składowa liniowa dl dla modelu zmian oświetlenia w funkcji // odległości od źródła GLfloat att_linear = 0.05}; // składowa kwadratowa dq dla modelu zmian oświetlenia w funkcji // odległości od źródła GLfloat att_quadratic = 0.001}; // Ustawienie parametrów materiału i źródła światła // Ustawienie patrametrów materiału glmaterialfv(gl_front, GL_SPECULAR, mat_specular); glmaterialfv(gl_front, GL_AMBIENT, mat_ambient); glmaterialfv(gl_front, GL_DIFFUSE, mat_diffuse); glmaterialf(gl_front, GL_SHININESS, mat_shininess); // Ustawienie parametrów źródła gllightfv(gl_light0, GL_AMBIENT, light_ambient); gllightfv(gl_light0, GL_DIFFUSE, light_diffuse); gllightfv(gl_light0, GL_SPECULAR, light_specular); gllightfv(gl_light0, GL_POSITION, light_position); gllightf(gl_light0, GL_CONSTANT_ATTENUATION, att_constant); gllightf(gl_light0, GL_LINEAR_ATTENUATION, att_linear); gllightf(gl_light0, GL_QUADRATIC_ATTENUATION, att_quadratic); // Ustawienie opcji systemu oświetlania sceny glshademodel(gl_smooth); // właczenie łagodnego cieniowania glenable(gl_lighting); // właczenie systemu oświetlenia sceny glenable(gl_light0); // włączenie źródła o numerze 0 glenable(gl_depth_test); // włączenie mechanizmu z-bufora 3. Skompiluj i uruchom program.

3 Nakładanie tekstury W realnym świecie powierzchnia obiektów ma fakturę. W OpenGL mechanizm pozwalający nadać obiektom fakturę nazywa się teksturowaniem. Tekstura jest plikiem graficznym, którego zawartość zostaje nałożona na powierzchnie obiektów występujących w scenie. Tekstura musi spełniać ważny i nietrudny do zrealizowania warunek - jej rozmiar w pikselach musi być potęgą dwójki. Oznacza to, że wysokość i szerokość pliku z teksturą może być jedną z następujących wartości: 2, 4, 8 i tak dalej, aż do Ograniczenie to zostało wprowadzone przez projektantów kart graficznych i w praktyce nie stanowi żadnego utrudnienia. Ogólnie proces teksturowania zawiera się w trzech krokach. Krok pierwszy polega na wczytaniu do pamięci obrazu tekstury zawartego w pliku. Krok drugi polega na definiowaniu struktury tekstury zawierającej sposób interpretacji danych pobranych z pliku. W kroku trzecim nakładamy teksturę na powierzchnie obiektu w scenie, inaczej dokonujemy jej mapowania. Korzystając z samego OpenGL a jesteśmy w stanie zrealizować dwa pierwsze kroki. Funkcje ładowania z pliku do pamięci tekstury pochodzą z innych bibliotek narzędziowych bądź można je samemu oprogramować znając strukturę danego formatu graficznego, na przykład formatu TGA (TarGA). 4. Zastąp rysowanie czajnika rysowaniem trójkąta (bez osi układu współrzędnych). 5. W razie potrzeby zmodyfikuj oświetlenie trójkąta. Najlepiej aby trójkąt i światło miały kolor biały. 6. Dodaj do programu kod funkcji realizujący wczytywanie obrazu graficznego zapisanego w formacie TGA w razie problemów ze stałymi konieczne może być ściągnięcie i zainkludowanie pliku glext.h. // Funkcja wczytuje dane obrazu zapisanego w formacie TGA w pliku o nazwie // FileName, alokuje pamięć i zwraca wskaźnik (pbits) do bufora w którym // umieszczone są dane. // Ponadto udostępnia szerokość (ImWidth), wysokość (ImHeight) obrazu // tekstury oraz dane opisujące format obrazu według specyfikacji OpenGL // (ImComponents) i (ImFormat). // Jest to bardzo uproszczona wersja funkcji wczytującej dane z pliku TGA. // Działa tylko dla obrazów wykorzystujących 8, 24, or 32 bitowy kolor. // Nie obsługuje plików w formacie TGA kodowanych z kompresją RLE. GLbyte *LoadTGAImage(const char *FileName, GLint *ImWidth, GLint *ImHeight, GLint *ImComponents, GLenum *ImFormat) // Struktura dla nagłówka pliku TGA #pragma pack(1) typedef struct GLbyte idlength; GLbyte colormaptype; GLbyte datatypecode; unsigned short colormapstart; unsigned short colormaplength; unsigned char colormapdepth; unsigned short x_orgin; unsigned short y_orgin; unsigned short width; unsigned short height; GLbyte bitsperpixel; GLbyte descriptor; }TGAHEADER; #pragma pack(8) FILE *pfile; TGAHEADER tgaheader; unsigned long limagesize; short sdepth; GLbyte *pbitsperpixel = NULL; // Wartości domyślne zwracane w przypadku błędu *ImWidth = 0; *ImHeight = 0; *ImFormat = GL_BGR_EXT; *ImComponents = GL_RGB8; pfile = fopen(filename, "rb"); if(pfile == NULL) // Przeczytanie nagłówka pliku

4 fread(&tgaheader, sizeof(tgaheader), 1, pfile); // Odczytanie szerokości, wysokości i głębi obrazu *ImWidth = tgaheader.width; *ImHeight = tgaheader.height; sdepth = tgaheader.bitsperpixel / 8; // Sprawdzenie, czy głębia spełnia założone warunki (8, 24, lub 32 bity) if(tgaheader.bitsperpixel!= 8 && tgaheader.bitsperpixel!= 24 && tgaheader.bitsperpixel!= 32) // Obliczenie rozmiaru bufora w pamięci limagesize = tgaheader.width * tgaheader.height * sdepth; // Alokacja pamięci dla danych obrazu pbitsperpixel = (GLbyte*)malloc(lImageSize * sizeof(glbyte)); if(pbitsperpixel == NULL) if(fread(pbitsperpixel, limagesize, 1, pfile)!= 1) free(pbitsperpixel); } // Ustawienie formatu OpenGL switch(sdepth) case 3: }; case 4: case 1: break; *ImFormat = GL_BGR_EXT; *ImComponents = GL_RGB8; break; *ImFormat = GL_BGRA_EXT; *ImComponents = GL_RGBA8; break; *ImFormat = GL_LUMINANCE; *ImComponents = GL_LUMINANCE8; fclose(pfile); } return pbitsperpixel; 7. W funkcji InitOpengl() dopisz kilka linii kodu zawierającego podstawowe funkcje definiujące właściwości procesu teksturowania. Najważniejsze z tych funkcji to: glteximage2d() służąca do definiowania tekstury dwuwymiarowej, gltexenvi() określająca tak zwany tryb teksturowania i gltexparameteri() opisująca sposób nakładania tekstury na powierzchnie modeli obiektów. Wybierz teksturę z załączonego zbioru. void InitOpengl() // Zmienne dla obrazu tekstury GLbyte *pbytes; GLint ImWidth, ImHeight, ImComponents; GLenum ImFormat; // Pozostała część funkcji deklaracji // Teksturowanie będzie prowadzone tyko po jednej stronie ściany

5 glenable(gl_cull_face); // Przeczytanie obrazu tekstury z pliku o nazwie tekstura.tga pbytes = LoadTGAImage("tekstura.tga", &ImWidth, &ImHeight, &ImComponents, &ImFormat); // Zdefiniowanie tekstury 2-D glteximage2d(gl_texture_2d, 0, ImComponents, ImWidth, ImHeight, 0, ImFormat, GL_UNSIGNED_BYTE, pbytes); // Zwolnienie pamięci free(pbytes); // Włączenie mechanizmu teksturowania glenable(gl_texture_2d); // Ustalenie trybu teksturowania gltexenvi(gl_texture_env, GL_TEXTURE_ENV_MODE, GL_MODULATE); // Określenie sposobu nakładania tekstur gltexparameteri(gl_texture_2d, GL_TEXTURE_MIN_FILTER, GL_LINEAR); gltexparameteri(gl_texture_2d, GL_TEXTURE_MAG_FILTER, GL_LINEAR); // Pozostała część funkcji } 8. Na zakończenie w funkcji definiującej obiekt (trójkąt) należy wprowadzić współrzędne wzorca tekstury definiujące fragment obrazu, jaki ma być naniesiony na powierzchnię trójkąta. Sposób interpretowania współrzędnych texeli pokazuje rysunek poniżej. Za pomocą funkcji gltexcoord2f () możemy określić przyporządkowanie wybranych punktów (texeli) tekstury punktom (wierzchołkom) na powierzchni danego obiektu. Poniżej przedstawiony jest sposób użycia tej funkcji. glbegin(gl_triangles); gltexcoord2f(0.0f, 0.0f); glvertex3f(...); gltexcoord2f(1.0f, 0.0f); glvertex3f(...); gltexcoord2f(0.5f, 1.0f); glvertex3f(...);

6 glend(); UWAGA! W przypadku gdyby tekstura nakładała się nie na tej stronie co trzeba proszę spróbować odwrócić orientacje poligonów dodając glcullface(gl_front); po linijce włączającej GL_CULL_FACE. W jak było wcześniej wspomniane za przebieg procesu teksturowania odpowiedzialne są głównie trzy funkcje umieszczone w funkcji InitOpengl(). Są to funkcje: glteximage2d(), gltexenvi() i gltexparameteri(). Omówiona zostanie teraz kolejno ich rola. Funkcja glteximage2d() definiuje teksturę dwuwymiarową i określona jest jako: void glteximage2d(glenum target, GLint level, GLint components, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) Argumenty mają następujące znaczenie: Argument target level Opis Rodzaj definiowanej tekstury, zawsze powinno być GL_TEXTURE_2D Poziom szczegółowości. Jest ustawiany na 0 gdy mipmapy nie są stosowane, gdy mipmapy są używane level jest liczbą określająca poziom redukcji obrazu tekstury. components Ilość używanych składowych koloru, liczba od 1 do 4. width heigth Szerokość obrazu tekstury, zawsze jest potęgą liczby 2, może być powiększona o szerokość tak zwanej ramki tekstury Wysokość obrazu tekstury, zawsze jest potęgą liczby 2, może być powiększona o szerokość ramki tekstury. border Szerokość ramki tekstury, może wynosić 0, 1 lub 2 format type Format danych obrazu tekstury, określa co opisują dane, czy są indeksami kolorów czy ich składowymi (np. R, G, B) i w jakiej są podane kolejności. Typ danych dla punktów obrazu tekstury, określa jak kodowane są dane, istnieje możliwość używania różnych formatów liczb, od 8 bitowych liczb stałoprzecinkowych, do 32 bitowych liczb zmiennoprzecinkowych. piksels Tablica o rozmiarze width x height x components, w której znajdują się dane z obrazem tekstury. Szczegółowe informacje o możliwych ustawieniach poszczególnych argumentów (dotyczy to w szczególności argumentów format i type) można znaleźć w dokumentacji OpenGL. Funkcja gltexenvi() służy do ustalenia tak zwanego trybu teksturowania, czyli sposobu łączenia koloru piksela obrazu tekstury z kolorem piksela ekranu. Prototyp funkcji ma postać: void gltexenvi( GLenum target, GLenum pname, GLint param ) Argument target należy ustawić na GL_TEXTURE_ENV, a pname na GL_TEXTURE_ENV_MODE. Sposób łączenia pikseli tekstury i ekranu określa trzeci z argumentów param, który może przyjmować cztery wartości: GL_MODULATE - kolor piksela ekranu jest mnożony przez kolor piksela tekstury, następuje w ten sposób mieszanie barw tekstury i tego co jest teksturowane, GL_DECAL - piksele tekstury zastępują piksele na ekranie, GL_BLEND - kolor piksela ekranu jest mnożony przez kolor piksela tekstury i łączony ze stałym kolorem, GL_REPLACE - działa podobnie jak GL_DECAL różnica występuje wtedy, gdy wprowadzona zostaje przezroczystość. Funkcja gltexparameteri() pozwala między innymi na określenie algorytmów dodawania nowych piksel w przypadku, gdy w obrazie tekstury jest za mało punktów aby wypełnić obraz teksturowanego elementu oraz usuwania pikseli, gdy w obrazie tekstury jest ich za dużo. Umożliwia także określenie sposobu postępowania w przypadku, gdy zadane w programie współrzędne tekstury wykraczają poza zakres [0, 1]. Definicja funkcji wygląda następująco:

7 void gltexparameteri(glenum target, GLenum pname, GLint param) Argument target w przypadku tekstur dwuwymiarowych (tylko takich dotyczy niniejsze ćwiczenie) należy ustawić na GL_TEXTURE_2D. Pozostałe dwa argumenty pname i param dotyczą szczegółów działania algorytmów teksturowania. Zestawienie wartości tych parametrów zawiera poniższa tabela. pname param GL_TEXTURE_MIN_FILTER Opisuje w jaki sposób następuje pominiejszanie tekstury (usuwanie pikseli) GL_NEAREST - usuwa się najbliższy (w sensie metryki Manhattan) punkt sąsiedni GL_LINEAR - filtracja liniowa z odpowiednimi wagami GL_TEXTURE_MAG_FILTER Opisuje w jaki sposób następuje powiększanie tekstury (dodawanie pikseli) GL_NEAREST - dodaje się najbliższy (w sensie metryki Manhattan) punkt sąsiedni GL_LINEAR - interpolacja liniowa wykorzystująca wartości sąsiednich pikseli GL_TEXTURE_WRAP_S GL_TEXTURE_WRAP_T Opisuje sposób traktowania współrzędnej s tekstury, gdy wykracza ona poza zakres [0, 1] GL_CLAMP - poza zakresem stosowany jest kolor ramki tekstury lub stały kolor GL_REPEAT - tekstura jest powtarzana na całej powierzchni wielokąta Opisuje sposób traktowania współrzędnej t tekstury, gdy wykracza ona poza zakres [0, 1] GL_CLAMP - poza zakresem stosowany jest kolor ramki tekstury lub stały kolor GL_REPEAT - tekstura jest powtarzana na całej powierzchni wielokąta Szczegółowe informacje o funkcjonowaniu algorytmów wybieranych przy pomocy argumentów pname i param można znaleźć w dokumentacji OpenGL. 9. Napisz program rysujący obraz piramidy, czyli ostrosłupa o podstawie kwadratu. Poszczególne ściany ostrosłupa maja być teksturowane tylko z jednej, widocznej strony. Przy pisaniu programu należy kontrolować prawidłowość rysowania kolejnych ścian aż do zamknięcia ostrosłupa. Aby można było sprawdzić prawidłowość rysowania obrazów ścian bryły, należy wprowadzić sterowanie widocznością poszczególnych ścian przy pomocy klawiszy, na przykład od 1 do 5.

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

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

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

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

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

Oświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone.

Oświetlenie w OpenGL. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 8. Światło otaczajace. Światło rozproszone. Oświetlenie w OpenGL Oprogramowanie i wykorzystanie stacji roboczych Wykład 8 Dr inż. Tomasz Olas olas@icis.pcz.pl W OpenGL źródło światła w scenie składa się z trzech składowych oświetlenia: otoczenia,

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

Ś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

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

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

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

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania.

Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Oświetlenie. Modelowanie oświetlenia sceny 3D. Algorytmy cieniowania. Chcąc osiągnąć realizm renderowanego obrazu, należy rozwiązać problem świetlenia. Barwy, faktury i inne właściwości przedmiotów postrzegamy

Bardziej szczegółowo

Laboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny

Laboratorium grafiki komputerowej i animacji. Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny Laboratorium grafiki komputerowej i animacji Ćwiczenie V - Biblioteka OpenGL - oświetlenie sceny Przygotowanie do ćwiczenia: 1. Zapoznać się ze zdefiniowanymi w OpenGL modelami światła i właściwości materiałów.

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

OpenGL model oświetlenia

OpenGL model oświetlenia Składowe światła OpenGL Światło otaczające (ambient) OpenGL model oświetlenia Nie pochodzi z żadnego określonego kierunku. Powoduje równomierne oświetlenie obiektów na wszystkich powierzchniach i wszystkich

Bardziej szczegółowo

Animowana grafika 3D. Opracowanie: J. Kęsik.

Animowana grafika 3D. Opracowanie: J. Kęsik. Animowana grafika 3D Opracowanie: J. Kęsik kesik@cs.pollub.pl Powierzchnia obiektu 3D jest renderowana jako czarna jeżeli nie jest oświetlana żadnym światłem (wyjątkiem są obiekty samoświecące) Oświetlenie

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

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

OpenGL - tekstury Mapowanie tekstur

OpenGL - tekstury Mapowanie tekstur 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

Bardziej szczegółowo

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38

Grafika Komputerowa Wykład 5. Potok Renderowania Oświetlenie. mgr inż. Michał Chwesiuk 1/38 Wykład 5 Potok Renderowania Oświetlenie mgr inż. 1/38 Podejście śledzenia promieni (ang. ray tracing) stosuje się w grafice realistycznej. Śledzone są promienie przechodzące przez piksele obrazu wynikowego

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

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

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

Temat: Transformacje 3D

Temat: Transformacje 3D Instrukcja laboratoryjna 11 Grafika komputerowa 3D Temat: Transformacje 3D Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny Bardzo często programując

Bardziej szczegółowo

GRK 4. dr Wojciech Palubicki

GRK 4. dr Wojciech Palubicki GRK 4 dr Wojciech Palubicki Uproszczony Potok Graficzny (Rendering) Model Matrix View Matrix Projection Matrix Viewport Transform Object Space World Space View Space Clip Space Screen Space Projection

Bardziej szczegółowo

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do

0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do 0. OpenGL ma układ współrzędnych taki, że oś y jest skierowana (względem monitora) a) w dół b) w górę c) w lewo d) w prawo e) w kierunku do obserwatora f) w kierunku od obserwatora 1. Obrót dookoła osi

Bardziej szczegółowo

Oświetlenie obiektów 3D

Oświetlenie obiektów 3D Synteza i obróbka obrazu Oświetlenie obiektów 3D Opracowanie: dr inż. Grzegorz Szwoch Politechnika Gdańska Katedra Systemów Multimedialnych Rasteryzacja Spłaszczony po rzutowaniu obraz siatek wielokątowych

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

Gry komputerowe, Informatyka N1, III Rok

Gry komputerowe, Informatyka N1, III Rok Oświetlenie Potok renderowania. Techniki oświetlenia i cieniowania. http://bazyluk.net/dydaktyka Gry komputerowe, Informatyka N1, III Rok POTOK RENDEROWANIA W grafice realistycznej stosuje się zwykle podejścia

Bardziej szczegółowo

Bartosz Bazyluk POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. Grafika Komputerowa, Informatyka, I Rok

Bartosz Bazyluk POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego.   Grafika Komputerowa, Informatyka, I Rok POTOK RENDEROWANIA Etapy renderowania w grafice czasu rzeczywistego. http://bazyluk.net/zpsb Grafika Komputerowa, Informatyka, I Rok POTOK RENDEROWANIA W grafice realistycznej stosuje się zwykle podejścia

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

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Model oświetlenia. Radosław Mantiuk. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Model oświetlenia Radosław Mantiuk Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Obliczenie koloru powierzchni (ang. Lighting) Światło biegnie od źródła światła, odbija

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

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

Laboratorium 1. Część I. Podstawy biblioteki graficznej OpenGL.

Laboratorium 1. Część I. Podstawy biblioteki graficznej OpenGL. Laboratorium 1 Część I Podstawy biblioteki graficznej OpenGL. I. Konfiguracja środowiska 1. Ściągamy bibliotekę freeglut i rozpakujemy do głównego folderu dysku systemowego np. C:\freeglut 2. Uruchamiamy

Bardziej szczegółowo

OPEN_GL LABORATORIUM 6. tekst na podstawie: Edwarda Angela oraz Łukasza Grabca

OPEN_GL LABORATORIUM 6. tekst na podstawie: Edwarda Angela oraz Łukasza Grabca OPEN_GL LABORATORIUM 6 tekst na podstawie: Edwarda Angela oraz Łukasza Grabca Łyk teorii Owietlenie w znaczcy sposób wpływa na realizm naszej sceny. Stopie odbicia wiatła od obiektu, zaley od materiału,

Bardziej szczegółowo

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane

Bardziej szczegółowo

Lab 9 Podstawy Programowania

Lab 9 Podstawy Programowania Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany

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

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

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

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

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

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

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

Julia 4D - raytracing

Julia 4D - raytracing i przykładowa implementacja w asemblerze Politechnika Śląska Instytut Informatyki 27 sierpnia 2009 A teraz... 1 Fraktale Julia Przykłady Wstęp teoretyczny Rendering za pomocą śledzenia promieni 2 Implementacja

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

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

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

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

Zatem standardowe rysowanie prymitywów wygląda następująco:

Zatem standardowe rysowanie prymitywów wygląda następująco: Instrukcja laboratoryjna 10 Grafika komputerowa 3D Temat: Prymitywy Przygotował: dr inż. Grzegorz Łukawski, mgr inż. Maciej Lasota, mgr inż. Tomasz Michno 1 Wstęp teoretyczny Prymitywy proste figury geometryczne,

Bardziej szczegółowo

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL

Zadania domowe. Ćwiczenie 2. Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL Zadania domowe Ćwiczenie 2 Rysowanie obiektów 2-D przy pomocy tworów pierwotnych biblioteki graficznej OpenGL Zadanie 2.1 Fraktal plazmowy (Plasma fractal) Kwadrat należy pokryć prostokątną siatką 2 n

Bardziej szczegółowo

Pliki. Informacje ogólne. Obsługa plików w języku C

Pliki. Informacje ogólne. Obsługa plików w języku C Pliki Informacje ogólne Plik jest pewnym zbiorem danych, zapisanym w systemie plików na nośniku danych (np. dysku twardym, pendrive, płycie DVD itp.). Może posiadać określone atrybuty, a odwołanie do niego

Bardziej szczegółowo

Zaprojektować i zaimplementować algorytm realizujący następujące zadanie.

Zaprojektować i zaimplementować algorytm realizujący następujące zadanie. Lista 1 Utworzenie tablicy jest równoznaczne z alokacją pamięci na elementy tablicy (utworzeniem dynamicznej tablicy). W zadaniach należy pamiętać o zwolnieniu zasobów przydzielonych na stercie. Zabronione

Bardziej szczegółowo

Grafika 3D OpenGL część II

Grafika 3D OpenGL część II #include #include #include float kat=0.0f; void renderujscene(void) { glclearcolor(1.0f,1.0f,1.0f,1.0f); glclear(gl_color_buffer_bit); glpushmatrix(); glrotatef(kat,0,0,1);

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

Grafika komputerowa Tekstury

Grafika komputerowa Tekstury . Tekstury Tekstury są dwuwymiarowymi obrazkami nakładanymi na obiekty lub ich części, w celu poprawienia realizmu rysowanych brył oraz dodatkowego określenia cech ich powierzchni np. przez nałożenie obrazka

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

OpenGL. Silicon Graphics (IRIS GL stacje graficzne)

OpenGL. Silicon Graphics (IRIS GL stacje graficzne) OpenGL. Silicon Graphics (IRIS GL stacje graficzne) Biblioteka -przestrzeń 3D -rzutowanie -prymitywy graficzne -operacje na barwach HISTORIA 1992 - powstaje wersja 1.0 specyfikacji OpenGL przenośnej między

Bardziej szczegółowo

glwindowpos2d void DrawString (GLint x, GLint y, char *string) { glwindowpos2i (x,y); int len = strlen (string); for (int i = 0; i < len; i++)

glwindowpos2d void DrawString (GLint x, GLint y, char *string) { glwindowpos2i (x,y); int len = strlen (string); for (int i = 0; i < len; i++) Wizualizacja 3D glwindowpos2d Funkcja wprowadzona w wersji 1.4 biblioteki OpenGL Funkcja pozwala na ustawienie rastra względem okna, a nie względem macierzy modelu Stosowana podczas pisania tekstów, np.:

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

// 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

System graficzny. Potok graficzny 3D. Scena 3D Zbiór trójwymiarowych danych wejściowych wykorzystywanych do wygenerowania obrazu wyjściowego 2D.

System graficzny. Potok graficzny 3D. Scena 3D Zbiór trójwymiarowych danych wejściowych wykorzystywanych do wygenerowania obrazu wyjściowego 2D. System graficzny scena 3D algorytm graficzny obraz 2D Potok graficzny 3D Radosław Mantiuk Dane wejściowe Algorytm tworzący obraz wyjściowy na podstawie sceny 3D Dane wyjściowe Wydział Informatyki Zachodniopomorski

Bardziej szczegółowo

Formaty plików graficznych - wprowadzenie

Formaty plików graficznych - wprowadzenie Formaty plików graficznych - wprowadzenie Obraz graficzny jest dwuwymiarową tablicą pikseli, zwana czasem rastrem. Kolor piksela może być reprezentowany w następujący sposób: Dla obrazów monochromatycznych

Bardziej szczegółowo

GRAFIKA CZASU RZECZYWISTEGO Interakcja, ruch kamery, oświetlenie.

GRAFIKA CZASU RZECZYWISTEGO Interakcja, ruch kamery, oświetlenie. Bartosz Bazyluk GRAFIKA CZASU RZECZYWISTEGO Interakcja, ruch kamery, oświetlenie. Grafika komputerowa i wizualizacja, Bioinformatyka S1, II Rok Kamera w OpenGL Aby opisać jednoznacznie położenie kamery,

Bardziej szczegółowo

OpenGL przezroczystość

OpenGL przezroczystość OpenGL przezroczystość W standardzie OpenGL efekty przezroczystości uzyskuje się poprzez zezwolenie na łączenie kolorów: Kolor piksela tworzy się na podstawie kolorów obiektu przesłanianego i przesłaniającego

Bardziej szczegółowo

Transformacje. dr Radosław Matusik. radmat

Transformacje. dr Radosław Matusik.   radmat www.math.uni.lodz.pl/ radmat Cel wykładu Celem wykładu jest prezentacja m.in. przestrzeni modelu, świata, kamery oraz projekcji, a także omówienie sposobów oświetlania i cieniowania obiektów. Pierwsze

Bardziej szczegółowo

GRAKO: ŚWIATŁO I CIENIE. Modele barw. Trochę fizyki percepcji światła. OŚWIETLENIE: elementy istotne w projektowaniu

GRAKO: ŚWIATŁO I CIENIE. Modele barw. Trochę fizyki percepcji światła. OŚWIETLENIE: elementy istotne w projektowaniu GRAKO: ŚWIATŁO I CIENIE Metody oświetlania Metody cieniowania Przykłady OŚWIETLENIE: elementy istotne w projektowaniu Rozumienie fizyki światła w realnym świecie Rozumienie procesu percepcji światła Opracowanie

Bardziej szczegółowo

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady Pętle i tablice. Spotkanie 3 Dr inż. Dariusz JĘDRZEJCZYK Pętle: for, while, do while Tablice Przykłady 11/26/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Pętla w największym uproszczeniu służy

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

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

Autodesk 3D Studio MAX Teksturowanie modeli 3D

Autodesk 3D Studio MAX Teksturowanie modeli 3D Autodesk 3D Studio MAX Teksturowanie modeli 3D dr inż. Andrzej Czajkowski Instyt Sterowania i Systemów Informatycznych Wydział Informatyki, Elektrotechniki i Automatyki 25 kwietnia 2017 1 / 20 Plan Wykładu

Bardziej szczegółowo

Grafika komputerowa. Dla DSI II

Grafika komputerowa. Dla DSI II Grafika komputerowa Dla DSI II Rodzaje grafiki Tradycyjny podział grafiki oznacza wyróżnienie jej dwóch rodzajów: grafiki rastrowej oraz wektorowej. Różnica pomiędzy nimi polega na innej interpretacji

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

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

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

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

Wymagania z matematyki na poszczególne stopnie szkolne w klasie trzeciej gimnazjum

Wymagania z matematyki na poszczególne stopnie szkolne w klasie trzeciej gimnazjum Wymagania z matematyki na poszczególne stopnie szkolne w klasie trzeciej gimnazjum I LICZBY I WYRAŻENIA ALGEBRAICZNE podawanie przykładów liczb naturalnych, całkowitych, wymiernych i niewymiernych; porównywanie

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

OpenGL Zaawansowana grafika komputerowa

OpenGL Zaawansowana grafika komputerowa p. 1/63 OpenGL Zaawansowana grafika komputerowa p. 2/63 Czym jest OpenGL OpenGL można zdefiniować jako "programowy interfejs sprzętu graficznego". Jest to biblioteka przeznaczona do tworzenia trójwymiarowej

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

Grafika rastrowa (bitmapa)-

Grafika rastrowa (bitmapa)- Grafika komputerowa Grafika rastrowa Grafika rastrowa (bitmapa)- sposób zapisu obrazów w postaci prostokątnej tablicy wartości, opisujących kolory poszczególnych punktów obrazu (prostokątów składowych).

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

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

Struktury. Przykład W8_1

Struktury. Przykład W8_1 Struktury Struktury pozwalają na grupowanie zmiennych różnych typów pod wspólną nazwą. To istotnie ułatwia organizacje danych, które okazują się w jednym miejscu kodu programu. To jest bardzo ważne dla

Bardziej szczegółowo

54. Układy współrzędnych

54. Układy współrzędnych 54 54. Układy współrzędnych Współrzędne punktów i dostępne układy współrzędnych na płaszczyźnie (2D) omówiono w rozdziale 8. Współrzędne 2D. W tym rozdziale podane zostaną informacje dodatkowe konieczne

Bardziej szczegółowo

Programowanie strukturalne i obiektowe. Funkcje

Programowanie strukturalne i obiektowe. Funkcje Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy

Bardziej szczegółowo

Efekt lustra 3D w OpenGL z wykorzystaniem bufora szablonowego (stencil buffer)

Efekt lustra 3D w OpenGL z wykorzystaniem bufora szablonowego (stencil buffer) Efekt lustra 3D w OpenGL z wykorzystaniem bufora szablonowego (stencil buffer) Autor: Radosław Płoszajczak Spis treści I. Wstęp...2 II. Metoda rysująca przeźroczystą szybę...2 III. Bufor szablonowy (stencil

Bardziej szczegółowo

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for. Zadania do wykonania Rozwiązując poniższe zadania użyj pętlę for. 1. apisz program, który przesuwa w prawo o dwie pozycje zawartość tablicy 10-cio elementowej liczb całkowitych tzn. element t[i] dla i=2,..,9

Bardziej szczegółowo

Logo Komeniusz. Gimnazjum w Tęgoborzy. Mgr Zofia Czech

Logo Komeniusz. Gimnazjum w Tęgoborzy. Mgr Zofia Czech Logo Komeniusz Gimnazjum w Tęgoborzy Mgr Zofia Czech to język strukturalny, umożliwiający dzielenie algorytmu na wyraźnie wyodrębnione problemy, których rozwiązanie opisuje się za pomocą procedur (tzn.

Bardziej szczegółowo

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19. Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach.

Języki i paradygmaty programowania 1 studia stacjonarne 2018/19. Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach. Języki i paradygmaty programowania 1 studia stacjonarne 2018/19 Lab 9. Tablice liczbowe cd,. Operacje na tablicach o dwóch indeksach. 1. Dynamiczna alokacja pamięci dla tablic wielowymiarowych - Przykładowa

Bardziej szczegółowo

Pasek menu. Ustawienia drukowania

Pasek menu. Ustawienia drukowania Polecenie Ustawienia drukowania... z menu Plik pozwala określić urządzenie drukujące poprzez jego wybór z pola kombi. Urządzenie można skonfigurować poprzez przycisk właściwości. Otwiera się wówczas okno

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

Jak dodać własny szablon ramki w programie dibudka i dilustro

Jak dodać własny szablon ramki w programie dibudka i dilustro Aby dodać własną ramkę otwórz moduł administracyjny dibudkaadmin.exe, wejdź do zakładki Ramki, tła, id i następnie Edycja. 1. Kliknij przycisk Dodaj ramkę 2. Określ wymiary nowej ramki Jeżeli dodajesz

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne Grafika komputerowa Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności December 12, 2016 1 Wprowadzenie 2 Optyka 3 Geometria 4 Grafika rastrowa i wektorowa 5 Kompresja danych Wprowadzenie

Bardziej szczegółowo

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. 1. Podstawy matematyki 1.1. Geometria analityczna W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. Skalarem w fizyce nazywamy

Bardziej szczegółowo

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki > C++ dynamiczna alokacja/rezerwacja/przydział pamięci Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1429536600 > Dzisiejsze zajęcia sponsorują słówka: new oraz delete

Bardziej szczegółowo

Laboratorium nr 5: Mnożenie wektorów i macierzy

Laboratorium nr 5: Mnożenie wektorów i macierzy Laboratorium nr 5: Mnożenie wektorów i macierzy 1 Cel ćwiczenia Wykształcenie umiejętności definiowania przeciążeń operatorów indeksujących i funkcyjnych. Utrwalenie umiejętności definiowania przeciążeń

Bardziej szczegółowo

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami 1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.

Bardziej szczegółowo