Mieszanie kolorów. Dorota Smorawa

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

Materiały. Dorota Smorawa

Przekształcenia geometryczne. Dorota Smorawa

Elementarne obiekty geometryczne, bufory. Dorota Smorawa

GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa

Janusz Ganczarski. OpenGL Pierwszy program

6 Przygotował: mgr inż. Maciej Lasota

PRZEWODNIK PO PRZEDMIOCIE

GRAFIKA KOMPUTEROWA 10: Antyaliasing

Rzutowanie DOROTA SMORAWA

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

Tekstury. 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++)

OpenGL Światło (cieniowanie)

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

OpenGL Światło (cieniowanie)

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

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

GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie

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

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

OpenGL model oświetlenia

3 Przygotował: mgr inż. Maciej Lasota

PRZEWODNIK PO PRZEDMIOCIE

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

Temat: Transformacje 3D

OpenGL przezroczystość

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

Klasy abstrakcyjne i interfejsy

Grafika 3D program POV-Ray - 1 -

PyGame Gra w Ponga. Spis treści

KD Max 6.0 wersja CastoCad. Pierwsze kroki

Ćwiczenie 14 Dmuchawce

Wykład 4. Rendering (1) Informacje podstawowe

Plan wykładu. Akcelerator 3D Potok graficzny

Informatyka I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

OpenGL teksturowanie

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

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

Odbicie na szkłach okularów

Grafika 3D OpenGL część II

8 Przygotował: mgr inż. Maciej Lasota

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

Transformacje. dr Radosław Matusik. radmat

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

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

11.3 Definiowanie granic obszaru przeznaczonego do kreskowania

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

GRK 4. dr Wojciech Palubicki

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

Instrukcja obsługi programu KREATOR WNĘTRZ

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Programowanie (C++) NI 5

Studia Podyplomowe Grafika Komputerowa i Techniki Multimedialne, 2017, semestr II Modelowanie 3D - Podstawy druku 3D. Ćwiczenie nr 4.

Tworzenie gier na urządzenia mobilne

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

Wykład 5: Klasy cz. 3

Ćwiczenie 1 Automatyczna animacja ruchu

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Instrukcja hydromasażu Joy

Janusz Ganczarski. OpenGL Definiowanie sceny 3D

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

Instrukcja obsługi menu OSD w kamerach i8-...m2

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

FK - automatyczne korekty kosztów niezapłaconych wydatków zaliczonych do kosztów uzyskania przychodów.

Systemy graficzne. dr inż. Mariusz Szwoch

Kinect vs VR, czyli technologie sensoryczne stosowane w konsolach do gier.

Podstawy POV-Ray a. Diana Domańska. Uniwersytet Śląski

Grafika komputerowa. Zajęcia 7

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Obsługa grafiki w Delphi, rysowanie na płótnie, obsługa myszki, zapisywanie obrazków do plików, bitmapy pozaekranowe.

Polecenie ŚWIATPUNKT - ŚWIATŁO PUNKTOWE

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

INSTRUKCJA OBSŁUGI FRESH INTELLIVENT. Nowe funkcje Ciągła praca z ustawianą prędkością i zachowaną funkcją timera.

Programowanie xcomfort Cz. I Eaton Corporation. All rights reserved.

ECDL Advanced Moduł AM6 Grafika menedżerska i prezentacyjna Syllabus, wersja 2.0

SPORZĄDZANIE LINII WPŁYWU WIELKOŚCI STATYCZNYCH SPOSOBEM KINEMATYCZNYM

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

Sterownik przewodowy. Bosch Climate 5000 SCI / MS. Model: KJR-12B/DP(T)-E-2

HIBERNATUS_PLUS ALARM MOTOCYKLOWY

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

TUNER DVB-T PRZEWODNIK UŻYTKOWNIKA

AutoCAD LT praca na obiektach rastrowych i nakładanie barw z palety RGB na rysunki.

GRAFIKA RASTROWA GRAFIKA RASTROWA

Pierwsze kroki z easy Soft CoDeSys Eaton Corporation. All rights reserved.

Podstawy Programowania Obiektowego

MODELE KOLORÓW. Przygotował: Robert Bednarz

Interfejs analogowy LDN-...-AN

PARADYGMATY PROGRAMOWANIA Wykład 4

Klasy i obiekty cz I Klasy, obiekty, podstawy używania obiektów

4.2. ELIPSA. 1. W linii statusowej włączamy siatkę i skok, które ułatwią rysowanie:

Materiały pomocnicze z programu AutoCAD 2014.

Tytuł: Projekt realizacji prac prowadzących do zlokalizowania i usunięcia usterek systemu komputerowego.

dr inż. Jacek Dąbrowski, KSG

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Allegro5 3/x. Przykład wklejamy go do dev'a zamiast kodu domyślnego dal programu z allegro i kompilujemy.

Instrukcja obsługi Sterownik przewodowy (uproszczony) CZ-RE2C2 CZ-RELC2

Programowanie Procesorów Graficznych

Transkrypt:

Mieszanie kolorów Dorota Smorawa

Tworzenie efektu przezroczystości Biblioteka OpenGL umożliwia nam tworzenie bardzo ciekawych efektów związanych z przezroczystością i odbiciem. Aby zrealizować efekt przezroczystości musimy się posługiwać na składowych kolorów RGB z zakresu od 0.0f do 1.0f uwzględniając przy tym współczynnik przezroczystości alfa. Wartość kanału alfa również jest z zakresu od 0.0f do 1.0f. glcolor4f (red, green, blue, alfa); Po zdefiniowaniu koloru obiektu, jeśli chcemy uzyskać efekt przezroczystości musimy wykorzystać równanie mieszania kolorów z odpowiednimi parametrami: glblendfunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); Po wywołaniu równania mieszania kolorów rysujemy nasz przezroczysty obiekt, który zostanie zmieszany z innymi obiektami, np. tłem, znajdującym się za nim.

Wykorzystanie równania mieszania kolorów Jeśli chcemy wykorzystać równanie mieszania kolorów, musimy włączyć mechanizm mieszania. Odbywa się to za pomocą funkcji glenable z parametrem GL_BLEND. Ważne jest, iż nie możemy włączyć mieszania kolorów, jeśli mamy włączone oświetlenie na scenie. Dlatego przed włączeniem mieszania musimy najpierw wyłączyć oświetlenie, a po zmieszaniu kolorów wyłączyć mieszanie i ponownie włączyć oświetlenie. glcolor4f (1.0f, 0.0f, 0.0f, 0.4f); gldisable (GL_LIGHTING); glenable (GL_BLEND); glblendfunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glutsolidcube (0.3f); gldisable (GL_BLEND); glenable (GL_LIGHTING);

Tworzenie efektu lustrzanego odbicia Uzyskanie efektu odbicia lustrzanego wnosi konieczność w zasadzie narysowania dwa razy wszystkich obiektów użytych na scenie. Jeśli chcemy na przykład uzyskać efekt odbijającej podłogi, która odbija w sobie wszystko, co znajduje się nad nią, musimy narysować tzw. drugi świat. Najpierw rysujemy wszystko, co znajduje się pod podłogą, czyli położenie wszystkich aktorów skalujemy za pomocą funkcji glscalef(1.0f, -1.0f, 1.0f). Przeskalowana powinna również zostać pozycja światła. Oczywiście musimy wcześniej zmienić też domyślne nawinięcie wielokątów za pomocą funkcji glfrontface. Po narysowaniu aktorów pod podłogą do góry nogami, przywracamy domyślne nawinięcie wielokątów, wyłączamy oświetlenie, włączamy mieszanie kolorów i wywołujemy równanie mieszania. Następnie rysujemy naszą podłogę, pamiętając, aby jej składowe kolorów zawierały też składową alfa. Po narysowaniu podłogi wyłączamy mieszanie kolorów, włączamy oświetlenie i rysujemy aktorów już w sposób normalny nad podłogą.

Wykorzystanie efektu drugiego świata if (LUSTRO) { gllightfv (GL_LIGHT0, GL_POSITION, fpozycja_swiatla_pod); // ustawienie światła pod podłogą glpushmatrix (); glfrontface (GL_CW); // zmiana domyślnego nawinięcia gltranslatef(0.0f, -50.0f, 0.0f); glscalef (1.0f, -1.0f, 1.0f); // przeskalowanie położenia wszystkich aktorów Rys_aktorow (0); // narysowanie aktorów pod podłogą glfrontface (GL_CCW); // przywrócenie domyślnego nawinięcia glpopmatrix ();

Wykorzystanie efektu drugiego świata } gldisable (GL_LIGHTING); // wyłączenie oświetlenia glenable (GL_BLEND); // włączenie mieszania kolorów glblendfunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // równanie mieszania kolorów Podloze (); // narysowanie podłogi gldisable (GL_BLEND); // wyłączenie mieszania glenable (GL_LIGHTING); // włączenie oświetlenia gllightfv (GL_LIGHT0, GL_POSITION, fpozycja_swiatla); // ustawienie światła nad podłogą Rys_aktorow (0); // narysowanie aktorów nad podłogą

Opis funkcji glblendfunc funkcja ustala współczynniki kolorów docelowego i źródłowego stosowane w równaniu mieszania kolorów. Mechanizm mieszania kolorów należy włączyć wywołaniem funkcji glenable (GL_BLEND). Domyślne ustawienia mieszania kolorów są równoważnie z wywołaniem funkcji glblendfunc (GL_ONE, GL_ZERO). składnia void glblendfunc (GLenum sfactor, GLenum dfactor); parametry sfactor funkcja mieszania koloru źródłowego dfactor funkcja mieszania koloru docelowego

Literatura Richard S. Wright jr, Michael Sweet: OpenGL Księga eksperta Wydanie III, Helion2005 Pomoce dydaktyczne i instrukcje, http://icis.pcz.pl/~mkubanek Jackie Neider, Tom Davis, Mason Woo: OpenGL Programming Guide The RedBook Kevin Hawkins, Dave Astle: OpenGL. Programowanie gier, Helion 2003 The official OpenGL web page, http://www.opengl.org http://januszg.hg.pl/opengl/