Grafika Komputerowa. Wprowadzenie

Aleksander Denisiuk Polsko-Japonska´ Akademia Technik Komputerowych Wydział Informatyki w Gdansku´ ul. Brzegi 55 80-045 Gdansk´

[email protected]

1/28 Wprowadzenie

Wprowadzenie Najnowsza wersja tego dokumentu dost˛epna jest pod adresem Interpolacja http://users.pja.edu.pl/~denisjuk

2/28 Wprowadzenie

Wizualizacja Blender

Uznanie Trzy modele wyswietlaczy´ graficznych

Interpolacja Wprowadzenie

3/28 Wizualizacja komputerowa

Wprowadzenie  potrzeby wizualizacji Wizualizacja Blender  Antonie van Leeuwenhoek, mikroskop 1677 Uznanie Trzy modele  Karta dziurkowana wyswietlaczy´ graficznych  CRT (Cathode Ray Tube)

Interpolacja  1897, Ferdinand Braun  1951, MIT, Whirlwind computer

4/28 Interakcja

Wprowadzenie  tryb tekstowy Wizualizacja  1961, MIT, Ivan Sutherland, Sketchpad Blender

Uznanie Trzy modele wyswietlaczy´ graficznych

Interpolacja

 grafika komputerowa w czasie rzeczywistym  1968, Ivan Sutherland oraz Bob Sproull, “The Sword of Damocles”: proste trójwymiarowe modele szkeletowe

5/28 Ewolucja sprz˛etowa

Wprowadzenie  Wizualizacja Lata 1940 – lata 1950, pierwsza Blender generacja Uznanie  Połowa lat 1950, druga Trzy modele wyswietlaczy´ generacja: tranzystory graficznych  Połowa lat 1960, trzecia Interpolacja generacja: układy scalone, UNIX  1971, czwarta generacja: mikroprocesor (Intel)

6/28 Komputery osobiste

Wprowadzenie  Wizualizacja Pocz ˛atek lat 1970: pierwszy Blender komputer osobisty Uznanie  1977: Apple II, PET Trzy modele wyswietlaczy´ (Commodore International) graficznych  Lata 1980: GIU (GUI), CGA Interpolacja

7/28 Gry komputerowe

Wprowadzenie  Lata 1970 – 1980: gry wideo na specjalizowanych systemach, Wizualizacja animacja komputerowa w filmach: rzadko, 3W grafika w czasie Blender Uznanie rzeczywistym: tylko dla wizualizacji Trzy modele  wyswietlaczy´ 1992: Wolfenstein 3D (id Software) graficznych  1993: Doom (id Software): 3W grafika renderowana w czasie Interpolacja rzeczywistym (programowo)

8/28 Ewolucja kart graficznych

Wprowadzenie  Koniec lat 1990: openGL standardem 3W grafiki Wizualizacja Blender  CAD, Quake 2, Unreal, Half-Life Uznanie Trzy modele  Pierwsze dedykowane 3W karty graficzne wyswietlaczy´ graficznych  ATI 3D Rage, S3 ViRGE Interpolacja  Voodoo Graphics ()

 Glide API  NVIDIA

 GeForce 256  GPU ()  T&L (Transform & Lighting)

 Pocz ˛atek 2000: NVIDIA GeForce 2, ATI Radeon 7000  OpenGL,

9/28 Biblioteka Graficzna OpenGL

Wprowadzenie  http://www.opengl.org Wizualizacja Blender

Uznanie Trzy modele wyswietlaczy´ graficznych

Interpolacja

10 / 28 Blender

Wprowadzenie  http://www.blender.org Wizualizacja  Blender NeoGeo (Ton Roosendaal, Holandia) Uznanie  1998: NeoGeo Trzy modele wyswietlaczy´  2002: Blender Foundation, GNU graficznych  e Interpolacja od 18 lipca do 13 pa´zdziernika zebrano 100 000  2011: Blender 2.5  35 pa´zdziernika 2013: Blender 2.69  26 czerwca 2014: Blender 2.71  9 pa´zdziernika 2015: Blender 2.76b (ostatnia wersja dla Windows XP)  31 grudnia 2018: 2.80 (cycles, eewee)  3 czerwca 2020: 2.83 LTS  31 sierpnia 2020: 2.90  repozytorium git

11 / 28 Filmy

Wprowadzenie  2004: Spiderman 2 Wizualizacja  24 Marca 2006: Elephants Dream Blender Uznanie  30 Maja 2008: Big Buck Bunny Trzy modele  wyswietlaczy´ 30 wrzesnia´ 2010: Sintel graficznych  26 wrzesnia´ 2012: Tears of Steel Interpolacja  2015 Cosmos Laundromat (24 wrzesnia´ — Netherlands Film Festival)  2015: Glass Half  2017: Agent 327  Blender Institute Open Movies

12 / 28 Blend4Web

Wprowadzenie  WebGL, Web Audio, etc — bez wtyczek Wizualizacja  Experience Curiosity Blender

Uznanie Trzy modele wyswietlaczy´ graficznych

Interpolacja

13 / 28 Prawa autorskie na obrazki

Wprowadzenie  Niektóre obrazki (te, co maj ˛apodpisy w j˛ezyku angielskim)) w tej Wizualizacja i innych prezentacjach pochodz ˛az ksi ˛azki˙ SAMUEL R. BUSS: 3-D Blender Uznanie Computer Graphics. A Mathematical Introduction with OpenGL Trzy modele  wyswietlaczy´ http://www.math.ucsd.edu/~sbuss/MathCG/ graficznych  Prawa autorskie na te obrazki nalez˙ ˛ado Cambridge University Press Interpolacja

14 / 28 Grafika rastrowa

Wprowadzenie  tablica pikseli Wizualizacja Blender

Uznanie Trzy modele wyswietlaczy´ graficznych

Interpolacja

15 / 28 Grafika wektorowa

Wprowadzenie  prymitywy graficzne Wizualizacja

Ý

Blender ÔeÒÙÔ´µ;

Uznanie ÑÓÚeØÓ´¾¸¾µ; Trzy modele ÔeÒdÓÛÒ´µ;

wyswietlaczy´ ÑÓÚeØÓ´¾¸½µ;

graficznych ÔeÒÙÔ´µ;

ÑÓÚeØÓ´½¸¾µ;

Interpolacja ÔeÒdÓÛÒ´µ;

ÑÓÚeØÓ´¼¸¾µ;

ÑÓÚeØÓ´½¸½µ;

Ü

ÑÓÚeØÓ´½¸¾µ;

16 / 28 Grafika rastrowa a wektorowa

Wprowadzenie

Wizualizacja Blender

Uznanie Trzy modele wyswietlaczy´ graficznych

Interpolacja

17 / 28 Grafika 3W

Wprowadzenie  przymitywy graficzne Wizualizacja  wieloboki (slang: polygony) Blender Uznanie  renderowanie Trzy modele wyswietlaczy´  w czasie rzeczywistym graficznych  nie w czasie rzeczywistym Interpolacja

18 / 28 Wprowadzenie

Interpolacja

Zagadnienie Jednowymiarowa Dwuwymiarowa

Interpolacja

19 / 28 Zagadnienie interpolacji

Wprowadzenie  Dane s ˛a w˛ezły: x0,...,xn Interpolacja  Dane s ˛a wartosci:´ y0,...,yn Zagadnienie  Wyznaczyc´ funkcj˛e f x tak ˛a, ze˙ f x y ,..., f x y Jednowymiarowa ( ) ( 0) = 0 ( n) = n Dwuwymiarowa  Interpolacja wielomianowa: f(x) jest wielomianem

20 / 28 Interpolacja jednowymiarowa

Wprowadzenie  x0,...,xn ∈ R Interpolacja  y0,...,yn ∈ R Zagadnienie Jednowymiarowa Twierdzenie 1. Istnieje jedyny taki wielomian f x stopnia n, ze˙ Dwuwymiarowa ( ) f(x0) = y0,..., f(xn) = yn.

21 / 28 Wielomian Lagrange’a

Wprowadzenie Interpolacja (x − x ) ... (x − x ) Zagadnienie 1 n f(x) = y0 + Jednowymiarowa (x0 − x1) ... (x0 − xn) Dwuwymiarowa (x − x0)(x − x2) ... (x − xn) + y1 + ··· + (x1 − x0)(x1 − x2) ... (x1 − xn) (x − x0) ... (x − xk−1)(x − xk+1) ... (x − xn) + yk + (xk − x0) ... (xk − xk−1)(xk − xk+1) ... (xk − xn) (x − x0) ... (x − xn−1) + ··· + yn (xn − x0) ... (xn − xn−1)

22 / 28 Ilorazy ró˙zniczkowe

Wprowadzenie x0 f(x0) Interpolacja f(x ; x ) Zagadnienie 0 1 Jednowymiarowa x1 f(x1) f(x0; x1; x2) Dwuwymiarowa f(x1; x2) f(x0; x1; x2; x3) x2 f(x2) f(x1; x2; x3) ... f(x2; x3) f(x1; x2; x3; x4) ... x3 f(x3) f(x2; x3; x4) ......

f(x1)−f(x0) f(x2)−f(x2)  f(x ; x ) = , f(x ; x ) = ,... 0 1 x1−x0 1 2 x2−x2 f(x1;x2)−f(x0;x1)  f(x ; x ; x ) = ,... 0 1 2 x2−x0 f(x1;x2;x3)−f(x0;x1;x2)  f x x x x ,... ( 0; 1; 2; 3) = x3−x0  ...... f(x1;...;xn)−f(x0;...;xn−1)  f x ... x ,... ( 0; ; n) = xn−x0

23 / 28 Wielomian Newtona

Wprowadzenie

Interpolacja Zagadnienie f(x) = f(x0) + f(x0; x1)(x − x0)+ Jednowymiarowa − − Dwuwymiarowa + f(x0; x1; x2)(x x0)(x x1)+ + ··· + f(x0; ... ; xn)(x − x0) ... (x − xn−1)

 To jest ten sam wielomian zapisany inaczej

24 / 28 Interpolacja liniowa

Wprowadzenie y

Interpolacja y1 Zagadnienie Jednowymiarowa Dwuwymiarowa f(x) y0

x x0 x x1

 f x y x−x1 y x−x0 ( ) = 0 x0−x1 + 1 x1−x0 −  f x y y1 y0 x − x ( ) = 0 + x1−x0 ( 0)

25 / 28 Interpolacja szescienna´

Wprowadzenie x xk−1 xk xk+1 xk+2 Interpolacja Zagadnienie  xk = x0 + kh, k =0, 1,...,n − Jednowymiarowa  k =  x x0  (cz˛es´c´ całkowita, podłoga, floor) Dwuwymiarowa h

26 / 28 Interpolacja dwuliniowa

(x, yk+1) Wprowadzenie (xk, yk+1)(xk+1, yk+1)

Interpolacja

Zagadnienie Jednowymiarowa (x, y) Dwuwymiarowa

(xk, yk)(xk+1, yk) (x, yk) − −  f(x, y) = f(x, y ) y yk+1 + f(x, y ) y yk k yk−yk+1 k+1 yk+1−yk − −  f(x, y ) = f(x , y ) x xk+1 + f(x , y ) x xk k k k xk−xk+1 k+1 k xk+1−xk − −  f(x, y ) = f(x , y ) x xk+1 + f(x , y ) x xk k+1 k k+1 xk−xk+1 k+1 k+1 xk+1−xk

27 / 28 Interpolacja dwuszescienna´

(xk−1,yk+2) (xk+2,yk+1) Wprowadzenie

Interpolacja

Zagadnienie Jednowymiarowa Dwuwymiarowa yk+1 (x, y)

yk

(xk−1,yk−1) xk xk+1 (xk+2,yk−1)

28 / 28