GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie

Podobne dokumenty
GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów

3 Przygotował: mgr inż. Maciej Lasota

GRAFIKA KOMPUTEROWA 10: Antyaliasing

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

Janusz Ganczarski. OpenGL Pierwszy program

6 Przygotował: mgr inż. Maciej Lasota

Elementarne obiekty geometryczne, bufory. Dorota Smorawa

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa

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

Materiały. Dorota Smorawa

OpenGL Światło (cieniowanie)

Bufor koloru cd. Czyszczenie bufora koloru glclearcolor( )

OpenGL Światło (cieniowanie)

Plan wykładu. Akcelerator 3D Potok graficzny

Temat: Transformacje 3D

1. Prymitywy graficzne

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

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

2 Przygotował: mgr inż. Maciej Lasota

Mieszanie kolorów. Dorota Smorawa

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

Grafika komputerowa. Dla DSI II

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

INFORMATYKA WSTĘP DO GRAFIKI RASTROWEJ

8 Przygotował: mgr inż. Maciej Lasota

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

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

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

OpenGL teksturowanie

Wykład A1. AutoCAD Dr inż. Jarosław Bydłosz

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5

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

1.2 Logo Sonel podstawowe załoŝenia

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

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

Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D

Technologie Informacyjne

Przetwarzanie obrazów

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

Laboratorium grafiki i multimediów

Wykład A1. AutoCAD. Jarosław Bydłosz Katedra Geomatyki

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

Podstawy grafiki komputerowej

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

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

GRK 4. dr Wojciech Palubicki

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

GRAFIKA. Rodzaje grafiki i odpowiadające im edytory

Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE

Symulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007

DesignCAD 3D Max 24.0 PL

1. Założenia i cele przedmiotu: 2. Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi:

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

Tekst na mapach. Teksty na mapie. Ustawienia mapy. W tej instrukcji zostanie opisany sposób w jaki można na mapach wyświetlać teksty

Elementy okna MatLab-a

Kurs grafiki komputerowej Lekcja 2. Barwa i kolor

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

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

Grafika Komputerowa Wybrane definicje. Katedra Informatyki i Metod Komputerowych Uniwersytet Pedagogiczny im. KEN w Krakowie apw@up.krakow.

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

Szybkie tworzenie grafiki w GcIde

ANALIZA I INDEKSOWANIE MULTIMEDIÓW (AIM)

GRAFIKA RASTROWA GRAFIKA RASTROWA

Rozszerzenia i specyfikacja przyjmowanych przez nas plików.

Dane obrazowe. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

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

PRZEWODNIK PO PRZEDMIOCIE

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

Fotografia cyfrowa obsługa programu GIMP. Cz. 18. Tworzenie ramki do zdjęcia. materiały dla osób prowadzących zajęcia komputerowe w bibliotekach

Tematy lekcji informatyki klasa 4a grudzień 2011

PRZEWODNIK PO PRZEDMIOCIE

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

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

Specyfikacja OpenGL Podstawy programowania grafiki komputerowej*

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

Karty graficzne możemy podzielić na:

Transformacje. dr Radosław Matusik. radmat

Photoshop Podstawy obsługi

OpenGL model oświetlenia

Jak wybrać akcelerator 3D dedykowany aplikacjom typu MCAD?

Kolory elementów. Kolory elementów

Grafika i komunikacja człowiek komputer Laboratorium. Część 3: Tekst, czcionki, kolory

TEMAT :Animacja Komputerowa. Projekt współfinansowany w ramach Europejskiego Funduszu Społecznego

Inżynieria obrazów cyfrowych. Ćwiczenie 7. GIMP zarządzanie kolorem, tekst na obrazie

Tworzenie buforów w ArcView

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

Zaawansowany kurs języka Python

Temat: Wprowadzenie do OpenGL i GLUT

7. Dynamiczne generowanie grafiki

Wyższa Szkoła Informatyki Stosowanej i Zarządzania

Technologie Informacyjne

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010 KOMPUTEROWA

PRZEWODNIK PO PRZEDMIOCIE

Podstawy grafiki komputerowej. Teoria obrazu.

enova Systemowe Kolorowanie list

Grafika komputerowa. Zajęcia IX

Grafika 3D OpenGL część II

KARTA KURSU. Grafika komputerowa

Praca w programie Power Draft

Transkrypt:

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 37 e-mail: mhojny@metal.agh.edu.pl

1. Cel projektu: Zapoznanie się z modelami cieniowania oraz modelem barw RGB. 2. Zadanie projektowe: Napisać aplikację która: Dla zbioru danych wskazanego przez prowadzącego (Zestawy danych.rar >Zestaw 1 lub Zestaw 2 >nazwa zbioru) wykonać cieniowanie metodą gładką (cieniowanie Gouarda) i metodą płaską. W przypadku cieniowania Gouarda zastosować rozbudowaną paletę kolorów oraz uproszczoną (dwa kolory: niebieski-czerwony). W przypadku cieniowania płaskiego możliwość wyboru koloru. Dodatkową opcją nieobowiązkową jest możliwość włączenie i wyłączenie ditheringu. Przykładowy wynik działania aplikacji z zastosowaniem rozbudowanej palety kolorów jest przedstawiony na rysunku 1. Rys.1. Przykładowa mapa kolorów dla rozbudowanej palety kolorów.

Na stronie internetowej dostępny jest program demo.exe który umożliwia wczytanie danych testowych (Zestawy danych.rar >Zestaw 1 lub Zestaw 2 >nazwa zbioru) i porównanie efektu działania z projektowaną w ramach zajęć aplikacją. Struktura zbioru danych składa się z trzech kolumn: 0 0 1220.71 0 2.01613 1212.81 0 4.03226 1189.11 0 6.04839 1149.54 0 8.06452 1094.03 0 10.0806 1022.47 0 12.0968 934.765 0 14.1129 831.052 0 16.129 712.56 0 18.1452 584.283 0 20.1613 457.858 Pierwsza kolumna: współrzędne x punktów poszczególnych czworokątów (rys.2) Druga kolumna: współrzędne y punktów poszczególnych czworokątów (rys.2) Trzecia kolumna: wartość (zmienna typu float) przypisana do aktualnego punktu (rys.2)

Rys.2. Przykładowa wizualizacja punktów z zbioru danych. Ważne! Aplikacja powinna umożliwiać wczytanie dowolnego zbioru danych (Zestawy danych.rar >Zestaw 1 lub Zestaw 2 >nazwa zbioru) oraz mieć możliwość ustawienia modelu cieniowania czy też rozmiaru palety kolorów. APLIKACJA BĘDZIE ROZWIJANA NA KOLEJNYCH ZAJĘCIACH O KOLEJNE FUNKCJE I METODY. 3. OpenGL - przydatne funkcje i parametry: Barwa może być określana na dwa sposoby: a) w trybie bezpośrednim w którym kolor ustalamy przy pomocy funkcji z grupy glcolor. Wspominanie funkcje możemy podzielić na trzy grupy: funkcja trójargumentowa (podajemy składowe RGB), funkcja czteroargumentowa z dodatkową obsługą kanału alfa, funkcja która przyjmuje wskaźnik na tablicę ze składowymi koloru. void glcolor3d( GLdouble red, GLdouble green, GLdouble blue ) void glcolor3f( GLfloat red, GLfloat green, GLfloat blue ) void glcolor3i( GLint red, GLint green, GLint blue )

void glcolor4d( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha ) void glcolor4f( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) void glcolor4i( GLint red, GLint green, GLint blue, GLint alpha ) b) w trybie indeksowym kolor określony jest pojedynczą liczbą (indeksem) która zawiera informacje o składowych RGB. Model zarządzania mapą kolorów jest uzależniony od typu systemu, w którym pracuje program. OpenGL nie posiada żadnych mechanizmów pozwalających na zmianę zawartości mapy kolorów oraz zmiany jej rozmiarów. Początkowa wartość indeksu bieżącego koloru wynosi 1. void glindexd( GLdouble c ) void glindexf( GLfloat c ) void glindexi( GLint c ) Czyszczenie bufora koloru w trybie indeksowym wykonuje funkcja: void glclearindex( GLfloat c ) Parametr c określa indeks mapy kolorów (domyślna wartość indeksu = 0). Funkcja ta jest odpowiednikiem funkcji glclearcolor działającej w trybie bezpośrednim. Bufor koloru: Bufor koloru służy do przechowywania obrazu naszej renderowanej sceny. W OpenGL najczęściej stosuje sie dwa bufory koloru: przedni i tylny w celu eliminacji migotania obrazu. Nasza bieżąca scena znajduje się w przednim buforze i jest wyświetlana na ekranie, natomiast w tym samym czasie rysowana jest kolejna ramka sceny. Po zakończeniu rysowania, bufory są zamieniane i cały cykl jest powtarzany. Cieniowanie: Cieniowanie jest metodą polegającą na ustaleniu koloru poszczególnych pikseli wielokąta. W bibliotece OpenGL udostępnione są dwa modele cieniowania: cieniowanie płaskie oraz cieniowanie gładkie.

W przypadku cieniowania płaskiego wielokąt otrzymuje jeden kolor który zostaje określony dla ostatniego wierzchołka, natomiast cieniowanie gładkie wykorzystuje algorytm Gouarauda, który polega na liniowej interpolacji wartości składowych koloru określonych dla każdego wierzchołka wielokąta. Wybór rodzaju cieniowania umożliwia funkcja: void glshademodel( GLenum mode ) Parametr mode może przyjąć jedną z wartości: GL_FLAT - cieniowanie płaskie, GL_SMOOTH - cieniowanie gładkie. Dithering: Biblioteka OpenGL opisuje kolory za pomocą liczb zmiennoprzecinkowych. Końcowy efekt widoczny na ekranie zależy przede wszystkim od możliwości systemu okienkowego oraz karty graficznej. W przypadku, gdy w systemie dostępna jest niewielka ilość barw (np. 256), biblioteka OpenGL może symulować kolory metodą ditheringu. Algorytm ten umieszcza w pobliżu siebie różnokolorowe plamki (piksele) tak aby sprawiały wrażenie jednolitej barwy. Technika ta bywa określana także mianem rozpraszania, rozsiewania lub roztrząsania. Włączenie i wyłączenie ditheringu wymaga użycia funkcji glenable/gldisable z parametrem GL_DITHER. 4. Literatura: a) J.D.Foley, A. van Dam, S.K. Finer, J.F. Hughes, R.L. Phillips, Wprowadzenie do grafiki komputerowej". b) http://www.opengl.org 5. Co na następnych zajęciach: Konwersja i mieszanie kolorów.