T-111.2210 Studio 4 luento 1: kurssin järjestelyt k-2007 ( www) aihepiirin yleisesittely tietokonegrafiikan perusteita 19.1.2007 Tassu Takala 1
Kurssin tavoitteet ohjelmoitavan tietokonegrafiikan alkeet grafiikan soveltaminen luovalla tavalla lisäksi grafiikkaa sivuavia muita medioita (oman valinnan mukaan): ääni, video, vuorovaikutuslaitteet Grafiikka on on kivaa!! 19.1.2007 Tassu Takala 2
Mitä on tietokonegrafiikka? ACM/SIGGRAPH Computer Graphics and Interactive Techniques 2006 aiheita video mallinnus, animaatio, valaistusmallit, materiaalit, kuvien tuottaminen (renderointi) kuvankäsittely/kuvasynteesi, keinotodellisuus 19.1.2007 Tassu Takala 3
Computer graphics roadmap image processing mainstream graphics animation interaction photographs high dynamic range imaging (HDRI) simulated painting tools image editing & stitching filtering, warping morphing algorithmic generation noise functions L-systems genetic algorithms diffusion patterns texture mapping image-based rendering (IBR), light-field mapping 3D design CAD 3D scanning mesh generation geometric modeling motion control algorithmic motion kinematics rigid body dynamics particle simulation flocking behavior human models artificial life multimodality motion capture input techniques motion tracker image recognition speech recognition biosensors data glove & other wearables tactile devices 2D design non-photorealistic rendering (NPR) compositing & effects lighting & materials (realistic) rendering radiation science (eg. BDRF) reflection/refraction, translucency surface structure global illumination (ray tracing, radiosity) occlusion culling audio source sound rendering haptic rendering virtual reality immersive display real-time feedback interactive motion audio & haptics color separation audio & correction reproduction dithering printing & display hardware HRTF 19.1.2007 Tassu Takala loudspeaker array 4 programmable GPU algorithm optimization
Luennot Kurssin alussa kaksi luentoa (19.1. ja 26.1.) grafiikan alkeet: kuinka koodaan kuvan piirtämisen? animaatio: kuinka ohjelmoin liikkuvan (ajasta riippuvan) tapahtuman? vuorovaikutus: kuinka graafisen käyttöliittymän komponentteja käsitellään? Myöhemmin myös: multimodaalista vuorovaikutustekniikkaa: kuinka erilaisten laitteiden tuottamia signaaleja käsitellään digitaalisesti? 3D-grafiikkaa: kuinka mallinnan kolmiulotteisia muotoja ja katselen niitä virtuaalisella kameralla? 19.1.2007 Tassu Takala 5
Harjoitustehtävät 0. Työvälineeseen (Processing) tutustuminen Mietittäväksi jo jo nyt: nyt: miten miten taideteoksen voisi voisi muuttaa muuttaa 1. Graafinen taide matemaattiseen muotoon? esim. geometriset ornamenttikuviot opittavaa: geometrinen ajattelu, symmetria, käyrät, rekursio, kieliopit, epälineaariset muunnokset, animaatio 2. Vuorovaikutustekniikka ja multimedia esim. musiikin tahtiin tanssiva palmu opittavaa: ääni/video jatkuvana mediana, hahmojen löytäminen signaalista, kosketettavien (tangible) / etäanturien käsittely, eri modaliteettien yhdistely 3. 3D-mallinnus esim. yksinkertainen pelidemo opittavaa: objektiajattelu, geometriset transformaatiot, hierarkkiset mallit, renderointi (kameraparametrit, valaistus), virtuaalitodellisuus 19.1.2007 Tassu Takala 6
OLO-työskentely esitehtävänä 0-harjoitus : yksinkertainen piirtämisohjelma jokainen tekee erikseen ryhmät 5-6 henkeä, vakituinen tutori, viikottaiset kokoontumiset tehtävät kolme ryhmätehtävää tutorit: kullekin noin 3 viikkoa: avaus - välikatsaus - purku tulokset esseitä tehtävään liittyvistä aiheista toimiva ohjelma, joka demonstroi opittuja asioita työnjako ryhmässä jokaiselle sekä kirjallista työtä että koodausta lopuksi yhteinen palauteluento Markus Markus Berg Berg (pääassistentti) (pääassistentti) Petri Petri Klemelä Klemelä Suvi Suvi Numminen Numminen Pekka Pekka Pulli Pulli 19.1.2007 Tassu Takala 7
demoja!! Sitten itse asiaan... Processing yksinkertaistettu ympäristö tuottaa JAVA-koodia grafiikan perusteita laitteisto, arkkitehtuuri koordinaatisto, canvas piirtoprimitiivit: piste (pikseli), viiva, käyrä, suorakaide, ympyrä, monikulmio värit: RGB ja HSV teksti: kirjasimet, välistys ohjelman perusrakenne nämä pääasiassa processingreferenssisivujen avulla! 19.1.2007 Tassu Takala 8
Processing-esittely, osa I (ks. Help/Reference) Setting size() background() Environment width height 2D Primitives point() line() rect(), rectmode() triangle() quad() ellipse(), ellipsemode() curve() bezier() Attributes stroke() nostroke() fill() nofill() strokeweight() Vertex models beginshape() endshape() vertex() curvevertex() beziervertex() Color colormode() Demot (ks. Open/Examples...) coordinates points_lines shape_primitives curve_primitives vertices simple_curves demo: rgb_cube 19.1.2007 Tassu Takala 9