Grafika komputerowa i wizualizacja. dr Wojciech Pałubicki

Podobne dokumenty
GRK 2. dr Wojciech Palubicki

GRK 4. dr Wojciech Palubicki

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

GRK 3. Dr Wojciech Palubicki

GRK 5. dr Wojciech Palubicki

GRK 5. dr Wojciech Palubicki

Grafika komputerowa i wizualizacja

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

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

Transformacje obiektów 3D

GRAFIKA CZASU RZECZYWISTEGO Podstawy syntezy grafiki 3D i transformacji geometrycznych

Wykład 4. Rendering (1) Informacje podstawowe

Wprowadzenie do grafiki komputerowej. W. Alda

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

Analiza Matematyczna Praca domowa

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

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

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2013/2014

Wprowadzenie. Artur Staszczyk Bartłomiej Filipek

Modelowanie i wstęp do druku 3D Wykład 1. Robert Banasiak

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

Plan wykładu. Akcelerator 3D Potok graficzny

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

Wektory i macierze w OpenGL

PRZEWODNIK PO PRZEDMIOCIE

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

(4) (b) m. (c) (d) sin α cos α = sin 2 k = sin k sin k. cos 2 m = cos m cos m. (g) (e)(f) sin 2 x + cos 2 x = 1. (h) (f) (i)

Wizualizacja 3D obiektów i systemów biomedycznych

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

Przekształcenia geometryczne w grafice komputerowej. Marek Badura

PRZYDATNE WZORY SYMBOLE PUNKTY I LINIE

Obraz jako funkcja Przekształcenia geometryczne

KARTA KURSU. Grafika komputerowa

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

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

Karty graficzne możemy podzielić na:

Wykład 5. Rendering (2) Geometria

1. Prymitywy graficzne

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

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

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

Ćwiczenia nr 4. TEMATYKA: Rzutowanie

Temat: Transformacje 3D

Architektura Procesorów Graficznych

GRAFIKA CZASU RZECZYWISTEGO Wprowadzenie do OpenGL

Lista nr 1 - Liczby zespolone

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

Programy CAD Modelowanie geometryczne

Programy CAD Modelowanie geometryczne

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

3. PŁASKI STAN NAPRĘŻENIA I ODKSZTAŁCENIA

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

Programowanie Procesorów Graficznych

Zad. 6: Sterowanie robotem mobilnym

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013. Forma studiów: Stacjonarne Kod kierunku: 11.

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

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

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

Grafika Komputerowa, Informatyka, I Rok

Algebra linowa w pigułce

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 i wprowadzenie do programowania gier

Autodesk 3D Studio MAX Animacja komputerowa i praca kamery

Gry Komputerowe Interaktywna kamera FPP

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

SYNTEZA OBRAZU. Wprowadzenie. Synteza obrazu

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

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

Opis efektów kształcenia dla modułu zajęć

PLPILA02-IPMIBM-I-5s6-2012MKwPM-S

ALGORYTM STATYCZNEJ ANALIZY MES DLA KRATOWNICY

Bartosz Bazyluk Wprowadzenie Organizacja i tematyka zajęć, warunki zaliczenia.

Rok akademicki: 2017/2018 Kod: JFM s Punkty ECTS: 7. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

Układy równań liniowych, macierze, Google

SYLABUS/KARTA PRZEDMIOTU

Wprowadzenie do QT OpenGL

Przykładowe zadania na egzamin z matematyki - dr Anita Tlałka - 1

PRZEWODNIK PO PRZEDMIOCIE

PRZEWODNIK PO PRZEDMIOCIE

Przestrzenie liniowe

Aby przygotować się do kolokwiów oraz do egzaminów należy ponownie przeanalizować zadania

Techniki animacji komputerowej

Lista 6. Kamil Matuszewski 13 kwietnia D n =

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

D l. D p. Rodzaje baz jezdnych robotów mobilnych

Synteza i obróbka obrazu. Modelowanie obiektów 3D

GRUPA 1 (Szczegółowa specyfikacja w Załączniku nr 8.1)

Autodesk 3D Studio MAX Teksturowanie modeli 3D

Zaawansowane systemy programowania grafiki. Wprowadzenie. Podstawy OpenGL

Graficzny edytor cieniowania

dr inż. Jacek Dąbrowski, KSG

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

Wstęp do grafiki komputerowej i geometrii obliczeniowej. Jakub Maksymiuk

Grafika 3D i multimedia

Transformacje. dr Radosław Matusik. radmat

AUTORKA: ELŻBIETA SZUMIŃSKA NAUCZYCIELKA ZESPOŁU SZKÓŁ OGÓLNOKSZTAŁCĄCYCH SCHOLASTICUS W ŁODZI ZNANE RÓWNANIA PROSTEJ NA PŁASZCZYŹNIE I W PRZESTRZENI

SYSTEMY PROJEKCJI STEREOSKOPOWEJ W ANIMACJACH KOMPUTEROWYCH. Techniki projekcji Generowanie wizyjnego sygnału stereoskopowego Instalacje mobilne

Programowanie dynamiczne i modele rekurencyjne w ekonomii Wykład 2

Blok III: Funkcje elementarne. e) y = 1 3 x. f) y = x. g) y = 2x. h) y = 3x. c) y = 3x + 2. d) y = x 3. c) y = x. d) y = x.

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015. Forma studiów: Stacjonarne Kod kierunku: 11.

Transkrypt:

Grafika komputerowa i wizualizacja dr Wojciech Pałubicki

Grafika komputerowa Obrazy wygenerowane za pomocy komputera Na tych zajęciach skupiamy się na obrazach wygenerowanych ze scen 3D do interaktywnych aplikacji 3D scena Rendering 2D obraz

Filmy, specjalne efekty

Filmy, specjalne efekty

Gry komputerowe

Symulacje

Symulacje

CAD & CAM Design

Architecture

Wirtualna Rzeczywistość

Wizualizacja

Medical Imaging

Education

Geographic Info Systems & GPS

Aplikacje

Wyświetlacz Podstawowe specyfikacje do wyświetlania obrazów na komputerach to OpenGL i Direct3D 2D, Illustrator, Flash, Fonts,

Co się nauczycie Podstawy komputerowej grafiki Potok graficzny (jak z sceny 3D stworzyć obraz 2D) Podstawy specyfikacji OpenGL Doświadczenie w C++ Podstawy języka programistycznego GLSL który stosuje moc obliczeniowa karty graficznej

Zaliczenie GRK Sprawdziany na ćwiczeniach co dwa tygodnie (70%)

Zaliczenie GRK Sprawdziany na ćwiczeniach co dwa tygodnie (70%) Projekt zaliczeniowy (30%)

Zaliczenie GRK Sprawdziany na ćwiczeniach co dwa tygodnie (70%) Projekt zaliczeniowy (30%) Informacje na stronie: wp.faculty.wmi.amu.edu.pl/grk.html

Jak przedstawić obiekty 3D?

System współrzędny 2D +y -x +x -y

System współrzędny 2D +y -x 1 3 +x -y

System współrzędny 2D +y -x 1 3 +x -y

System współrzędny 2D +y -x 1 3 +x -y

System współrzędny 2D +y -x 1 3 P(3, 1) +x -y

System współrzędny 3D +y -z -x +x +z -y

System współrzędny 3D +y -z P(3, 2, 2.5) -x +x +z -y

System współrzędny 3D +y -z P(3, 2, 2.5) -x 2.5 +x +z -y

System współrzędny 3D +y -z P(3, 2, 2.5) -x 2.5 +x +z -y

System współrzędny 3D +y -z P(3, 2, 2.5) -x 2.5 +x +z -y

Przykład: Piramida

Przykład: Piramida a(0, 1, 0)

Przykład: Piramida a(0, 1, 0) b(0, 0, 1)

Przykład: Piramida a(0, 1, 0) b(0, 0, 1) c(1, 0, 0)

Przykład: Piramida a(0, 1, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0)

Przykład: Piramida a(0, 1, 0) e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0)

Powierzchnia (face) a(0, 1, 0) e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0)

Powierzchnia (face) a(0, 1, 0) e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0) Na przykład: (0, 1, 0) (0, 0, 1) (1, 0, 0)

Powierzchnia (face) a(0, 1, 0) e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0) Na przykład: (0, 1, 0) (0, 0, 1) (1, 0, 0) albo (0, 1, 0) (1, 0, 0) (0, 0, -1)

Powierzchnia (face) Problem: duplikacja wierzchołków! a(0, 1, 0) e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0) Na przykład: (0, 1, 0) (0, 0, 1) (1, 0, 0) albo (0, 1, 0) (1, 0, 0) (0, 0, -1)

Rozwiązanie: nowa struktura danych Bufor wierzchołków przechowuje wierzchołki (vertex buffer): a(0, 1, 0) e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0)

Rozwiązanie: nowa struktura danych Bufor wierzchołków przechowuje wierzchołki (vertex buffer): a(0, 1, 0) [(0,1,0), (0,0,1), (1,0,0), (0,0,-1), (-1,0,0)] e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0)

Rozwiązanie: nowa struktura danych Bufor wierzchołków przechowuje wierzchołki (vertex buffer): a(0, 1, 0) [(0,1,0), (0,0,1), (1,0,0), (0,0,-1), (-1,0,0)] 0 1 2 3 4 e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0)

Rozwiązanie: nowa struktura danych Bufor wierzchołków przechowuje wierzchołki (vertex buffer): a(0, 1, 0) [(0,1,0), (0,0,1), (1,0,0), (0,0,-1), (-1,0,0)] 0 1 2 3 4 e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0) Na przykład: (0, 1, 2)

Rozwiązanie: nowa struktura danych Bufor wierzchołków przechowuje wierzchołki (vertex buffer): a(0, 1, 0) [(0,1,0), (0,0,1), (1,0,0), (0,0,-1), (-1,0,0)] 0 1 2 3 4 e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0) Na przykład: (0, 1, 2)

Rozwiązanie: nowa struktura danych Bufor wierzchołków przechowuje wierzchołki (vertex buffer): a(0, 1, 0) [(0,1,0), (0,0,1), (1,0,0), (0,0,-1), (-1,0,0)] 0 1 2 3 4 e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0) Na przykład: (0, 1, 2) lub (0, 2, 3)

Rozwiązanie: nowa struktura danych Bufor wierzchołków przechowuje wierzchołki (vertex buffer): a(0, 1, 0) [(0,1,0), (0,0,1), (1,0,0), (0,0,-1), (-1,0,0)] 0 1 2 3 4 e(-1, 0, 0) d(0, 0, -1) b(0, 0, 1) c(1, 0, 0)

Trójkąty Spód piramidy

Trójkąty Spód piramidy

Trójkąty - współpłaszczyznowość

Trójkąty - współpłaszczyznowość

Trójkąty - współpłaszczyznowość

Aproksymacja kształtów trójkątami

Aproksymacja kształtów trójkątami

Aproksymacja kształtów trójkątami

Aproksymacja kształtów trójkątami

Wszechświat z wielokątów (trójkątów) http://www.jeroenbackx.com/

Wszechświat z wielokątów (trójkątów) http://www.jeroenbackx.com/

Przemieszczanie wierzchołków?

Przemieszczanie wierzchołków - Transformacje Skalowanie

Przemieszczanie wierzchołków - Transformacje Skalowanie Rotacja

Przemieszczanie wierzchołków - Transformacje Skalowanie Rotacja Translacja

Transformacja f: X Y

Transformacja f: X Y Funkcje o wartościach wektorowych R n = { x 1,, x n : x 1,, x n R}

Transformacja - przykład f: R 3 R 2 f x 1 x 2 = x 1 + 2x 2 x 3x 3 3 f 1 1 1 = 1 + 2 1 3 1 = 3 3

Transformacja - przykład f: R 3 R 2 f x 1 x 2 = x 1 + 2x 2 x 3x 3 3 f 1 1 1 = 1 + 2 1 3 1 = 3 3

Transformacja - przykład f: R 3 R 2 f x 1 x 2 = x 1 + 2x 2 x 3x 3 3 f 1 1 1 = 1 + 2 1 3 1 = 3 3

Transformacja - przykład f: R 3 R 2 f x 1 x 2 = x 1 + 2x 2 x 3x 3 3 f 1 1 1 = 1 + 2 1 3 1 = 3 3

Transformacja - przykład f: R 3 R 2 f x 1 x 2 = x 1 + 2x 2 x 3x 3 3 f 1 1 1 = 1 + 2 1 3 1 = 3 3

Skalowanie +y f x y = x s x y s y a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Skalowanie +y f x y = x 2 y 1 a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Skalowanie +y f b = 1 2 0 1 = 2 0 a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Skalowanie +y f b = 1 2 0 1 = 2 0 a(0, 1) -x c(-1, 0) b(2, 0) +x -y

Skalowanie +y f Ԧc = 1 2 0 1 = 2 0 a(0, 1) -x c(-1, 0) b(2, 0) +x -y

Skalowanie +y f Ԧc = 1 2 0 1 = 2 0 a(0, 1) -x c(-2, 0) b(2, 0) +x -y

Skalowanie +y f Ԧa = 0 2 1 1 = 0 1 a(0, 1) -x c(-2, 0) b(2, 0) +x -y

Skalowanie - XY +y f x y = x 0.5 y 0.5 a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Skalowanie - XY +y f x y = x 0.5 y 0.5 a(0, 0.5) -x c(-0.5, 0) b(0.5, 0) +x -y

Translacja +y f x y = x + T x y + T y a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Translacja +y f x y = x + 1 y a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Translacja +y f b = x + 1 y = 2 0 a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Translacja +y f b = 1 + 1 0 = 2 0 a(0, 1) -x c(-1, 0) b(2, 0) +x -y

Translacja +y f Ԧa = 0 + 1 1 = 1 1 a(1, 1) -x c(-1, 0) b(2, 0) +x -y

Translacja +y f Ԧc = 1 + 1 0 = 0 0 a(1, 1) -x c(0, 0) b(2, 0) +x -y

Translacja - XY +y f x y = x 1 y 1 a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Translacja - XY +y f x y = x 1 y 1 -x a(-1, 0) +x c(-2, -1) b(0, -1) -y

Rotacja +y a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Rotacja δ = 90 +y b(0, 1) -x a(-1, 0) +x c(0, -1) -y

Rotacja o kąt δ Współrzędne biegunowe: x = r cos θ y = r sin θ

Rotacja o kąt δ Współrzędne biegunowe: x = r cos θ y = r sin θ x = r cos θ + δ y = r sin θ + δ

Rotacja o kąt δ Współrzędne biegunowe: x = r cos θ y = r sin θ x = r cos θ + δ = r cos θ cos δ r sin θ sin(δ) y = r sin θ + δ = r sin θ cos δ + r cos θ sin(δ)

Rotacja o kąt δ Współrzędne biegunowe: x = r cos θ y = r sin θ x = r cos θ + δ = r cos θ cos δ r sin θ sin(δ) y = r sin θ + δ = r sin θ cos δ + r cos θ sin(δ) x = x cos δ y = x sin δ y sin(δ) + y cos δ

Rotacja Θ = 90 +y f x y = x cos θ y sin(θ) x sin θ + y cos θ a(0, 1) -x c(-1, 0) b(1, 0) +x -y

Rotacja Θ = 90 +y a(0, 1) f x y = x cos θ y sin(θ) x sin θ + y cos θ f b = 1 0 0 1 1 1 + 0 0 = 0 1 -x c(-1, 0) b(1, 0) +x -y

Rotacja Θ = 90 +y a(0, 1) f x y = x cos θ y sin(θ) x sin θ + y cos θ f Ԧa = 0 0 1 1 0 1 + 1 0 = 1 0 -x c(-1, 0) b(1, 0) +x -y

Rotacja Θ = 90 +y a(0, 1) f x y = x cos θ y sin(θ) x sin θ + y cos θ f Ԧc = 1 0 0 1 1 1 + 0 0 = 0 1 -x c(-1, 0) b(1, 0) +x -y

Rotacja Θ = 90 b(0, 1) +y f x y = x cos θ y sin(θ) x sin θ + y cos θ f Ԧc = 1 0 0 1 1 1 + 0 0 = 0 1 -x a(-1, 0) +x c(0, -1) -y

Rotacja wobec środka obiektu +y -x +x -y

Rotacja wobec środka obiektu Translacja do początku +y -x +x -y

Rotacja wobec środka obiektu Rotacja +y -x +x -y

Rotacja wobec środka obiektu Translacja z powrotem do środka +y -x +x -y

Jak zastosować transformacje jednocześnie? +y +y -x +x Translacja -x +x -y +y -y +y Rotacja -x +x Translacja -x +x -y -y

Jak zastosować transformacje jednocześnie? +y +y -x +x Transformacja -x +x -y -y

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

Macierz wektor produkt jako Transformacja T: R 2 R 2

Macierz wektor produkt jako Transformacja T: R 2 R 2 B = 2 1 3 4 T Ԧx = B Ԧx = 2 1 3 4 x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2 T x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2

Macierz wektor produkt jako Transformacja T: R 2 R 2 B = 2 1 3 4 T Ԧx = B Ԧx = 2 1 3 4 x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2 T x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2

Macierz wektor produkt jako Transformacja T: R 2 R 2 B = 2 1 3 4 T Ԧx = B Ԧx = 2 1 3 4 x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2 T x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2

Macierz wektor produkt jako Transformacja T: R 2 R 2 B = 2 1 3 4 T Ԧx = B Ԧx = 2 1 3 4 x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2 T x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2

Macierz wektor produkt jako Transformacja T: R 2 R 2 B = 2 1 3 4 T Ԧx = B Ԧx = 2 1 3 4 x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2 T x 1 x 2 = 2x 1 x 2 3x 1 + 4x 2

Skalowanie 2D Macierz skalowania: P = s x 0 0 s y x y = s x 0 0 s y s x x + 0 y 0 x + s y y = s x x s y y

Rotacja 2D Macierz rotacji: cos(θ) sin(θ) sin(θ) cos(θ) P = cos(π/4) sin(π/4) sin(π/4) cos(π/4) 1 0 = 1 0 0 1 1 1 + 0 0 = 0 1

Konkatenacja Macierzy Transformacji P = s x 0 0 s y x y = s xx s y y = x y P = cos θ sin θ sin θ cos θ x y = cos θ s x x sin θ s y y sin θ s x x + cos θ s y y To jest to samo co P = cos θ sin θ sin θ cos θ s x 0 0 s y x y = s xcos θ s x sin θ s y sin θ s y cos θ x y

Konkatenacja Macierzy Transformacji P = s x 0 0 s y x y = s xx s y y = x y P = cos θ sin θ sin θ cos θ x y = cos θ s x x sin θ s y y sin θ s x x + cos θ s y y To jest to samo co P = cos θ sin θ sin θ cos θ s x 0 0 s y x y = s xcos θ s x sin θ s y sin θ s y cos θ x y

Konkatenacja Macierzy Transformacji P = s x 0 0 s y x y = s xx s y y = x y P = cos θ sin θ sin θ cos θ x y = cos θ s x x sin θ s y y sin θ s x x + cos θ s y y To jest to samo co P = cos θ sin θ sin θ cos θ s x 0 0 s y x y = s xcos θ s x sin θ s y sin θ s y cos θ x y

Konkatenacja Macierzy Transformacji P = s x 0 0 s y x y = s xx s y y = x y P = cos θ sin θ sin θ cos θ x y = cos θ s x x sin θ s y y sin θ s x x + cos θ s y y To jest to samo co P = cos θ sin θ sin θ cos θ s x 0 0 s y x y = s xcos θ s x sin θ s y sin θ s y cos θ x y

Konkatenacja Macierzy Transformacji P = s x 0 0 s y x y = s xx s y y = x y P = cos θ sin θ sin θ cos θ x y = cos θ s x x sin θ s y y sin θ s x x + cos θ s y y To jest to samo co P = cos θ sin θ sin θ cos θ s x 0 0 s y x y = s xcos θ s x sin θ s y sin θ s y cos θ x y

Konkatenacja Macierzy Transformacji P = s x 0 0 s y x y = s xx s y y = x y P = cos θ sin θ sin θ cos θ x y = cos θ s x x sin θ s y y sin θ s x x + cos θ s y y To jest to samo co (łączność multiplikacji macierzy) P = cos θ sin θ sin θ cos θ s x 0 0 s y x y = s xcos θ s x sin θ s y sin θ s y cos θ x y

Konkatenacja Macierzy Transformacji P = s x 0 0 s y x y = s xx s y y = x y P = cos θ sin θ sin θ cos θ x y = cos θ s x x sin θ s y y sin θ s x x + cos θ s y y To jest to samo co (łączność multiplikacji macierzy) P = cos θ sin θ sin θ cos θ s x 0 0 s y x y = cos θ s x x sin θ s y y sin θ s x x + cos θ s y y x y

Translacja f x y = x + T x y + T y

Translacja f x y = x + T x y + T y nie da się wyrazić takiej transformacji jako multiplikacja z 2D macierzą

Translacja f x y = x + T x y + T y nie da się wyrazić takiej transformacji jako multiplikacja z 2D macierzą Dlatego osadzamy naszą przestrzeń 2D w 3D, gdzie trzecia współrzędna z będzie równa 1. x y x y 1

Geometryczna interpretacja Translacji 2D

Translacja T(T x, T y ) x y 1 = 1 0 T x 0 1 T y 0 0 1 x y 1

Translacja T(T x, T y ) x y 1 = 1 0 T x 0 1 T y 0 0 1 x y 1 Co daje: x = x + 1 T x y = y + 1 T y 1 = 1

Skalowanie, Rotacja i Translacja w 2D S(s x, s y ) = s x 0 0 0 s y 0 0 0 1 T(T x, T y ) = 1 0 T x 0 1 T y 0 0 1 R(θ) = cos(θ) sin(θ) 0 sin(θ) cos(θ) 0 0 0 1

Rotacja wobec środka obiektu +y +y -x +x Translacja -x +x -y +y -y +y Rotacja -x +x Translacja -x +x -y -y

Macierz rotacji M wobec punktu P 0 (x 0, y 0 )

Macierz rotacji M wobec punktu P 0 (x 0, y 0 ) 1. Translacja do początku: T( x 0, y 0 )

Macierz rotacji M wobec punktu P 0 (x 0, y 0 ) 1. Translacja do początku: T( x 0, y 0 ) 2. Rotacja o kąt θ: R θ

Macierz rotacji M wobec punktu P 0 (x 0, y 0 ) 1. Translacja do początku: T( x 0, y 0 ) 2. Rotacja o kąt θ: R θ 3. Translacja do punktu P 0 : T x 0, y 0

Macierz rotacji M wobec punktu P 0 (x 0, y 0 ) 1. Translacja do początku: T( x 0, y 0 ) 2. Rotacja o kąt θ: R θ 3. Translacja do punktu P 0 : T x 0, y 0 M = T x 0, y 0 R θ T( x 0, y 0 )

Macierz rotacji M wobec punktu P 0 (x 0, y 0 ) 1. Translacja do początku: T( x 0, y 0 ) 2. Rotacja o kąt θ: R θ 3. Translacja do punktu P 0 : T x 0, y 0 M = T x 0, y 0 R θ T x 0, y 0 M = 1 0 x 0 0 1 y 0 0 0 1 cos θ sin θ 0 sin θ cos θ 0 0 0 1 1 0 x 0 0 1 y 0 0 0 1

Macierz rotacji M wobec punktu P 0 (x 0, y 0 ) 1. Translacja do początku: T( x 0, y 0 ) 2. Rotacja o kąt θ: R θ 3. Translacja do punktu P 0 : T x 0, y 0 M = T x 0, y 0 R θ T x 0, y 0 M = cos(θ) sin θ cos θ x 0 + sin θ y 0 + x 0 sin θ cos θ sin θ x 0 cos θ y 0 + y 0 0 0 1

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

Efektywność Macierzy Kompozycji M

Efektywność Macierzy Kompozycji M Multiplikacja dwóch macierzy: 3 multiplikacje (*) i 2 addycje (+) dla każdego elementu 3 x 9 = 27 (+ są kilka razy szybsze od * czyli ignorujemy ich koszt)

Efektywność Macierzy Kompozycji M Multiplikacja dwóch macierzy: 3 multiplikacje (*) i 2 addycje (+) dla każdego elementu 3 x 9 = 27 (+ są kilka razy szybsze od * czyli ignorujemy ich koszt) Multiplikacja macierz wektor 3 x 3 = 9

Efektywność Macierzy Kompozycji M Multiplikacja dwóch macierzy: 3 multiplikacje (*) i 2 addycje (+) dla każdego elementu 3 x 9 = 27 (+ są kilka razy szybsze od * czyli ignorujemy ich koszt) Multiplikacja macierz wektor 3 x 3 = 9, ale mamy specjalny przypadek x a b c x y = d e f y 1 0 0 1 1

Efektywność Macierzy Kompozycji M Multiplikacja dwóch macierzy: 3 multiplikacje (*) i 2 addycje (+) dla każdego elementu 3 x 9 = 27 (+ są kilka razy szybsze od * czyli ignorujemy ich koszt) Multiplikacja macierz wektor 3 x 3 = 9, ale mamy specjalny przypadek x a b c x x = ax + by + c y = d e f y y = cx + dy + e 1 0 0 1 1

Efektywność Macierzy Kompozycji M Multiplikacja dwóch macierzy: 3 multiplikacje (*) i 2 addycje (+) dla każdego elementu 3 x 9 = 27 (+ są kilka razy szybsze od * czyli ignorujemy ich koszt) Multiplikacja macierz wektor 3 x 3 = 9, ale mamy specjalny przypadek x a b c x x = ax + by + c y = d e f y y = cx + dy + e 1 0 0 1 1 4 operacje dla każdego wierzchołka

Efektywność Macierzy Kompozycji M Gdy N liczba transformacji Gdy k liczba wierzchołków

Efektywność Macierzy Kompozycji M Gdy N liczba transformacji Gdy k liczba wierzchołków Wtedy liczba multiplikacji wykonanych jest: (N-1)*27 + 4*k

Efektywność Macierzy Kompozycji M Gdy N liczba transformacji Gdy k liczba wierzchołków Wtedy liczba multiplikacji wykonanych jest: (N-1)*27 + 4*k W sposób bezpośredni: N*k*2

World space transformation WS Object Space World Space

View (eye) space transformation

View (eye) space transformation

Projection transformation

Clipping +y -x +x -y

Clipping +y -x +x -y

Clipping +y -x +x -y

Scan conversion or rasterization +y -x +x -y

Scan conversion or rasterization +y -x +x -y

Scan conversion or rasterization +y -x +x -y

Scan conversion or rasterization

Uproszczony Potok Graficzny (Rendering) Object Space

Uproszczony Potok Graficzny (Rendering) Model Matrix Object Space World Space

Uproszczony Potok Graficzny (Rendering) Model Matrix View Matrix Object Space World Space View Space

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

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