3 Przygotował: mgr inż. Maciej Lasota

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

Elementarne obiekty geometryczne, bufory. Dorota Smorawa

GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie

Janusz Ganczarski. OpenGL Pierwszy program

Temat: Transformacje 3D

6 Przygotował: mgr inż. Maciej Lasota

OpenGL - charakterystyka

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa

Studium podyplomowe. Programowanie w OpenGL. Michał Turek, AGH Kraków

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

2 Przygotował: mgr inż. Maciej Lasota

1. Prymitywy graficzne

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

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 6

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

Grafika 3D OpenGL część II

Materiały. Dorota Smorawa

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

8 Przygotował: mgr inż. Maciej Lasota

OpenGL Światło (cieniowanie)

OpenGL. Biblioteka procedur graficznych. GLU = OpenGL Utility Library. GLX = OpenGL Extension to the X Window System [tm]

Grafika trójwymiarowa

GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów

OpenGL Światło (cieniowanie)

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

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5

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

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

Temat: Wprowadzenie do OpenGL i GLUT

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

GRAFIKA KOMPUTEROWA 10: Antyaliasing

Mieszanie kolorów. Dorota Smorawa

OpenGL - maszyna stanu. Oprogramowanie i wykorzystanie stacji roboczych. Wykład 7. Grupy atrybutów. Zmienne stanu.

OpenGL Zaawansowana grafika komputerowa

OpenGL. Silicon Graphics (IRIS GL stacje graficzne)

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

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

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

Programowanie Procesorów Graficznych

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

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

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

Opis Edytora postaci Logomocji

Zegary. Zegary (timers) umożliwiają cykliczne w danych odstępach czasu wykonać określone operacje.

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

OpenGL i wprowadzenie do programowania gier

Wstęp Podstawy Pierwszy program Definiowanie sceny 3D Przekształcenia geometryczne... 47

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

Plan wykładu. Akcelerator 3D Potok graficzny

KGGiBM GRAFIKA INŻYNIERSKA Rok III, sem. VI, sem IV SN WILiŚ Rok akademicki 2011/2012

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

7. Dynamiczne generowanie grafiki

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

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

Simba 3D LOGO. Cele zajęć: - Poznanie zasad i sposobów tworzenia procedur z parametrami. - Poznanie zasad wywoływania procedur z parametrami.

Mobilne aplikacje multimedialne. OpenGL

Bartłomiej Filipek

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

WIZUALIZACJA INFORMACJI TEKSTOWEJ WSTĘP DO HTML 5 CANVAS

Bufor koloru cd. Czyszczenie bufora koloru glclearcolor( )

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie V. Biblioteka OpenGL - oświetlenie sceny

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

CorelDraw - Edytor grafiki wektorowej

OpenGL model oświetlenia

1 Wstęp teoretyczny. Temat: Obcinanie odcinków do prostokąta. Grafika komputerowa 2D. Instrukcja laboratoryjna Prostokąt obcinający

grafika 2D i animacja obsługa rotacji i elementy 3D-OpenGL w Androidzie

Tematy lekcji informatyki klasa 4a styczeń 2013

Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

Laboratorium Grafiki Komputerowej i Animacji. Ćwiczenie III. Biblioteka OpenGL - wprowadzenie, obiekty trójwymiarowe: punkty, linie, wielokąty

OpenGL przezroczystość

Kod źródłowy programu: program Grafika1; uses crt, graph; (1) var sterownik, tryb:smallint; (2)

Kolory elementów. Kolory elementów

4. Rysowanie krzywych

AUTOCAD teoria i zadania z podstaw rysowania Rysowanie linii, prostej, półprostej, punktu, trasy, polilinii. Zadania geodezyjne.

Grafika Komputerowa Materiały Laboratoryjne

Edytor tekstu MS Word 2010 PL. Edytor tekstu MS Word 2010 PL umożliwia wstawianie i formatowanie tabel.

Grafika komputerowa i wizualizacja

Rysowanie precyzyjne. Polecenie:

Bartosz Bazyluk Oświetlenie Zaawansowane techniki oświetlenia, c.d.

Wprowadzenie do klas w C++ oraz biblioteki opengl

PRZEWODNIK PO PRZEDMIOCIE

córka szamana trudny 160 min.

Laboratorium grafiki komputerowej i animacji. Ćwiczenie III - Biblioteka OpenGL - wprowadzenie, obiekty trójwymiarowe: punkty, linie, wielokąty

Implementacja filtru Canny ego

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

narzędzie Linia. 2. W polu koloru kliknij kolor, którego chcesz użyć. 3. Aby coś narysować, przeciągnij wskaźnikiem w obszarze rysowania.

b) Dorysuj na warstwie pierwszej (1) ramkę oraz tabelkę (bez wymiarów) na warstwie piątej (5) według podanego poniżej wzoru:

WIELOKĄTY FOREMNE I ICH PRZEKĄTNE

Wstawianie nowej strony

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

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

Grażyna Koba. Grafika komputerowa. materiały dodatkowe do podręcznika. Informatyka dla gimnazjum

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych

BeStCAD - Moduł STAL 1

PODSTAWY > Figury płaskie (1) KĄTY. Kąt składa się z ramion i wierzchołka. Jego wielkość jest mierzona w stopniach:

Materiały dla studentów pierwszego semestru studiów podyplomowych Grafika komputerowa i techniki multimedialne rok akademicki 2011/2012 semestr zimowy

Grafika Komputerowa Wykład 1. Wstęp do grafiki komputerowej Obraz rastrowy i wektorowy. mgr inż. Michał Chwesiuk 1/22

Pierwsze kroki w AutoCAD Rysunek 2D

Transkrypt:

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 w bibliotece OpenGL do rysowania różnego rodzaju prymitywów (punktów, odcinków, wielokątów) jest glvertex. Funkcje te służą do rysowania punktu. Istnieje wiele wersji glvertex, różniących się ilością oraz typem przyjmowanych parametrów wejściowych. Liczbę i typ parametrów jakie przyjmują funkcje określa ich nazwa. Najczęściej korzysta się z funkcji glvertex2f oraz glvertex3f. Biblioteka Rdzeń Liczba argumentów Typ argumentów W celu narysowani pojedynczego punktu za pomocą glvertex, należy umieścić ją wewnątrz bloku tworzonego przez parę funkcji glbegin oraz glend. Funkcja glbegin informuje bibliotekę OpenGL o rozpoczęciu rysowania grafiki. Przyjmuje ona jeden parametr będący typem rysowanego prymitywu. Typ ten określa się za pomocą parametru mode. void glbegin(glenum mode) glend. Każde wywołanie funkcji glbegin musi zostać zakończone bezparametrową funkcją void glend() UWAGA!!! Blok opisany za pomocą funkcji glbegin oraz glend nie może być zagnieżdżony w innym bloku.

Laboratorium nr 3 2/5 1.1) Rysowanie punktu Punkt jest najprostszym prymitywem graficznym. W celu narysowania punktu jako parametr wejściowy dla glbegin podajemy GL_POINTS. Parametr ten informuje bibliotekę OpenGL, aby narysowała punkt w trójwymiarowej przestrzeni kartezjańskiej. Przykład 1: glbegin(gl_points); glvertex3f(5.0f, 5.0f, 5.0f); Przykład 2: float pozycja[] = {5.0f, 5.0f, 5.0f}; glbegin(gl_points); glvertex3fv(pozycja); celu funkcja. Rysowanym punktom oczywiście można ustawić określony rozmiar. Służy do tego void glpointsize(glfloat rozmiar) Funkcja przyjmuje tylko jeden parametr, będący wielkością punktu. Podobnie jak większość funkcji OpenGL działa ona na bieżąco. Parametry przez nią ustawione będą oddziaływać na kolejne funkcje tak długo, aż nie wywołamy jej raz jeszcze z innym parametrem. 1.2) Rysowanie linii Rysowanie linii jest bardzo zbliżone do rysowania punktów. Zmienia się tylko stała przekazywana do funkcji glbegin. Stała którą przekazujemy, nazywa się GL_LINES. Jeśli chcemy narysować większą ilość linii, musimy wywołać po dwie funkcje glvertex3f dla każdego wierzchołka.

Laboratorium nr 3 3/5 Przykład 3: glbegin(gl_lines); glvertex3f(-5.0f, 0.0f, 3.0f); glvertex3f(5.0f, 3.0f, 0.0f); Podobnie jak w przypadku punktów możliwe jest ustawienie rozmiarów (szerokości) rysowanej linii za pomocą funkcji gllinewidth. Funkcja przyjmuje tylko jeden parametr, będący szerokości linii. void gllinewidth(glfloat rozmiar) 1.3) Rysowanie pozostałych prymitywów OpenGL. Tabela poniżej przedstawia pozostałe prymitywy graficzne dostępne w bibliotece Parametr GL_LINE_STRIP GL_LINE_LOOP GL_TRIANGLES GL_TRIANGLE_STRIP GL_TRIANGLE_FAN GL_QUADS GL_QUAD_STRIP GL_POLYGON Opis Odcinki połączone (łamana) Odcinki połączone (łamana zamknięta) Trójkąty Połączone trójkąty (pasek trójkątów) Połączone trójkąty (wachlarz) Czworokąty Połączone czworokąty Wielokąty o dowolnej liczbie wierzchołków 1.4) Kierunek rysowania C C B A A B W celu określenie kierunku rysowania (ściany przedniej i tylnej) wielokąta wykorzystujemy funkcję glfrontface.

Laboratorium nr 3 4/5 Funkcja ta przyjmuje jeden parametr określający kierunek rysowania, zgodny z ruchem wskazówek zegara GL_CW, lub kierunek przeciwny do ruchu wskazówek zegara GL_CCW. 2) Ustawianie kolorów Nadawaniem koloru w bibliotece OpenGL zajmuje się rodzina funkcji glcolor. Funkcje z rodziny glcolor mogą przyjmować trzy lub cztery parametr. void glcolor3f(glfloat R, GLfloat G, GLfloat B) void glcolor4f(glfloat R, GLfloat G, GLfloat B, GLfloat A) Kolor podaje się w postaci trzech składowych RGB w przypadku funkcji trójparametrowych, natomiast w postaci RGBA w przypadku funkcji czteroparametrowych ostatni parametr jest tzw. współczynnikiem alfa. 3) Czyszczenie bufora kolorów oraz głębi W OpenGL wyróżnimy cztery rodzaj buforów: bufor koloru, głębi, szablonu (wzorca) i akumulacyjny, Najczęściej stosowane są dwa pierwsze czyli bufor kolorów odpowiedzialny za prawidłowe wyświetlanie kolorów oraz bufor głębi odpowiedzialny za poprawne renderowanie obiektów w przestrzeni 3D. Za czyszczenie buforów odpowiedzialna jest funkcja. void glclear(glbitfield mask) Jako parametr przyjmuje ona stałe określającą rodzaj bufora (GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, GL_ACCUM_BUFFER_BIT, GL_STENCIL_BUFFER_BIT), który chcemy wyczyścić. Bufory można łączyć za pomocą operacji OR. Dodatkowo do czyszczenie bufora kolorów na wybrany kolor służy funkcja void glclearcolor(glfloat R, GLfloat G, GLfloat B, GLfloat A) Przyjmuje ona cztery parametry określające kolor w formacie RGBA na jaki ma zostać wyczyszczony bufor.

Laboratorium nr 3 5/5 3) Antialiasing Antialiasing umożliwia wygładzenie ostrych krawędzi punktów lub linii. W OpenGL włączenie antialiasingu polega na aktywowaniu opcji GL_POINT_SMOOTH dla punktów lub GL_LINE_SMOOTH dla linii. Aktywowane odpowiednich funkcji dokonywane jest za pomocą funkcji. void glenable(glenum mode) Wyłączenie opcji odbywa się przez wywołanie funkcji. void gldisable(glenum mode) 4) Cieniowanie W przypadku kolorowania wielokątów, kolory określane są dla wierzchołków, a nie dla wielokątów. O tym, czy wielokąt będzie posiadał jednolity kolor (kolor określony dla ostatniego wierzchołka), czy też kolor będzie się zmieniał płynnie od wierzchołka do wierzchołka, decyduje model cieniowania. Aby ustawić odpowiedni model cieniowania wykorzystywana jest funkcja. void glshademodel(glenum mode) Funkcja przyjmuje jeden z dwóch parametrów GL_FLAT określający model cieniowania jednolitego (płaskiego) oraz GL_SMOOTH model cieniowania płynnego przejścia. Cieniowanie jest bardzo ważnym elementem wizualizacji. Wykorzystywane jest m. in. przy obliczeniach związanych ze światłem.