GRK 4. dr Wojciech Palubicki

Podobne dokumenty
GRK 5. dr Wojciech Palubicki

GRK 5. dr Wojciech Palubicki

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

GRK 3. Dr Wojciech Palubicki

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

Oświetlenie obiektów 3D

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

Grafika komputerowa. Model oświetlenia. emisja światła przez źródła światła. interakcja światła z powierzchnią. absorbcja światła przez sensor

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

Scena 3D. Cieniowanie (ang. Shading) Scena 3D - Materia" Obliczenie koloru powierzchni (ang. Lighting)

Zjawisko widzenia obrazów

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

Grafika komputerowa i wizualizacja. dr Wojciech Pałubicki

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

GRK 2. dr Wojciech Palubicki

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

1. Oświetlenie Materiały i powierzchnie

Transformacje. dr Radosław Matusik. radmat

Transformacje obiektów 3D

Grafika realistyczna. Oświetlenie globalne ang. global illumination. Radosław Mantiuk

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

Synteza i obróbka obrazu. Algorytmy oświetlenia globalnego

6 Przygotował: mgr inż. Maciej Lasota

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

Plan wykładu. Akcelerator 3D Potok graficzny

Śledzenie promieni w grafice komputerowej

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

Gry komputerowe, Informatyka N1, III Rok

Julia 4D - raytracing

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

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

Cieniowanie. Mirosław Głowacki

Efekty dodatkowe w rasteryzacji

Gry komputerowe: efekty specjalne cz. 2

WSTĘP DO GRAFIKI KOMPUTEROWEJ

SYNTEZA OBRAZU. Rendering obrazu 3D

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

Grafika komputerowa Tekstury

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

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

Grafika Komputerowa. Metoda śledzenia promieni

Grafika komputerowa Wykład 10 Modelowanie oświetlenia

Algorytmy oświetlenia globalnego

Wykład 4. Rendering (1) Informacje podstawowe

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

OpenGL : Oświetlenie. mgr inż. Michał Chwesiuk mgr inż. Tomasz Sergej inż. Patryk Piotrowski. Szczecin, r 1/23

Obliczenie punktu przecięcia półprostej i płaszczyzny w przestrzeni 3-D wymaga rozwiązania równania liniowego.

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Grafika Komputerowa. Wykład 8. Przygotowanie do egzaminu. mgr inż. Michał Chwesiuk 1/32

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

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

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

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

Zaawansowana Grafika Komputerowa

1. Prymitywy graficzne

Grafika 3D program POV-Ray

Co to jest wektor? Jest to obiekt posiadający: moduł (długość), kierunek wraz ze zwrotem.

8.5. Algorytm kolejnego dzielenia

Przestrzenie 3D (algorytmy renderingu)

Materiały. Dorota Smorawa

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

Grafika komputerowa Wykład 8 Modelowanie obiektów graficznych cz. II

WPROWADZENIE DO GRAFIKI KOMPUTEROWEJ

OpenGL model oświetlenia

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

LUBELSKA PRÓBA PRZED MATURĄ 09 MARCA Kartoteka testu. Maksymalna liczba punktów. Nr zad. Matematyka dla klasy 3 poziom podstawowy

Grafika trójwymiarowa. Grafika trójwymiarowa. Pojęcie kamery. Źródła światła - przykłady. Rzutowanie trójwymiarowych obiektów. Grafika trójwymiarowa

Grafika 3D program POV-Ray - 1 -

1. Podstawowe algorytmy techniki rastrowe a) dwa przecinające się odcinki mogą nie mieć wspólnego piksela (T) b) odcinek o współrzędnych końcowych

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Architektura Procesorów Graficznych

Karty graficzne możemy podzielić na:

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Wykład 16. P 2 (x 2, y 2 ) P 1 (x 1, y 1 ) OX. Odległość tych punktów wyraża się wzorem: P 1 P 2 = (x 1 x 2 ) 2 + (y 1 y 2 ) 2

Programowanie Procesorów Graficznych

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

Z ostatniego wzoru i zależności (3.20) można obliczyć n6. Otrzymujemy (3.23) 3.5. Transformacje geometryczne

ALGEBRA LINIOWA Z ELEMENTAMI GEOMETRII ANALITYCZNEJ. 1. Ciała

Analiza Matematyczna Praca domowa

1 Geometria analityczna

KLUCZ PUNKTOWANIA ODPOWIEDZI

Elementy geometrii analitycznej w R 3

Bartosz Bazyluk SYNTEZA GRAFIKI 3D Grafika realistyczna i czasu rzeczywistego. Pojęcie sceny i kamery. Grafika Komputerowa, Informatyka, I Rok

rgbf<składowa_r,składowa_g,składowa_b,filter>. Dla parametru filter przyjmij kolejno wartości: 0.60, 0.70, 0.80, 0.90, 1.00, np.:

19 Własności iloczynu skalarnego: norma, kąt i odległość

PRÓBNY EGZAMIN MATURALNY

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Geometria analityczna

Wektor, prosta, płaszczyzna; liniowa niezależność, rząd macierzy

Zadania do samodzielnego rozwiązania zestaw 11

Podstawy fizyki wykład 8

PDF stworzony przez wersję demonstracyjną pdffactory

Opracowanie tablic: Adam Konstantynowicz, Anna Konstantynowicz, Kaja Mikoszewska

Krzywe stożkowe Lekcja II: Okrąg i jego opis w różnych układach współrzędnych

Elektrostatyka. Potencjał pola elektrycznego Prawo Gaussa

i = [ 0] j = [ 1] k = [ 0]

LUBELSKA PRÓBA PRZED MATURĄ 2017 poziom podstawowy

ZADANIA ZAMKNIETE W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawna

Wyprowadzenie prawa Gaussa z prawa Coulomba

Architektura Komputerów

Transkrypt:

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 Matrix View Space Clip Space

Potok graficzny Window space View Space Orthographic view Canonical view

Rzutowania Perspektywicznie rzutowanie Ortograficzne rzutowanie

Clipping Żeby zdecydować czy pociąć trójkąt musimy: Sprawdzić czy on przecina hiperpłaszczyznę Stworzyć nowy trójkąt(y)

Obliczenie punktów przecięcia Jak dwa punkty Ԧa i b są po różnych stronach hiperpłaszczyzny stwarzamy równanie krzywej która przez te punkty przechodzi: Ԧp t = Ԧa + t b Ԧa Podkładając te równanie pod nasze równanie hiperpłaszczyzny daje nam: n Ԧp Ԧq = 0 n Ԧa + t b Ԧa Ԧq = 0 t = n a+n q n (a b)

Stwarzanie nowych trójkątów Na podstawie dwóch punktów intersekcji możemy pociąć nasz trójkąt według naszej hiperpłaszczyzny w następujący sposób: Jak dwa wierzchołki są zewnątrz hiperpłaszczyzny dostajemy nowy trójkąt Jak jeden wierzchołek jest zewnątrz hiperpłaszczyzny dostajemy dwie nowe trójkąty

Culling Gdy jednak trójkąt leży poza bryłą widzenia usuwamy go całkowicie z dalszych obliczeń Testowanie wierzchołków jest ale jednak kosztowne

Bryły brzegowe (bounding volumes) Często kule są używane jako bryły brzegowe Jak płaszczyzna jest dana przez Ԧp Ԧa n = 0 i kula ma środek Ԧc i promień r, wtedy sprawdzamy nierówność Ԧc a n > r n n Ԧa Ԧc r

Backface culling Gdy modelujemy obiekty geometryczne za pomocy trójkątów to normalna trójkątów jest ustawiona na zewnątrz obiektu Odrzucanie trójkątów których normalna jest skierowana od punktu widzenia nazywamy to backface culling (usuwanie powierzchni tylnych)

v n = v n cos(θ) Skierowany do przodu gdy θ > π 2, dlatego cos θ < 0 i v n < 0

Przykład Bez backface culling Backface culling

Algorytm malarza (painter s algorithm)

Częściowe pokrywanie wielokątów

Z-bufor

CPU GPU Vertex shader Fragment shader

Oświetlenie Bez oświetlenia Z oświetleniem

Oświetlenie Bez oświetlenia Z oświetleniem

Światło Zwykły materiał Część światła jest odbita Część wnika w materiał Metal Część światła jest odbita Część wnikająca jest absorbowana

Nie-metalowe materiały Światło które wnika w materiał Jest absorbowane Lub wychodzi z powrotem z materiału na zewnątrz

Podpowierzchniowe rozpraszanie (subsurface scattering) Dystans pomiędzy punktem wejścia i wyjścia promieni światła jest wyznaczony przez materiał

Modelowanie za pomocy BRDF BRDF to Bidirectional Reflectance Distribution Function lub "dwukierunkowa funkcja rozkładu odbicia" Modelujemy światło ignorując różnice dystansu punktu wejścia i wyjścia światła (lustrzane) (rozproszone)

obserwator obiekt bezpośrednie oświetlenie pośrednie oświetlenie źródło światła obiekt obiekt źródło światła

obserwator obiekt bezpośrednie oświetlenie pośrednie oświetlenie źródło światła obiekt obiekt źródło światła

obserwator obiekt bezpośrednie oświetlenie pośrednie oświetlenie źródło światła obiekt obiekt źródło światła

promienie światła Obserwacja dl płaszczyzna

promienie światła Obserwacja dl da płaszczyzna

promienie światła Obserwacja dl = da dl da płaszczyzna

promienie światła Obserwacja dl = da dl > da dl dl da da

promienie światła Obserwacja dl = da dl > da dl > da dl dl dl da da da

promienie światła Obserwacja dl = da dl > da dl > da dl = dl dl dl da da da da

Model Phonga odbicia rozproszonego

Model Phonga odbicia rozproszonego

Model Phonga odbicia rozproszonego

Model Phonga odbicia rozproszonego

Model Phonga odbicia rozproszonego Model Phonga odbicia rozproszonego zależy od pozycji światła relatywnie do powierzchni D = I p k d max[cos θ, 0] Gdzie I p jest intensywność światła od punktowego źródła światła k d [0, 1] jest współczynnik rozproszonego światła θ jest kątem pomiędzy wektorem światła L i normalną powierzchni n max[cos θ, 0] jest używane żeby światło nie zostało odbite jak źródła światła znajduję się za powierzchnia

Model Phonga odbicia rozproszonego Model Phonga odbicia rozproszonego zależy od pozycji światła relatywnie do powierzchni D = I p k d max[cos θ, 0] Gdzie I p jest intensywność światła od punktowego źródła światła k d [0, 1] jest współczynnik rozproszonego światła θ jest kątem pomiędzy wektorem światła L i normalną powierzchni n max[cos θ, 0] jest używane żeby światło nie zostało odbite jak źródła światła znajduję się za powierzchnia

Model Phonga odbicia rozproszonego Model Phonga odbicia rozproszonego zależy od pozycji światła relatywnie do powierzchni D = I p k d max[cos θ, 0] Gdzie I p jest intensywność światła od punktowego źródła światła k d [0, 1] jest współczynnik rozproszonego światła θ jest kątem pomiędzy wektorem światła L i normalną powierzchni n Funkcja max[cos θ, 0] jest używana żeby światło nie zostało odbite wtedy gdy źródło światła znajduję się za powierzchnią

k d = 0.25 k d = 0.5 k d = 0.75 k d = 1

Definicja iloczynu skalarnego to: a b = a b cos(θ) Ale jak L i n są wektory jednostkowe to: L n = cos(θ) Czyli kosztowne obliczenie kosinusa da się zastąpić prostym iloczynem skalarnym D = I p k d max[l n, 0]

Definicja iloczynu skalarnego to: a b = a b cos(θ) Ale jak L i n są wektory jednostkowe to: L n = cos(θ) Czyli kosztowne obliczenie kosinusa da się zastąpić prostym iloczynem skalarnym D = I p k d max[l n, 0]

Odbicie lustrzane wpadające promienie odbite promienie

Odbicie lustrzane - wektory

Rzutowanie wektorów

Rzutowanie wektorów

Rzutowanie wektorów

Z definicji iloczynu skalarnego: a b = a b cos α = a b c a = b c c = a b b Gdy b jest wektorem jednostkowym to wtedy c = a b i c = a b b

Z definicji iloczynu skalarnego: a b = a b cos α = a b c = a b b Gdy b jest wektorem jednostkowym to wtedy c = a b i c = a b b c a

Z definicji iloczynu skalarnego: a b = a b cos α = a b c a = b c c = a b b Gdy b jest wektorem jednostkowym to wtedy c = a b i c = a b b

Z definicji iloczynu skalarnego: a b = a b cos α = a b c a = b c c = a b b Gdy b jest wektorem jednostkowym to wtedy c = a b i c = a b b

Z definicji iloczynu skalarnego: a b = a b cos α = a b c a = b c c = a b b Gdy b jest wektorem jednostkowym to wtedy c = a b i c = a b b

Odbicie geometryczne lustrzane - wektory Model Phonga odbicia geometrycznego lustrzanego jest S = I p k s cos n α = I p k s (V R) n Gdzie k s [0, 1] jest współczynnik geometryczny lustrzany n jest wykładnik geometryczny lustrzany α jest kątem pomiędzy R i V cos n (α) ustala ile światła odbija się

Odbicie geometryczne lustrzane - wektory Model Phonga odbicia geometrycznego lustrzanego jest S = I p k s cos n α = I p k s (V R) n Gdzie k s [0, 1] jest współczynnik geometryczny lustrzany n jest wykładnik geometryczny lustrzany α jest kątem pomiędzy R i V cos n (α) ustala ile światła odbija się

Odbicie geometryczne lustrzane - wektory Model Phonga odbicia geometrycznego lustrzanego jest S = I p k s cos n α = I p k s (V R) n Gdzie k s [0, 1] jest współczynnik geometryczny lustrzany n jest wykładnik geometryczny lustrzany α jest kątem pomiędzy R i V cos n (α) ustala ile światła odbija się

Wykładnik geometryczny lustrzany

n = 50 n = 20 n = 5 n = 1

Światło otoczenia Swiatlo otoczenia, to odbicie światła które nie przychodzi bezpośrednio od źródła światła Model Phonga jest modelem bezpośredniego oświetlenia, tzn. światło spada na wszystkie obiekty równo A = I a k a Gdzie I a jest intensywność światła i k a [0, 1] jest współczynnik otoczenia k a umożliwia dostarczać scenie odpowiedniego stopnia światła otoczenia, n.p. k a 1 dla jasnych scen a k a 0 dla ciemnych scen

k a = 0.25 k a = 0.5 k a = 0.75 k a = 1.0

Tłumienność (attenuation) Tłumienność jest utrata energii światła w przestrzeni W modelu Phonga tłumienność jest wyrażona przez współczynnik f att Fizyczne modele światła proponują f att ~ 1 d 2 Bo powierzchnia kuli to 4πr 2

Ale z powodu że model Phonga jest modelem bezpośredniego oświetlenia w praktyce zostaje za dużo z intensywności światła usunięte dlatego model Phonga używa f att = 1 ( d r )2 Gdzie r jest promieniem kuli otaczającą źródło światła która określa przestrzeń w której światło może być wysyłane

Składając wszystkie części modelu Phonga do jednego równania daje cały model odbicia światła Phonga I = I a k a + f att I p k d max[l n, 0] + f att I p k s (V R) n Dla więcej niż jednego źródła światła, odpowiednie komponenty modelu odbicia światła Phonga są obliczone dla każdego źródła i sumowane I = I a k a + σ m i=1 f att I p,i [k d max(l i n, 0) + k s (V R i ) n ]

Składając wszystkie części modelu Phonga do jednego równania daje cały model odbicia światła Phonga I = I a k a + f att I p k d max[l n, 0] + f att I p k s (V R) n Dla więcej niż jednego źródła światła, odpowiednie komponenty modelu odbicia światła Phonga są obliczone dla każdego źródła i sumowane I = I a k a + σ m i=1 f att I p,i [k d max(l i n, 0) + k s (V R i ) n ]

Intensywność światła i kolory RGB Skalujemy wektory kolorów v new = v I Na przykład: kolor czerwony v =(1, 0, 0) z 50% intensywnością to v new = (0.5, 0, 0)

Wynik światło otoczenia (ambient) światło rozproszone (diffuse) światło odbite geometryczne lustrzane (specular) = model odbicia światła Phonga

Metody cieniowania (shading) Model odbicia światła Phonga oblicza oświetlenie jednego punktu na powierzchni (zależnie od normalnej powierzchni) Żeby cały wielokąt oświetlić potrzebujemy metodę cieniowania tego wielokąta Podstawowe metody cieniowania: Płaskie cieniowanie (cieniowanie Lamberta) Cieniowanie Gourauda Cieniowanie Phonga

Metody cieniowania (shading) Model odbicia światła Phonga oblicza oświetlenie jednego punktu na powierzchni (zależnie od normalnej powierzchni) Żeby cały wielokąt oświetlić potrzebujemy metodę cieniowania tego wielokąta Podstawowe metody cieniowania: Płaskie cieniowanie (cieniowanie Lamberta) Cieniowanie Gourauda Cieniowanie Phonga

Metody cieniowania (shading) Model odbicia światła Phonga oblicza oświetlenie jednego punktu na powierzchni (zależnie od normalnej powierzchni) Żeby cały wielokąt oświetlić potrzebujemy metodę cieniowania tego wielokąta Podstawowe metody cieniowania: Płaskie cieniowanie (cieniowanie Lamberta) Cieniowanie Gourauda Cieniowanie Phonga

Cieniowanie płaskie Cieniowanie płaskie zakłada ze wszystkie piksele wielokąta są oświetlone równomiernie Model odbicia światła oblicza oświetlenie dla wszystkich pikseli

Pasmo Macha

Luminancja Pasmo Macha wrażenie faktycznie

Rozwiązanie: więcej wielokątów

Cieniowanie Gourauda Cieniowanie Gourauda oblicza oświetlenie dla wierzchołków wielokąta i następnie liniowo interpoluje wartości oświetlenia we wszystkich pikseli wielokąta IP obliczany przez uśrednianie IA i IB powierzchnia piksel

Uśrednianie intensywności Gdy I jest intensywność oświetlenia w danym punkcie P: I A,i+1 = I A,i ΔI A I B,i+1 = I B,i ΔI B I C,i+1 = I C,i ΔI C Gdzie I A = I 3 I 1 y 3 y 1, I B = I 3 I 2 y 3 y 2, I C = x B x A I B I A

Cieniowanie Gourauda

Cieniowanie Phonga W cieniowaniu Phonga (nie pomylić z modelem odbicia światła Phonga) interpolujemy wektory normalne wszystkich pikseli wielokąta IP obliczany przez model Phonga (na podstawie normalnej NP) powierzchnia piksel

Uśrednianie normalnych Gdy n jest wektor normalny w danym punkcie: n A,i+1 = n A,i Δn A n B,i+1 = n B,i Δn B n C,i+1 = n C,i Δn C Gdzie n A = n 3 n 1 y 3 y 1, n B = n 3 n 2 y 3 y 2, n C = n B n A x B x A

OpenGL Interpolacja normalnych

płaskie Gouraud Phong