sissejuhatus informaatikasse arvutigraafikaarvutigraafika sünteesib pilte •piltide sünteesimisel...

47
Sissejuhatus Informaatikasse Arvutigraafika Konstantin Tretjakov, Dan Bogdanov

Upload: others

Post on 21-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Sissejuhatus InformaatikasseArvutigraafika

Konstantin Tretjakov, Dan Bogdanov

Page 2: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Kava• Milleks arvutigraafika?• Arvutigraafika põhiteemad• (Klassikaline) graafika programmeerimine• Mängude programmeerimine• Demoscene

Page 3: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Doom III

Page 4: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

http://www.jazmedia.com.au

Page 5: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte
Page 6: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

© Michał Kriukow

Page 7: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

http://www.emezeta.com/articulos/3d-desktop

Page 8: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

SynFace Project

Page 9: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

http://water.usgs.gov/watuse/graphics/wuto.fact.3d.gif

Page 10: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

http://www-vis.lbl.gov/Events/SC04/Incite1/

Page 11: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

http://www.k2.dion.ne.jp/~t-kmr/LOVELOG_IMG/20041129fd1f6c1e.jpg

Page 12: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Domus.Cad 13

Page 13: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

http://www.leon-arts.tk/

Page 14: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

http://www.weaverling.org/atc/sim/

Page 15: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

© Lance Cpl. Natasha S. Green

Page 16: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Milleks arvutigraafika?1. Meelelahutus2. Kunst3. Kasutajaliidesed4. Teadus5. Disain6. Simulaatorid

Page 17: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Mis on ArvutigraafikaArvutigraafika =

PiltInfo

Page 18: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Seotud alad:Pilditöötlus, signalitöötlus =

PiltInfo

Page 19: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Seotud alad:Või suvalised variatsioonid:

PiltInfoPilt

Pilt

Page 20: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

GPU programmeerimine

Seotud alad:

Page 21: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Arvutigraafika sünteesib pilte• Piltide sünteesimisel on kaks põhilist

suunda: “Reaalsuse võltsimine” – kuidas sünteesida

pilte mis on reaalsusest täiesti eristamatud?

Page 22: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Arvutigraafika sünteesib pilte• Piltide sünteesimisel on kaks põhilist

suunda: “Reaalsuse võltsimine” – kuidas sünteesida

pilte mis on reaalsusest täiesti eristamatud? “Uue reaalsuse loomine” – kuidas sünteesida

pilte et nad rahuldaks mingeid funktsionaalseid voi esteetilisi kriteeriume

Page 23: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

© 2000-2001 Nick Halper 

Page 24: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

http://www.cs.technion.ac.il/~irit/irit_images.html

Page 25: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

© ToonNation

Page 26: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte
Page 27: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Arvutigraafika põhiteemad• Modelleerimine

Kuidas esitada objekte? Kuidas neid esitusi konstrueerida?

• Näitamine (Rendering) Kuidas objekte ekraanil ilusasti näidata?

• Animatsioon Kuidas objekte liikuma panna?

Page 28: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Modelleerimine• Kuidas esitada objekte?

Geomeetria – objektide kuju Fotomeetria – värvus, valgus, peegeldused,

refraktsioon.• Kuidas neid esitusi konstrueerida?

Page 29: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Modelleerimine• Kuidas esitada objekte?

Geomeetria – objektide kuju Fotomeetria – värvus, valgus, peegeldused,

refraktsioon.• Kuidas neid esitusi konstrueerida?

Kirjeldada käsitsi Luua interaktiivselt Skaneerida sisse Programmeerida (las kasvab ise)

Page 30: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Cheap 3D scanner nearing the desktop10:01 06 March 2004 Exclusive from New Scientist Print Edition Will Knight

Ever fancied taking your favourite possessions with you into the virtual world? Spiral Scratch, a start-up company in Liverpool, UK, has come up with a cheap device that generates three-dimensional computer representation of any object it scans.

Page 31: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

© Andrea Esuli, LinSys3d

Page 32: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Animeerimine• Kuidas esitada liikumist?

Page 33: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Animeerimine• Kuidas esitada liikumist?

Kaadrite järjend Trajektooride kõverad Füüsika või muude seaduste modelleerimine

• Kuidas esitusi konstrueerida? Kirjeldada käsitsi või luua interaktiivselt Skaneerida sisse (motion capture) Programmeerida (füüsika, A-life)

Page 34: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

© Lynn B, www.agirlsworld.com

Page 35: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

© Brian Carpenter

Page 36: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

© Pete Reilly

Page 37: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Rendering• Kuidas esitada pilti?

Rastergraafika: Pilt on pikslite massiiv p[x,y].

Vektorgraafika: Pilt on lihtsatest primitiividest (jooned, ringid, jne) koosnev asi, nii esitamegi.

Page 38: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

3D graafika• Kuidas siis modelleeritud 3D objektide kirjelduse

järgi tekitada nende pilti?

Projitseerida objekte “kaamera tasandile”

Page 39: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

3D graafika• Kuidas siis modelleeritud 3D objektide kirjelduse

järgi tekitada nende pilti?

Simuleerida valguse kiirte läbimist

Page 40: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Arvutigraafika põhiteemad• Modelleerimine

• Näitamine

• Animatsioon

Page 41: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Graafika programmerimine...draw_monster(bad_guy1);...

my_code.cpp

Page 42: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Graafika programmeerimine...draw_monster(bad_guy1);...

...draw_monster_head(..);...

...draw_triangle(..);...

Page 43: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Graafika programmeeriminedraw_triangle(..) { compute_position_in_3d(..); is_it_visible?(); compute_lighting_and_color(..); project_to_screen(..); draw_2d_triangle(..);}

...set_pixel(..)...

Page 44: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Graafika programmeeriminedraw_triangle(..) { compute_position_in_3d(..); is_it_visible?(); compute_lighting_and_color(..); project_to_screen(..); draw_2d_triangle(..);}

...set_pixel(..)...

Riistvara (G

PU)

Page 45: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

OpenGL• OpenGL on graafika API, s.t. funktsioonide

komplekt. Ta on keelest sõltumatu.• Näiteks, kolmnurk OpenGL-iga:

glBegin(GL_TRIANGLES);glVertex2f(0, 0);glVertex2f(0, 1);glVertex2f(1, 0);

glEnd();

Page 46: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Kõrgema taseme APIOGRE

Page 47: Sissejuhatus Informaatikasse ArvutigraafikaArvutigraafika sünteesib pilte •Piltide sünteesimisel on kaks põhilist suunda: “Reaalsuse võltsimine” – kuidas sünteesida pilte

Mängude tegemine• ... ei ole tänapäeval enamasti “graafika

programmeerimine” (mõnede erinditega)• ... aga sellest räägib teile kohe Dan

• Kas teil on selle osa kohta küsimusi? Milleks arvutigraafika Arvutigraafika põhiteemad Graafika programmeerimine 1.0