GRK 2. dr Wojciech Palubicki

Podobne dokumenty
Grafika komputerowa i wizualizacja. dr Wojciech Pałubicki

GRK 3. Dr Wojciech Palubicki

Transformacje obiektów 3D

GRK 4. dr Wojciech Palubicki

Ćwiczenia nr 4. TEMATYKA: Rzutowanie

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

Wykład 4. Rendering (1) Informacje podstawowe

Trójwymiarowa grafika komputerowa rzutowanie

Przekształcenia geometryczne. Mirosław Głowacki Wydział Inżynierii Metali i Informatyki Przemysłowej

2 Przygotował: mgr inż. Maciej Lasota

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

Programowanie Procesorów Graficznych

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

Przekształcenia geometryczne w grafice komputerowej. Marek Badura

GRK 5. dr Wojciech Palubicki

Krystalochemia białek 2016/2017

FIGURY I PRZEKSZTAŁCENIA GEOMETRYCZNE

GRK 5. dr Wojciech Palubicki

Przekształcenia liniowe

gdzie (4.20) (4.21) 4.3. Rzut równoległy

Baza w jądrze i baza obrazu ( )

Elementy grafiki komputerowej. Elementy geometrii afinicznej

Układy równań i nierówności liniowych

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych

Przekształcanie równań stanu do postaci kanonicznej diagonalnej

Andrzej Marciniak GRAFIKA KOMPUTEROWA. Wykłady dla studentów kierunku informatyka Państwowej Wyższej Szkoły Zawodowej w Kaliszu

Wykład 5. Komórka elementarna. Sieci Bravais go

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

Wektory i macierze w OpenGL

3. Macierze i Układy Równań Liniowych

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Robert Susmaga. Instytut Informatyki ul. Piotrowo 2 Poznań

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

TEMAT: PRZEKSZTAŁCENIA WYKRESÓW FUNKCJI PRZESUNIĘCIE O WEKTOR

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

Obraz jako funkcja Przekształcenia geometryczne

Grafika komputerowa Wykład 4 Geometria przestrzenna

1. Prymitywy graficzne

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

Układy równań liniowych. Ax = b (1)

Grafika 2D. Animacja Zmiany Kształtu. opracowanie: Jacek Kęsik

3. FUNKCJA LINIOWA. gdzie ; ół,.

Przykład zastosowania poleceń 3DWYRÓWNAJ i RÓŻNICA

Informatyka Stosowana. a b c d a a b c d b b d a c c c a d b d d c b a

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

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

Ćwiczenia nr 7. TEMATYKA: Krzywe Bézier a

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

Transformacje. dr Radosław Matusik. radmat

Podstawy robotyki. Wykład II. Robert Muszyński Janusz Jakubiak Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska

Notacja Denavita-Hartenberga

Funkcje liniowe i wieloliniowe w praktyce szkolnej. Opracowanie : mgr inż. Renata Rzepińska

Modelowanie i wizualizowanie 3W-grafiki. Transformacje. Aleksander Denisiuk. denisjuk@matman.uwm.edu.pl

14. Przestrzenie liniowe

Kalibracja kamery. Kalibracja kamery

POD- I NADOKREŚLONE UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Analiza głównych składowych- redukcja wymiaru, wykł. 12

OpenGL i wprowadzenie do programowania gier

2 1 3 c c1. e 1, e 2,..., e n A= e 1 e 2...e n [ ] M. Przybycień Matematyczne Metody Fizyki I

Reprezentacja i analiza obszarów

PODSTAWY RACHUNKU WEKTOROWEGO

Geometria Analityczna w Przestrzeni

Przekształcenia liniowe

1. PODSTAWY TEORETYCZNE

Reprezentacja i analiza obszarów

Zad. 5: Rotacje 3D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Algebra liniowa z geometrią

Ćwiczenie nr 2 - Rysowanie precyzyjne

[ A i ' ]=[ D ][ A i ] (2.3)

Grafika 2D. Przekształcenia geometryczne 2D. opracowanie: Jacek Kęsik

Wykład 5. Metoda eliminacji Gaussa

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

Rozdział 4. Macierze szyfrujące. 4.1 Algebra liniowa modulo 26

spis treści 1 Zbiory i zdania... 5

Wykład Matematyka A, I rok, egzamin ustny w sem. letnim r. ak. 2002/2003. Każdy zdający losuje jedno pytanie teoretyczne i jedno praktyczne.

Rozszerzony konspekt preskryptu do przedmiotu Podstawy Robotyki

Maszyny technologiczne. dr inż. Michał Dolata

Obrót wokół początku układu współrzędnych o kąt φ można wyrazić w postaci macierzowej następująco

Zapisujemy:. Dla jednoczesnego podania funkcji (sposobu przyporządkowania) oraz zbiorów i piszemy:.

OPISY PRZESTRZENNE I PRZEKSZTAŁCENIA

Mobilne Aplikacje Multimedialne

Bartosz Bazyluk OpenGL Współczesne podejście do programowania grafiki Część II: Programy cieniujące (shadery)

GRAKO: PODSTAWY GRAFIKI 3W. Przekształcenia 3W Modelowanie Metody renderingu Przykłady

Funkcje analityczne. Wykład 4. Odwzorowania wiernokątne. Paweł Mleczko. Funkcje analityczne (rok akademicki 2017/2018)

Rzutowanie DOROTA SMORAWA

GRAFIKA KOMPUTEROWA podstawy matematyczne. dr inż. Hojny Marcin pokój 406, pawilon B5 Tel.

Akademia Górniczo-Hutnicza

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

GEOMETRIA ANALITYCZNA W PRZESTRZENI

Macierzowe algorytmy równoległe

Rozdział 8 Wzory na macierze OpenGL

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Zapisz za pomocą spójników logicznych i kwantyfikatorów: x jest większe niż 6 lub mniejsze niż 4

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4)

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

I. Potęgi. Logarytmy. Funkcja wykładnicza.

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

1. Potęgi. Logarytmy. Funkcja wykładnicza

ALGEBRA LINIOWA 2. Lista zadań 2003/2004. Opracowanie : dr Teresa Jurlewicz, dr Zbigniew Skoczylas

1 Logika (3h) 1.1 Funkcje logiczne. 1.2 Kwantyfikatory. 1. Udowodnij prawa logiczne: 5. (p q) (p q) 6. ((p q) r) (p (q r)) 3.

Transkrypt:

GRK dr Wojciech Palubicki

Macierz wektor produkt jako Transformacja T: R n R m T Ԧx = A Ԧx

Przemieszczanie wierzchołków - Transformacje Skalowanie Rotacja Translacja

-y -y Macierz rotacji M wobec punktu P (x, y ) +y +y -x +x M -x +x

-y -y Macierz rotacji M wobec punktu P (x, y ) 1. Translacja to początku: T( x, y ) +y +y -x +x M -x +x

Macierz rotacji M wobec punktu P (x, y ) 1. Translacja to początku: T( x, y ). Rotacja o kat θ: R θ +y +y M -x +x -x +x -y -y

Macierz rotacji M wobec punktu P (x, y ) 1. Translacja to początku: T( x, y ). Rotacja o kat θ: R θ 3. Translacja do punktu P : T x, y +y +y M -x +x -x +x -y -y

Macierz rotacji M wobec punktu P (x, y ) 1. Translacja to początku: T( x, y ). Rotacja o kat θ: R θ 3. Translacja do punktu P : T x, y M = T x, y R θ T( x, y ) +y +y M -x +x -x +x -y -y

Uproszczony Potok Graficzny (Rendering) Model Matrix View Matrix Projection Matrix Viewport Transform Object Space World Space View Space Clip Space Screen Space

World space transformation WS Object Space World Space

World space D

+y -x +x

+y e -x +x

g +y e -x +x

Bryla widzenia (view frustum) g +y e -x +x

Bryla widzenia (view frustum) g +y e Płaszczyzna daleka (far plane) -x +x

g +y e near plane far plane -x +x

g FoV +y e near plane far plane -x +x

Pole widzenia (Field of View - FoV)

Pole widzenia (Field of View - FoV)

Transformacja kamery Bryla widzenia: g

Transformacja kamery Bryla widzenia: górna płaszczyzna t t g

Transformacja kamery Bryla widzenia: górna płaszczyzna t dolna płaszczyzna b g t b

Transformacja kamery Bryla widzenia: górna płaszczyzna t dolna płaszczyzna b bliska płaszczyzna n g t n b

Transformacja kamery Bryla widzenia: górna płaszczyzna t dolna płaszczyzna b bliska płaszczyzna n daleka płaszczyzna f t g n f b

Transformacja kamery Bryla widzenia: górna płaszczyzna t dolna płaszczyzna b bliska płaszczyzna n daleka płaszczyzna f lewa płaszczyzna l prawa płaszczyzna r t g n f b

Transformacja kamery g +y -x +x

Transformacja kamery +y -x g +x -y

Płaszczyzna rzutowania +y -x g +x Image/view plane -y

Płaszczyzna rzutowania +y -x g +x Image/view plane -y

Rzutowanie równolegle +y -x g +x Image/view plane -y

Rzutowanie perspektywiczne +y -x g +x Image/view plane -y

Rzutowania Perspektywicznie rzutowanie Ortograficzne rzutowanie

Rzutowanie ortograficzne +y -z g +z image plane -y

Rzutowanie nie-ortograficzne +y -z g +z image plane -y

Rzutowanie ortograficzne View frustum g Orthographic view volume g

Bryla kanoniczna +y +y -z g +z g +z -y Orthographic view volume -y Canonical view volume

Bryla kanoniczna

Viewport transformation -z +z -z +z

Viewport transformation -x +x

Viewport transformation +y -x +x -x +x -y

Viewport transformation +y -x +x -x +x -y

Potok graficzny World space Każdy krok będziemy chcieli wyrazić za pomocy operacji macierzowej. Cały potok może być wykonany za pomocy jednej operacji macierzy.

Potok graficzny Camera/view space Każdy krok będziemy chcieli wyrazić za pomocy operacji macierzowej. Cały potok może być wykonany za pomocy jednej operacji macierzy.

Potok graficzny Każdy krok będziemy chcieli wyrazić za pomocy operacji macierzowej. Cały potok może być wykonany za pomocy jednej operacji macierzy. Orthographic view volume

Potok graficzny Każdy krok będziemy chcieli wyrazić za pomocy operacji macierzowej. Cały potok może być wykonany za pomocy jednej operacji macierzy. Canonical view volume

Potok graficzny Każdy krok będziemy chcieli wyrazić za pomocy operacji macierzowej. Cały potok może być wykonany za pomocy jednej operacji macierzy. Window space

Potok graficzny D Każdy krok będziemy chcieli wyrazić za pomocy operacji macierzowej. Cały potok może być wykonany za pomocy jednej operacji macierzy. 4D

Bryla kanoniczna Bryła kanoniczna to sześcian x x ze środkiem w początku Bryła widzenia została przekształcona do postaci takiego sześcianu

Bryla kanoniczna Bryła kanoniczna to sześcian x x ze środkiem w początku Bryła widzenia została przekształcona do postaci takiego sześcianu Ucinamy współrzędną z

Przekształcenie bryły kanonicznej Musimy odwzorować kwadrat [-1, 1] na czworokąt [, n x ] x [, n y ] n y n x

Przekształcenie bryły kanonicznej Musimy odwzorować kwadrat [-1, 1] na czworokąt [, n x ] x [, n y ] Następująca macierz transformacji dokonuje skalowania: n x n y 1 n y n x

Przekształcenie bryły kanonicznej n x, n y Musimy odwzorować kwadrat [-1, 1] na czworokąt [, n x ] x [, n y ] Następująca macierz transformacji dokonuje skalowania: n x, n y n x n y 1 n y n x

Przekształcenie bryły kanonicznej n x, n y Musimy odwzorować kwadrat [-1, 1] na czworokąt [, n x ] x [, n y ] Następująca macierz transformacji dokonuje translacji: n x, n y 1 n x 1 n y 1 n y n x

n x,n y Przekształcenie bryły kanonicznej Musimy odwzorować kwadrat [-1, 1] na czworokąt [, n x ] x [, n y ] Następująca macierz transformacji tego dokonuje:, n x n x n y n y 1 n y n x

Przekształcenie bryły kanonicznej W praktyce piksele reprezentują współrzędne jednostki integer, czyli musimy przekształcać do [ 1, n x 1 ] x [ 1, n y 1 ] Wtedy: n x n x 1 n y n y 1 1 n y n x

Przekształcenie bryły kanonicznej Rzutowanie dokonaliśmy przy odrzuceniu współrzędnej z Ale chcemy nadal być wstanie konkatenować naszą macierz z innymi, czyli ostateczna postać naszej macierzy to 4D: M vp = n x n y n x 1 n y 1 1 1

Ortograficzna bryła widzenia Najpierw musimy środek do początku przenieść

Ortograficzna bryła widzenia Najpierw musimy środek do początku przenieść b + t 1 l+r l+r l+r 1 b+t 1 l+r b+t n+f 1

Ortograficzna bryła widzenia Najpierw musimy środek do początku przenieść b + t n + f 1 l+r l+r l+r 1 b+t 1 l+r b+t n+f 1

Ortograficzna bryła widzenia Najpierw musimy środek do początku przenieść b + t n + f 1 l+r l+r l+r 1 b+t 1 l+r b+t n+f 1

Ortograficzna bryła widzenia Najpierw musimy środek do początku przenieść b + t n + f 1 l+r l+r l+r 1 b+t 1 l+r b+t n+f 1

Ortograficzna bryła widzenia Potem musimy wszystko skalować do [-1, 1]: b + t n + f

Ortograficzna bryła widzenia Potem musimy wszystko skalować do [-1, 1]: b + t n + f r l l+r l+r b+t t b n f l+r b+t n f 1

Ortograficzna bryła widzenia Konkatenujemy macierze żeby uzyskać jedną macierz transformacji do ortograficznej bryły widzenia: M orth = r l l+r l+r b+t t b n f l+r b+t n f 1 1 l+r l+r l+r 1 b+t l+r b+t 1 n+f 1 = r l l+r l+r t b b+t n f l+r r l b+t t b n+f n f 1

Ortograficzna bryła widzenia Konkatenujemy macierze żeby uzyskać jedną macierz transformacji do ortograficznej bryły widzenia: M orth = r l l+r l+r b+t t b n f l+r b+t n f 1 1 l+r l+r l+r 1 b+t l+r b+t 1 n+f 1 = r l l+r l+r t b b+t n f l+r r l b+t t b n+f n f 1

Potok graficzny Czyli ostatni krok jest: x piksel y piksel z kanoniczny 1 = M vp M orth x y z 1 M ort M vp

Potok graficzny Transformacja: x piksel y piksel z kanoniczny 1 = M vp M ort x y z 1 M ort M vp

Wyrównanie systemów współrzędnych World space: Wektory, Ԧx, Ԧy, i Ԧz y e g Camera space: Wektory Ԧe, i Ԧg -z y g -z

Wyrównanie systemów współrzędnych Żeby jedną przestrzeń na drugą przestrzeń przekształcić potrzebujemy jednego systemu współrzędnych dla obydwóch przestrzeni y v u x z g Układ świata Układ kamery

Wyrównanie systemów współrzędnych Pierwszy wektor bazowy: Ԧt Ԧg = u Drugi wektor bazowy: Ԧg u = Ԧv u t v Trzeci wektor bazowy: Ԧg: = w w

Wyrównanie systemów współrzędnych Wyrównać początki naszych systemów współrzędnych Wyrównać wektory bazowe v e +y w +z -z -y

Wyrównanie systemów współrzędnych Wyrównanie początków przez translacje: v 1 1 e x e y 1 e z 1 e +y w +y v +z -z +z w -z -y -y

Wyrównanie systemów współrzędnych Rotacja w przeciwnym kierunku jest trywialna: u x v x w x u y v y w y u z v z w z 1 +y v +z w -z -y

Wyrównanie systemów współrzędnych Macierz odwrotna w przypadku ortonormalnej bazy to transpozycja tej macierzy (wektory u,v,w muszą być znormalizowane): u x u y u z v x v y v z w x w y w z 1 u u w w

Wyrównanie systemów współrzędnych Macierz transformacji z world space na view space jest wtedy: M cam = u x u y u z v x v y v z w y w z 1 w x 1 1 e x e y 1 e z 1

Rzutowanie ortograficzne x piksel y piksel z kanoniczny 1 = M vp M orth M cam x y z 1

Rzutowanie równoległe The Simpons Tapped Out

Rzutowanie równoległe y g -z

Rzutowanie perspektywiczne Co jest perspektywa? Wielkość obiektu jest proporcjonalna do dystansu.

Potok graficzny

Potok graficzny Dodać perspektywę

Transformacja bryły widzenia Bryla widzenia Ortograficzna bryła widzenia

Transformacja bryły widzenia Bryla widzenia Ortograficzna bryła widzenia

e view plane far plane

e view plane far plane

e view plane far plane

Rzutowanie na płaszczyznę y y p e g View plane

Rzutowanie na płaszczyznę y y p e g d z View plane

Rzutowanie na płaszczyznę y y p y = d z czyli y p e g d z View plane

Rzutowanie na płaszczyznę y y p y = d z czyli y p y p = d z y e g d z View plane

Założenia Przyjmujemy ze: Patrzymy w kierunku negatywnej osi z Rzutujemy na powierzchnie bliską (near plane) Czyli dystans d = -n, co znaczy: x p = d z x = n z x y p = d z y = n z y

Założenia Przyjmujemy ze: Patrzymy w kierunku negatywnej osi z Rzutujemy na powierzchnie bliską (near plane) Czyli dystans d = -n, co znaczy: x p = d z x = n z x y p = d z y = n z y

Założenia Przyjmujemy ze: Patrzymy w kierunku negatywnej osi z Rzutujemy na powierzchnie bliską (near plane) Czyli dystans d = -n, co znaczy: x p = d z x = n z x y p = d z y = n z y M x y z 1 = nx z ny z z 1

System współrzędnych jednorodnych Nasze multiplikacje macierzami to liniowe transformacje, tzn. tylko mogą wygenerować wartości jak np.: x = a 1 x + b 1 y + c 1 z Wprowadzenie współrzędnych jednorodnych umożliwia reprezentacje punktów (x, y, z) jako (x, y, z, 1) i umożliwia nam skorzystanie z afinicznych transformacji, np.: x = a 1 x + b 1 y + c 1 z + d 1

System współrzędnych jednorodnych Nasze multiplikacje macierzami to liniowe transformacje, tzn. tylko mogą wygenerować wartości jak np.: x = a 1 x + b 1 y + c 1 z Wprowadzenie współrzędnych jednorodnych umożliwia reprezentacje punktów (x, y, z) jako (x, y, z, 1) i umożliwia nam skorzystanie z afinicznych transformacji, np.: x = a 1 x + b 1 y + c 1 z + d 1

System współrzędnych jednorodnych We współrzędnych jednorodnych wektor (x, y, z, 1) reprezentuje punkt (x, y, z) Teraz wprowadzamy możliwość reprezentacji punktów za pomocy (x, y, z, w) co daje nam punkt ( x w, y w, z w ) jednorodny kartezjański

System współrzędnych jednorodnych Wtedy transformacja macierzowa staje się: x y z 1 = a 1 b 1 c 1 T x a b c T y a 3 b 3 c 3 T z a 4 b 4 w c 4 x y z 1 = a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w homogenizacja a 1 x+b 1 y+c 1 z+t x a 4 x+b 4 y+c 4 z+w a x+b y+c z+t y a 4 x+b 4 y+c 4 z+w a 3 x+b 3 y+c 3 z+t z a 4 x+b 4 y+c 4 z+w 1

System współrzędnych jednorodnych Wtedy transformacja macierzowa staje się: x y z 1 = a 1 b 1 c 1 T x a b c T y a 3 b 3 c 3 T z a 4 b 4 w c 4 x y z 1 = a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w homogenizacja a 1 x+b 1 y+c 1 z+t x a 4 x+b 4 y+c 4 z+w a x+b y+c z+t y a 4 x+b 4 y+c 4 z+w a 3 x+b 3 y+c 3 z+t z a 4 x+b 4 y+c 4 z+w 1

System współrzędnych jednorodnych Wtedy transformacja macierzowa staje się: x y z 1 = a 1 b 1 c 1 T x a b c T y a 3 b 3 c 3 T z a 4 b 4 w c 4 x y z 1 = a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w homogenizacja a 1 x+b 1 y+c 1 z+t x a 4 x+b 4 y+c 4 z+w a x+b y+c z+t y a 4 x+b 4 y+c 4 z+w a 3 x+b 3 y+c 3 z+t z a 4 x+b 4 y+c 4 z+w 1

System współrzędnych jednorodnych Wtedy transformacja macierzowa staje się: x y z 1 = a 1 b 1 c 1 T x a b c T y a 3 b 3 c 3 T z a 4 b 4 w c 4 x y z 1 = a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w homogenizacja a 1 x+b 1 y+c 1 z+t x a 4 x+b 4 y+c 4 z+w a x+b y+c z+t y a 4 x+b 4 y+c 4 z+w a 3 x+b 3 y+c 3 z+t z a 4 x+b 4 y+c 4 z+w 1

System współrzędnych jednorodnych Wtedy transformacja macierzowa staje się: x y z 1 = a 1 b 1 c 1 T x a b c T y a 3 b 3 c 3 T z a 4 b 4 w c 4 x y z 1 = a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w a 1 x + b 1 y + c 1 z + T x a x + b y + c z + T y a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w Układ współrzędnych jednorodnych homogenizacja a 1 x+b 1 y+c 1 z+t x a 4 x+b 4 y+c 4 z+w a x+b y+c z+t y a 4 x+b 4 y+c 4 z+w a 3 x+b 3 y+c 3 z+t z a 4 x+b 4 y+c 4 z+w 1 Układ współrzędnych kartezjańskich

System współrzędnych jednorodnych Wprowadzenie transformacji rzutowania (homografia) umożliwia nam stworzyć wartości jak np.: x = a 1x + b 1 y + c 1 z + T x a 4 x + b 4 y + c 4 z + w

System współrzędnych jednorodnych Wprowadzenie transformacji rzutowania (homografia) umożliwia nam stworzyć wartości jak np.: x = a 1x + b 1 y + c 1 z + T x a 4 x + b 4 y + c 4 z + w nx z ny z z 1

Transformacja bryły widzenia Kalkulacja: a 1 x + b 1 y + c 1 z + T x a 4 x + b 4 y + c 4 z + w a x + b y + c z + T y a 4 x + b 4 y + c 4 z + w a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w 1 Cel: nx z ny z z 1

Transformacja bryły widzenia Kalkulacja: a 1 x + b 1 y + c 1 z + T x a 4 x + b 4 y + c 4 z + w a x + b y + c z + T y a 4 x + b 4 y + c 4 z + w a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w 1 Cel: nx z ny z z 1......... 1 x y z 1 Czwarty wiersz

Transformacja bryły widzenia Kalkulacja: a 1 x + b 1 y + c 1 z + T x a 4 x + b 4 y + c 4 z + w a x + b y + c z + T y a 4 x + b 4 y + c 4 z + w a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w 1 Cel: nx z ny z z 1......... 1 x y z 1 Czwarty wiersz

Transformacja bryły widzenia Kalkulacja: a 1 x + b 1 y + c 1 z + T x a 4 x + b 4 y + c 4 z + w a x + b y + c z + T y a 4 x + b 4 y + c 4 z + w a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w 1 Cel: nx z ny z z 1......... 1 x y z 1 n. n... 1 x y z 1 Czwarty wiersz Pierwszy i drugi wiersz

Transformacja bryły widzenia Kalkulacja: a 1 x + b 1 y + c 1 z + T x a 4 x + b 4 y + c 4 z + w a x + b y + c z + T y a 4 x + b 4 y + c 4 z + w a 3 x + b 3 y + c 3 z + T z a 4 x + b 4 y + c 4 z + w 1 Cel: nx z ny z z 1......... 1 x y z 1 n. n... 1 x y z 1 Czwarty wiersz Pierwszy i drugi wiersz

Co z trzecim wierszem? nx n n x y z ny???? 1 z 1 z z 1

Transformacja bryły widzenia e near plane n far plane f

Transformacja bryły widzenia z p = f z e z p near plane n far plane f

Transformacja bryły widzenia z p = n e z z p near plane n far plane f

Transformacja bryły widzenia z p [n, f] z e z p near plane n far plane f

Transformacja bryły widzenia z p [n, f] z e z p near plane n far plane f

Transformacja bryły widzenia z p ma zachowac porzadek wierzcholkow z e z p near plane n far plane f

Transformacja bryły widzenia z p = nf z [n, f] e z z p near plane n far plane f

Transformacja bryły widzenia z p = n + f nf z e z z p near plane n far plane f

Zachowanie porządku wierzchołków z p = n + f fn z Porządek wzdłuż osi z jest zachowany gdy > n z 1 > z f to z 1p > z p z 1p z p = fn z fn z 1 = (z 1 z )fn z 1 z Bo f, z 1, z, n < mamy fn z 1 z > i bo z 1 > z mamy z 1 z > Czyli z 1p > z p

Zachowanie porządku wierzchołków z p = n + f fn z Porządek wzdłuż osi z jest zachowany gdy > n z 1 > z f to z 1p > z p z 1p z p = fn z fn z 1 = (z 1 z )fn z 1 z Bo f, z 1, z, n < mamy fn z 1 z > i bo z 1 > z mamy z 1 z > Czyli z 1p > z p

Zachowanie porządku wierzchołków z p = n + f fn z Porządek wzdłuż osi z jest zachowany gdy > n z 1 > z f to z 1p > z p z 1p z p = fn z fn z 1 = (z 1 z )fn z 1 z Bo f, z 1, z, n < mamy fn z 1 z > i bo z 1 > z mamy z 1 z > Czyli z 1p > z p

Zachowanie porządku wierzchołków z p = n + f fn z Porządek wzdłuż osi z jest zachowany gdy > n z 1 > z f to z 1p > z p z 1p z p = fn z fn z 1 = (z 1 z )fn z 1 z Bo f, z 1, z, n < mamy fn z 1 z > i bo z 1 > z mamy z 1 z > Czyli z 1p > z p

Zachowanie porządku wierzchołków z p = n + f fn z Porządek wzdłuż osi z jest zachowany gdy > n z 1 > z f to z 1p > z p z 1p z p = fn z fn z 1 = (z 1 z )fn z 1 z Bo f, z 1, z, n < mamy fn z 1 z > i bo z 1 > z mamy z 1 z > Czyli z 1p > z p

Transformacja bryły widzenia z p = n + f fn z z p ~ 1 z

Transformacja bryły widzenia z p = n + f fn z z p ~ 1 z z p z

Macierz P n n n + f nf 1 x y z 1 = nx z ny z n f + nf z 1

Macierz P n n n + f nf 1 x y z 1 = nx z ny z n + f nf z 1

Macierz transformacji perspektywicznej Czyli nasza końcowa macierz transformacji perspektywicznej M pers jest wtedy: n M per = M orth P = M n orth n f nf 1 = n r l n t b l+r l r b+t b t f+n n f 1 fn f n

Macierz transformacji perspektywicznej Czyli nasza końcowa macierz transformacji perspektywicznej M pers jest wtedy: n M per = M orth P = M n orth n + f nf 1 = n r l n t b l+r l r b+t b t f+n n f 1 fn f n

Macierz transformacji perspektywicznej Czyli nasza końcowa macierz transformacji perspektywicznej M pers jest wtedy: n M per = M orth P = M n orth n + f nf 1 = n r l n t b l+r l r b+t b t f+n n f 1 fn f n

Potok graficzny Potok graficzny z ortograficznym rzutem: x y M vp M ort M cam z 1 Potok graficzny z perspektywicznym rzutem: x y M vp M per M cam z 1

Współrzędne jednorodne D

Współrzędne jednorodne Współrzędne jednorodne 3D

Współrzędne jednorodne Ścięcie

Współrzędne jednorodne Translacja w D

Współrzędne jednorodne D: w 1 (x)

Współrzędne jednorodne w 1 (x, 1) (x)

Współrzędne jednorodne w 1 (x, 1) (x+d, 1) (x)

Współrzędne jednorodne w 1 (x, 1) (x+d, 1) (x) (x+d)

Współrzędne jednorodne w 1 (x, 1) (x+d, 1) (ẋ/w, 1) (x) (x+d) (x)

Współrzędne jednorodne w 1 (x, 1) (x+d, 1) (ẋ/w, 1) (x) (x+d) (x)

Współrzędne jednorodne w 1 (ẋ, w) (x, 1) (x+d, 1) (ẋ/w, 1) (x) (x+d) (x) (x)

Współrzędne jednorodne w 1 (ẋ, w) (ẋ+ḋ, w) (x, 1) (x+d, 1) (ẋ/w, 1) (x) (x+d) (x) (x)

Współrzędne jednorodne w 1 (ẋ, w) (ẋ+ḋ, w) (x, 1) (x+d, 1) (ẋ/w, 1) ((ẋ+ḋ)/w, 1) (x) (x+d) (x) (x)

Współrzędne jednorodne w 1 (ẋ, w) (ẋ+ḋ, w) (x, 1) (x+d, 1) (ẋ/w, 1) ((ẋ+ḋ)/w, 1) (x) (x+d) (x) (x) (x+d)

August Möbius https://en.wikipedia.org/wiki/homogeneous_coordinates

Rysowanie na ekranie Żeby narysować linie na ekranie możemy się wtedy posługiwać następującym pseudokodem: compute M vp compute M per compute M cam M = M vp M per M cam for each line segment (a, b) do p = M a q = M b drawline(p x /p w, p y /p w, q x /q w, q y /q w )