dr inż. Jacek Dąbrowski, KSG

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

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

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)

OpenGL Światło (cieniowanie)

Teksturowanie (ang. texture mapping)

Plan wykładu. Akcelerator 3D Potok graficzny

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

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

Wprowadzenie. Artur Staszczyk Bartłomiej Filipek

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

OpenGL - Open Graphics Library. Programowanie grafiki komputerowej. OpenGL 3.0. OpenGL - Architektura (1)

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

Bartłomiej Filipek

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 5

OpenGL - tekstury Mapowanie tekstur

Zaawansowane systemy programowania grafiki. Wprowadzenie. Podstawy OpenGL

Dowiedz się, jak tworzyć zapierające dech w piersiach gry 3D i efektowne, trójwymiarowe wizualizacje!

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

GRAFIKA KOMPUTEROWA 8: Konwersja i mieszanie kolorów

Tekstury. Dorota Smorawa

Wprowadzenie do grafiki maszynowej. Wprowadzenie do historii OpenGL

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

Trójwymiarowa wizualizacja danych przestrzennych

Przyspieszanie sprzętowe

2 Przygotował: mgr inż. Maciej Lasota

OpenGL oświetlenie i tekstury. OpenGL oświetlenie. Bogdan Kreczmer.

Architektura systemów komputerowych Ćwiczenie 3

Wykład 4. Rendering (1) Informacje podstawowe

Filtrowanie tekstur. Kinga Laurowska

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza dźwięku i obrazu

Grafika komputerowa. Grafika komputerowa. Grafika komputerowa

Karty graficzne możemy podzielić na:

3 Przygotował: mgr inż. Maciej Lasota

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

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

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

GRAFIKA KOMPUTEROWA. Rozwiązania sprzętowe i programowe. Przyspieszanie sprzętowe. Synteza i obróbka obrazu

Wprowadzenie do WebGL

GRK 4. dr Wojciech Palubicki

Grafika trójwymiarowa

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

Architektura Komputerów

Elementarne obiekty geometryczne, bufory. Dorota Smorawa

Grafika komputerowa i wizualizacja. dr Wojciech Pałubicki

1 Temat: Vertex Shader

Karta graficzna karta rozszerzeo odpowiedzialna generowanie sygnału graficznego dla ekranu monitora. Podstawowym zadaniem karty graficznej jest

Shadery. Artur Staszczyk Bartłomiej Filipek

Grafika Komputerowa 3D Etap drugi

Transformacje obiektów 3D

Grafika komputerowa i wizualizacja

Mieszanie kolorów. Dorota Smorawa

GRAFIKA KOMPUTEROWA 7: Kolory i cieniowanie

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Transformacje. dr Radosław Matusik. radmat

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

GRAFIKA KOMPUTEROWA. Plan wykładu. 1. Początki grafiki komputerowej. 2. Grafika komputerowa a dziedziny pokrewne. 3. Omówienie programu przedmiotu

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 6

Grafika Komputerowa 3D Etap drugi

GRK 5. dr Wojciech Palubicki

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

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

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

Grafika komputerowa Tekstury

GRK 5. dr Wojciech Palubicki

Wyświetlanie terenu. Clipmapy geometrii

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

Temat: Wprowadzenie do OpenGL i GLUT

Grafika 3D na przykładzie XNA 3.1

Efekty dodatkowe w rasteryzacji

Systemy wirtualnej rzeczywistości. Podstawy grafiki 3D

Wykład V. Karta graficzna. Studia stacjonarne Pedagogika Budowa i zasada działania komputera

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

Grafika 3D OpenGL część II

Janusz Ganczarski. OpenGL Pierwszy program

GRK 2. dr Wojciech Palubicki

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

Bufor koloru cd. Czyszczenie bufora koloru glclearcolor( )

OpenGL przezroczystość

Wprowadzenie do programowania z wykorzystaniem biblioteki OpenGL. Dorota Smorawa

WPROWADZENIE DO GRAFIKI KOMPUTEROWEJ

Temat: Transformacje 3D

1. Prymitywy graficzne

Specyfikacja OpenGL Podstawy programowania grafiki komputerowej*

Laboratorium 4 OpenGl (4) Oświetlenie sceny

Karta graficzna. Karta graficzna przyjmuje. rozszerzeń montowanej w magistrali wejścia/wyjścia na płycie głównej. Opcjonalnie układ graficzny

Rzutowanie DOROTA SMORAWA

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Spis treści. Wstęp... 11

Potok graficzny i shadery. Hubert Rutkowski

OpenGL Zaawansowana grafika komputerowa

Karta przedmiotu. Podstawy programowania procesorów graficznych. realizowanego w ramach projektu PO WER

8 Przygotował: mgr inż. Maciej Lasota

Wybrane aspekty teorii grafiki komputerowej - dążenie do wizualnego realizmu. Mirosław Głowacki

Architektura Komputerów

Architektura Procesorów Graficznych

OpenGL i Qt. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Wydziału Elektroniki Politechnika Wrocławska

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Rendering obrazu 3D. Rendering. Synteza i obróbka obrazu

Programowanie Procesorów Graficznych

Transkrypt:

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 OGL 2.0: 2004 (GLSL) OGL 2.1: 2006 OGL 3.0: 2008 OGL 3.1, 3.2: 2009 OGL 3.3, OGL 4.0: 2010 (marzec) OGL 4.1: 2010 (lato) OGL 4.2: 2011 (lato) OGL 4.3: 2012 (lato)

OpenGL 1.3 OpenGL ES 1.0 OpenGL 1.5 OpenGL ES 1.1 OpenGL 2.0 OpenGL ES 2.0 OpenGL 4.3 OpenGL ES 3.0 OpenGL 4.1

Kompatybilność w dół (nie wszyscy się cieszą), Rozszerzenia OpenGL Architecture Review Board 3Dlabs, Apple, ATI, Dell, IBM, Intel, NVIDIA, SGI, Oracle, Khronos Group Richard Wright: OpenGL Superbible NeHe tutorial

Biblioteka w systemie, najczęściej razem ze sterownikiem karty graficznej, Software rendering Rozszerzenia: Nieoficjalne, np. GL_EXT_framebuffer_object Oficjalne, np. GL_ARB_vertex_array_object Architecture Review Board Możliwość odpytania karty graficznej o funkcjonalność

Definiowanie rzutu gluperspective( ) gluortho( ) Ustawianie kamery glulookat() Rysowanie kształtów Sfera, stożek, dysk, Przekształcenia tekstur Poziomy szczegółowości mipmapy Skalowanie

Start od pustego świata, Kamera w (0,0,0) Funkcje Definiujące i modyfikujące macierze przekształceń, Modyfikujące stan OpenGL, Rysujące, Dołączanie shaderów

Macierze przekształceń, Tryb teksturowania, Przeźroczystość, sposób mieszania, Światła, Test głębokości,... ok. 12 kb danych

Stos może przechowywać wybrane elementy stanu OpenGL, np. macierze przekształceń, atrybuty. Zanim zaczniemy pozycjonować obiekt lub konfigurować stan PUSH Po skończeniu POP

world transform przekształca wierzchołki z lokalnego układu współrzędnych do współrzędnych świata view transform wierzchołki ze współrzędnych świata przekształcane są do współrzędnych kamery projection transform wierzchołki ze współrzędnych kamery przekształcane tak aby wprowadzić iluzję głębi clipping and viewport scaling usuwa niewidoczne wierzchołki (clipping) i przeskalowuje ich współrzędne do współrzędnych ekranowych (viewport)

Czy? Scissor test Alpha test Stencil test Depth Test Kolor? Kolor Tekstury Światła Blending

http://www.khronos.org/opengles/2_x/

http://diaryofagraphicsprogrammer.blogspot.com/2009/12/direct3d-11-overview.html

Zarządzanie zasobami przez OpenGL: uchwyty unsigned integer: Tekstury Bufory VBO Programy (shadery)

Trójkąt - dwie strony W przypadku modelu, który będzie rysowany tylko od zewnątrz można rysować tylko połowę trójkątów, Przedniość ściany zależna od kolejności wierzchołków, Tryby rysowania ścian przednich/tylnych

2 x GL_TRIANGLE_FAN

W przypadku zamkniętych obiektów nie ma sensu rysowanie wewnętrznej ściany. Określanie przodu : flfrontface(gl_cw); flfrontface(gl_ccw);

glenable(gl_cull_face);

glpolygonmode(gl_back,gl_line);

Włączyć GL_STENCIL_TEST Wyzerować bufor Ustawić test tak, żeby punkty go nie przechodziły, ale zostawiały ślad w buforze glstencilfunc(...) glstencilop(...) Wyłączyć pisanie do bufora Narysować swoje

void glstencilfunc( GLenum func, GLint ref, GLuint mask ) func Specifies the test function. Eight tokens are valid: GL_NEVER, GL_LESS, GL_LEQUAL, GL_GREATER, GL_GEQUAL, GL_EQUAL, GL_NOTEQUAL, and GL_ALWAYS. The initial value is GL_ALWAYS. Ref Specifies the reference value for the stencil test. ref is clamped to the range [0,2n-1], where n is the number of bitplanes in the stencil buffer. The initial value is 0. mask Specifies a mask that is ANDed with both the reference value and the stored stencil value when the test is done. The initial value is all 1's.

void glstencilop( GLenum fail, GLenum zfail, GLenum zpass ); Modyfikatory: GL_KEEP, GL_ZERO, GL_REPLACE, GL_INCR, GL_DECR, GL_INVERT, GL_INCR_WRAP, GL_DECR_WRAP.

Włączanie/wyłączanie testu: glenable(gl_depth_test); Funkcja testująca: gldepthfunc(...): GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL,... Zapis przy rysowaniu: gldepthmask(gl_true); gldepthmask(gl_false);

glblendfunc(sourcefactor, destfactor) Kolor = source x sourcefactor + destination x destinationfactor Source piksel do postawienia Pixel piksel na ekranie Zwykła przeźroczystość : glblendfunc(gl_src_alpha, GL_ONE_MINUS_SRC_ALPHA)

Parameter (fr,fg,fb,fa) GL_ZERO (0,0,0,0) GL_ONE (1,1,1,1) GL_SRC_COLOR (Rs/kR,Gs/kG,Bs/kB,As/kA) GL_ONE_MINUS_SRC_COLOR (1,1,1,1) (Rs/kR,Gs/kG,Bs/kB,As/kA) GL_DST_COLOR (Rd/kR,Gd/kG,Bd/kB,Ad/kA) GL_ONE_MINUS_DST_COLOR (1,1,1,1) (Rd/kR,Gd/kG,Bd/kB,Ad/kA) GL_SRC_ALPHA (As/kA,As/kA,As/kA,As/kA) GL_ONE_MINUS_SRC_ALPHA (1,1,1,1) (As/kA,As/kA,As/kA,As/kA) GL_DST_ALPHA (Ad/kA,Ad/kA,Ad/kA,Ad/kA) GL_ONE_MINUS_DST_ALPHA (1,1,1,1) (Ad/kA,Ad/kA,Ad/kA,Ad/kA) GL_SRC_ALPHA_SATURATE (i,i,i,1) GL_CONSTANT_COLOR (Rc,Gc,Bc,Ac) GL_ONE_MINUS_CONSTANT_COLOR (1,1,1,1) (Rc,Gc,Bc,Ac) GL_CONSTANT_ALPHA (Ac,Ac,Ac,Ac) GL_ONE_MINUS_CONSTANT_ALPHA (1,1,1,1) (Ac,Ac,Ac,Ac)

Kolory - glcolor Płaskie (FLAT) lub interpolacja Tekstury Jedno-, dwu-, trójwymiarowe Dla wierzchołka określane współrzędne Kolor (z glcolor) ma wpływ na wygląd tekstury, Światła Kolor i typ światła Materiał

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 - jeden piksel wiele tekseli GL_TEXTURE_MAG_FILTER Powiększanie - jeden piksel jeden lub mniej tekseli GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T GL_CLAMP lub GL_REPEAT

Multiteksturowanie Zazwyczaj graficy starają się uzyskać jedną teksturę na model, ale nie zawsze się udaje Detail texture, Light mapping, Dodatkowa, prekalkulowana tekstura z oświetleniem, Bump mapping, Tekstura jako źródło normalnych, Renderowanie do tekstury Cienie Pierwsze GPGPU

Rysowanie tekstu Gotowa tekstura, Kolejne quady... Kanał alpha Billboardy