Graikka yleisesti tietokonepeleissä

Koko: px
Aloita esitys sivulta:

Download "Graikka yleisesti tietokonepeleissä"

Transkriptio

1 Graikka yleisesti tietokonepeleissä Mikko Heilimo Helsinki Seminaaritutkielma HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

2 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Matemaattis-luonnontieteellinen Tekijä Författare Author Mikko Heilimo Työn nimi Arbetets titel Title Tietojenkäsittelytieteen laitos Graikka yleisesti tietokonepeleissä Oppiaine Läroämne Subject Tietojenkäsittelytiede Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Seminaaritutkielma sivua Tiivistelmä Referat Abstract Tämä seminaariartikkeli käsittelee tietokonepelien graikkaa yleisesti. Tarkastelun lähtökohdaksi on valittu kolmiulotteiset tietokonepelit ja aihealueen laajuuden ja rajallisen sivumäärän vuoksi käsittely on varsin yleisluontoista, eikä mihinkään osaalueeseen perehdytä pintaa syvemmin. Ensimmäisessä kappaleessa käsitellään kuvan yleistä muodostusta ruudulle, 3Dgraikan eri piirtokerroksia ja kappaleiden näkyvyyksiä. Tämän lisäksi käsitellään erilaisia kuvanmuodostuksen teknisiä apuvälinepuskureita ja 3D-graikassa käytettyjä geometrisia kappaleita. Toinen kappale käsittelee materiaaleja, tekstuureja sekä varjostusta. Näitä ei käsitellä kovin tarkasti tässä seminaariartikkelissa, sillä nämä aiheet käsitellään tarkemmin muissa tämän seminaarin esitelmissä. Kolmas luku käsittelee pelien perinteisiä valotusjärjestelmiä pintapuolisesti. Selvitetään hieman yleisesti käytetyn pistevalon toimintaa, usean valonsäteen yhdistämistä sekä staattisia valotuskarttoja. Neljäs luku käsittelee piirtoliukuhihnaa. Siinä selvitetään laitteistopohjaisen liukuhihnan eroja sovelluskehittäjän itse ohjelmoitavissa oleviin liukuhihnoihin. Luvun toisessa kappaleessa käydään läpi hyvin pintapuolisesti vaihe vaiheelta yleinen piirtoliukuhihnamalli. Malli on sinällään kuitenkin vain viitekehys, sillä toteutukset poikkeavat siitä usein hyvinkin paljon. ACM Computing Classication System (CCS): I.2.1 [Articial Intelligence, Applications and Expert Systems, Games] Avainsanat Nyckelord Keywords kolmiulotteinen graikka, varjostus, tietokonepelit Säilytyspaikka Förvaringsställe Where deposited Muita tietoja övriga uppgifter Additional information

3 Sisältö ii 1 Johdanto 1 2 Yleistä tietokonegraikasta Kuvan muodostus ruudulle Piirtokerrokset ja näkyvyys Piirtopuskuri Taustapuskuri Näkyvyys Syvyys- ja kaaviopuskurit Kolmiulotteinen geometria peleissä Kolmio-geometria Kolmio-rakenne Kolmiosarjat Objektiverkot Koordinaattiavaruudet Materiaalit Materiaalit Tekstuurit Varjostimet Valaistus Kuvan muodostuminen silmälle Pistevalo Useat valon lähteet

4 4.0.7 Staattiset valotukset iii 5 Piirtoliukuhihna Laitteistossa toteutettu piirtoliukuhihna Piirtoliukuhihnat yleisesti Yhteenveto 11 Lähteet 13

5 1 Johdanto 1 Tietokonepelien graikka on kehittynyt viimeisen kymmenen vuoden aikana kaksiulotteisesta pikseligraikasta näyttäviin 3D-maailmoihin, joissa illuusio todellisuuden kaltaisista virtuaalimaailmoista on ajoittain varsin uskottavan oloista. Tämän kaiken on mahdollistanut 3D-graikkapiirien nopea kehitys. Merkittävimpänä kehityksen harppauksena voidaan pitää aivan viime vuosina yleistyneitä sovellusohjelmoijien itse muokattavia pikselivarjostinyksiköitä, joiden ansiosta peleihin on saatu ensi kertaa toteutettua näyttäviä erikoistehosteita reaaliaikaisesti. 2 Yleistä tietokonegraikasta Tässä kappaleessa esitellään 3D-graikan peruskäsitteistöä ja valotetaan hieman gra- ikan tuottamiseen tarvittavien apuvälineiden toimintaa, kuten taustapuskuria. 2.1 Kuvan muodostus ruudulle Tietokoneen kuva muodostuu ruudulle siten, että näytönohjain siirtää kuvan näyttölaitteelle, josta näyttölaite sitten omien sisäisten tekniikoiden mukaisesti muodostaa kuvan katseltavaksi. Tätä ennen kuitenkin näytönohjain on yhteistyössä prosessorin kanssa tehnyt paljon työtä muodostaakseen esitettävän kuvan kaksiulotteiseen pikselimatriisiin NxK, jossa N on kuvan leveys ja K on kuvan korkeus. Esimerkiksi kolmiulotteisen graikan kohdalla kolmiulotteinen maailman näkymä on tarvinnut projisoida tälle kaksiulotteiselle pikseliavaruudelle. Jatkossa tässä artikkelissa kutsumme näitä avaruuksien ulottuvuuksia yleisillä merkinnöillä 2D ja 3D. Merkinnät viittaavat siis kuvattavan maailman tai muun käsitteen dimensioihin. Tämä seminaariartikkeli keskittyy kolmiulotteisen maailman peruskäsitteisiin ja näihin eri avaruuksien konversiovaiheisiin kuvaa muodostettaessa.

6 2 2.2 Piirtokerrokset ja näkyvyys Piirtopuskuri Piirtopintapuskuri (frame buer) on se NxK-matriisi, joka on kuvattu kappaleessa 2.1. Puhuttaessa piirtopintapuskurista matriisina, tulee ottaa huomioon, että kyse on ainoastaan abstraktista mallista, eikä kyseinen puskuri ole fyysisessä mielessä useinkaan kaksiulotteinen. Puskuri on todellisuudessa useimmissa toteutuksissa yhtenäinen yksiulotteinen muistialue, joka sijaitsee lähes poikkeuksetta näytönohjaimen muistissa. Tämän muistialueen ulkopuolella on vain kuvattu näytön ulottuvuudet erillisissä muuttujissa ja näin voimme mieltää puskurin kaksiulotteiseksi ajattelemalla, että puskurin N ensimmäistä pikseliä ovat rivillä 1 ja seuraavat N pikseliä rivillä kaksi jne. Piirtopintapuskuriin piirretään ruudulle muodostettava kuva. Perinteisessä kaksiulotteisessa graikassa kuten käyttöjärjestelmien käyttöliittymissä (GUI, Graphical User Interface) käyttöjärjestelmä piirtää suoraan tähän ainoaan näyttöpuskuriin, jolloin piirrettävä kuva muodostuu välittömästi ruudulle. Tämä tarkoittaa käytännössä sitä, että käyttäjä saattaa nähdä kuvan koko sen muodostumisen ajan ja näin myös kuvan ollessa keskeneräinen. Usein laitteistot kuitenkin voidaan määrätä odottamaan kuvan uudelleenpiirtoa niin kauan, että koko kuva-ala on saatu piirrettyä. Tämä estää varsin haitallisen ruudun välkkymisilmiön piirron aikana. Menetelmät eivät kuitenkaan poista sitä ongelmaa, että kolmiulotteisessa graikassa kuva muodostetaan useassa työvaiheessa ja näin kuvaa ei voida piirtää edes yhdellä pyyhkäisyllä ruudulle. Usein piirretään ruudulle paljon kolmiulotteisia elementtejä, jotka jäävät lopulta jonkin toisen elementin taakse. Esimerkiksi ruudun taka-alalle saatetaan piirtää puita ja lopulta etualalle piirtyy talo, joka peittää osan puista. Vaikka tällaista turhaa piirtämistä pyritään välttämään useilla ohjelmointitekniikoilla, niin usein kuitenkin tehosyistä joudutaan piirtämään paljonkin asioita, jotka jäävät pois lopullisesta kuvasta. Mikäli yllä kuvatun kaltainen kuva piirrettäisiin suoraan ruudulle näkyisi aluksi koko metsä ja vasta, kun päästäisiin piirtojärjestyksessä tuon talon kohdalle, osa puista peittyisi. Tilanne on selvästi epätoivottu ja näin ei tietysti saisi käydä. Tätä ongelmaa ratkaisemaan on peleihin kehitetty tekniikka, jossa

7 3 taustapuskuria (frame buer) hyödynnetään näkyvien pikselien määrittämiseksi Taustapuskuri Taustapuskurin käytössä ollessa piirtojärjestelmä (rendering prosessing system) piirtää kuvan aluksi taustapuskuriin, josta koko kuvan valmistuttua se vaihdetaan piirtopuskuriksi ja entinen piirtopuskuri tulee näin ollen taustapuskuriksi. Nykyisin näytönohjaimien tehot ovat niin suuria, että usein ei enää vain vaihdeta puskureita vaan ne todella kopioidaan toisiinsa. Tämä mahdollistaa datan käsittelyn kopioinnin aikana. Esimerkiksi tiedon tallennusmuoto voidaan vaihtaa tai taustapuskuri voidaan pakata [Rab05, s. 445] Näkyvyys Objektien näkyvyys 3D-maailmassa on hieman ongelmallista. On itsestään selvää, että ei ole perusteltua piirtää objekteja, jotka eivät näy ruudulla ollenkaan, sillä tämä veisi vain laskenta-aikaa ilman näkyvää tulosta. Näin ollen tarvitaan optimointialgoritmeja, jotka pyrkivät poistamaan esimerkiksi ylimääräisiä objekteja, kuten metsä-esimerkissä kappaleessa Yksinkertaisin tällainen optimointi olisi, että jätetään piirtämättä kaikki objektit, jotka eivät näy ruudulla. Toisin sanoen jätetään piirtämättä objektit, jotka ovat kameran näkyvyysprojision ulkopuolella. Tätä käytetäänkin paljon nykypeleissä ja vaikka optimointi on ilmeisen tehokas, niin se ei yksinään riitä. Tämän lisäksi pyritään myös laskemaan kappaleet, jotka jäävät toisten kappaleiden taakse kokonaisuudessaan. Tämä menetelmä on myös varsin yleisesti käytössä ja toimii varsin hyvin. Meillä voi olla kuitenkin tilanteita, joissa kappaleet ovat toistensa päällä. Tarkemmin sanottua kappale a on kappaleen b sisällä tai vain osittain päällekkäin. Kuvitellaan tilannetta, että 3D-maailmassa yritetään kuvata lintua häkissä. Tässä esimerkissä lintu on täysin häkin sisällä. Näin ollen häkin etuosan pitäisi olla linnun edessä (piirretään linnun jälkeen) ja häkin takaosan pitäisi olla linnun takana (piirretään vastaavasti ennen lintua). Tätä ongelmaa ei voida ratkaista edes sillä, että häkki jaetaan kahteen osaa, sillä jos kameran pyörähtää 90 astetta linnun ympäri

8 4 molemmat osat häkistä ovat nyt sivuttain ja huomataan, että ratkaisu ei toimi. Näihin tilanteihin on kehitetty varsin hyvä menetelmä jota kutsutaan syvyyspuskuriksi (Depth Buer) [Rab05, s. 445] Syvyys- ja kaaviopuskurit Syvyyspuskurissa on tarkoitus laskea jokaisen pikselin etäisyys kameran tarkastelupisteestä. Tämä tapahtuu siten, että ensin piirretään objekteja käänteisessä etäisyysjärjestyksessä kameraan, kaukaisin ensin periaatteella. Jokaisen piirrettävän pikselin kohdalla tarkistetaan, että onko pikselin syvyyspuskurissa oleva vanha etäisyysarvo suurempi kuin mitä uuden päälle piirrettävän pikselin syvyysarvo. Mikäli näin on niin pikselin arvo ja syvyyspuskurin arvo korvataan uusilla arvoilla. Tätä jatketaan kunnes koko kuva on piirretty valmiiksi [Rab05, s ]. Tekniikasta käytetään myös hieman vähemmän tehoa tarvitsevaa versiota, jossa jokaisen monikulmion pisteiden väliset pikselit interpoloidaan päätepisteiden perusteella. Tämä on usein huomattavasti nopeampaa, vaikka molemmat algoritmit ovatkin saman kertaluokan algoritmeja [WaL01, s ]. Kaaviopuskuria (stencil buer) käytetään usein kiinteästi syvyyspuskurin kanssa. Kaaviopuskurin käyttötarkoitus ei ole vakiintunutta ja se toimii usein erilaisissa efekteissä aputietona. Esimerkiksi usein nykyisin käytetään 24-bittistä syvyyspuskuria ja 8 bittistä kaaviopuskuria, jolloin ne voidaan yhdistää yhdeksi 32 bittiseksi puskuriksi, jota kutsutaan syvyys- tai kaavio-puskuriksi. 2.3 Kolmiulotteinen geometria peleissä Tässä luvussa käsitellään peleissä käytettyjä geometrisia kappaleita ja kuvataan, miten isommat kappaleet muodostuvat pienemmistä osista Kolmio-geometria Suuresta alkeiskuvioiden (primitives) joukosta 3D-maailmoissa käytetään lähinnä vain kolmioita, jotka muodostuvat pisteistä. Jotkut laitetason renderöintiliukuhih-

9 5 nat tukevat myös muita alkeiskuvioita, kuten neliöitä, pisteitä ja olioita (sprite), mutta lähes poikkeuksetta nämä muut primitiivit muuntuvat piirtoliukuhihnalla kolmioiksi, joten keskitymme tässä artikkelissa vain kolmioihin. Ne ovat yleisimpiä alkeiskuvioita, sillä kolmioilla on useita todella hyviä ominaisuuksia 3D-graikan näkökulmasta. Ensinnäkin kolmiot ovat yksinkertaisimpia alkeiskuvioita, jotka määrittävät pinnan (surface) avaruudessa. Myöskin kolmioiden päätepisteiden välisiä pisteitä on varsin helppo interpoloida ja kolmiot muodostavat helposti monimutkaisempia kolmiulotteisia objekteja, kuten myöhemmin tulemme näkemään Kolmio-rakenne Kolmiot muodostuvat vertekseistä (vertice) kuten kuvasta 1 käy ilmi. Verteksit eivät ole tavallisia pisteitä avaruudessa, joilla on ainoastaan paikka (x,y,z). Vertekseillä on myös muita ominaisuuksia, kuten väri ja normaalivektori, joita käsitellään myöhemmin Kolmiosarjat Koska kaikki monimutkaiset 3D-kappaleet kuvataan kolmioilla, on selvää, että monimutkaisemmat kappaleet koostuvat useista vierekkäisistä kolmioista. Esimerkiksi nelikulmio koostuu kahdesta kolmiosta, jotka jakavat yhden sivun nelikulmion lävistäjällä. Suurempi suorakaide koostuu nelikulmioista ja niin edelleen. Kuvasta 2 huomaamme, että tällä tavoin muodostettavat kolmionauhat sisältävät paljon toistuvia verteksejä eri kolmioita määritettäessä. Yksinkertaisin tapa tallentaa nuo nauhat olisi kirjata jokainen verteksi siinä järjestyksessä kun ne kolmio-kolmiolta kappaletta myötäpäivää läpikäydessä tulevat vastaan. Tällaista tallennusrakenne on nimeltään kolmiolista (triangle list). Ei ole viisasta tallentaa näitä toistuvia verteksejä vaan olisi parempi kirjata jokainen verteksi vain kertaalleen. Näin tehdään kolmionauha (triangle stip) ja kolmioviuhka (triangle fan) tallennusrakenteissa. Nämä ovatkin yleisimmät tallennusrakenteet juuri niiden tehokkuuden vuoksi. Kuvassa 3 on kuvattuna nämä rakenteet sekä vielä erikoistapauksina viivalista (line list) ja viivanauha (line strip), joilla voidaan kuvata tehokkaasti esimerkiksi tekoälyn ja pelin

10 6 muiden rakenteiden tarvitsemia tietoja graikan ulottuvuuksista [WWJ05, s ]. Kolmioviuhka muodostuu yhdestä keskusverteksistä, jota vasemmalta oikealle seuraa jokainen kyseiseen keskusverteksiin liittyvä verteksi. Tällä menetelmällä on erityisen tehokasta kuvata kolmioviuhkalle hankalia orgaanisia kappaleita kuten ihmisten kasvoja. Kolmioviuhka vastaavasti kuvaa myötäpäivää kiertäen kolmiot siten, että edellisen kolmion viimeinen verteksi on seuraavan kolmion ensimmäinen verteksi. Tämä menetelmä on myös varsin tehokas ja kuten kuvasta 3 voi huomata niin kolmen vierekkäisen kolmion kuvaaminen onnistuu kolmiolistassa yhdeksällä verteksillä ja vastaavasti kolmioviuhkassa ja kolmionauhassa viidellä verteksillä. Tämä on piirtoliukuhihnan kannalta todella merkittävä ero, kun samoja kuvioita käydään toistuvasti läpi Objektiverkot Vertekseistä muodostuu kolmioita, jotka muodostavat kolmiorakenteita ja näitä muodostuneita monimutkaisia kolmirakenteita kutsutaan objektiverkoiksi (mesh). On hieman ohjelmointirajapinnasta riippuvaista, mitä kaikkea määritetään objektiverkkoon kuuluvaksi, mutta yleisesti rajaus tehdään geometrisiin rakenteisiin. Kuitenkin useat järjestelmät liittävät objektiverkkoihin myös materiaaleja, tekstuureja ja muita objektiin yleisesti liittyviä tietoja. 2.4 Koordinaattiavaruudet Tietokonepeleissä käytetään monenlaisia koordinaattiavaruuksia. Yleisesti voidaan kuitenkin sanoa, että kaikki yleisimmät avaruudet ovat joko 2D- tai 3D-avaruuksia ja usein vielä niin, että avaruus muodostuu (x,y,z) ulottuvuuksista. On kuitenkin muistettava, että eri 3D-kirjastot käyttävät eri avaruuksia ja esimerkiksi Direct3D käyttää vasenkätistä avaruutta, jossa z-ulottuvuus kasvaa poispäin origosta ja avoin OpenGL rajapinta käyttää oikeakätistä avaruutta, jossa z-akseli mielletään toisin päin. Näiden kahden avaruuden välillä tehtävät konversiot ovat kuitenkin helppoja, eikä avaruuksia käsitellä ajanpuutteen vuoksi tässä tarkemmin. Koordinaattiavaruuksista puhuttaessa on kuitenkin huomioitava, että on usein hyö-

11 7 dyllistä pitää erillisinä maailma-koordinaattiavaruus (world space) sekä objektien sisäinen avaruus (object space). Objektien verteksien topologiat on määritetty sisäisessä avaruudessa ja kappaleita siirretään ja pyöritetään maailma-koordinaattiavaruudessa. Nämä asiat liittyvät kuitenkin enemmän tämän seminaarin muihin esityksiin, joten en käsittele niitä tämän laajemmin tässä yhteydessä. 3 Materiaalit Tämä kappale käsittelee materiaalien vaikutusta objektien lopulliseen ulkoasuun Materiaalit Objektit ja niiden verteksit määrittävät, millaiset kolmiulotteiset kappaleet ovat muodoiltaan, mutta lopullisen ulkonäön, sen miltä kappaleet todellisuudessa näyttävät, määrittävät niiden materiaalit. Materiaaleja voisi kuvata ryhmäksi erilaisia määrityksiä kappaleen reagoimisesta valoon. Varjostimet (shader), tekstuurit ja heijastuvuus kuuluvat lähes jokaiseen materiaalimääritykseen [WWJ05, s. 450]. Materiaalien tarkka sisältö on todella paljon 3D-moottorista (3D engine) riippuvaista, eikä siksi voida sanoa mitään yleispätevää määritystä materiaaleille. Seuraavissa kappaleissa selvennetään eri materiaalien osien tehtäviä ja näin tämä hieman epämääräinen määritelmä selkiytyy Tekstuurit Periaatteessa jokainen 3D-objektin pintapikselin ulkonäkö (surface pixel) määräytyy pikselin väristä. Yleisin tapa määrittää tämä väri on kääriä objektin pintaan bittikarttakuva, josta kopioidaan jokaisen pikselin perusväri materiaaliin. Tätä väriä sitten myöhemmin muutetaan varjostimilla sekä valoilla niin, että saadaan aikaan tilanteeseen sopiva valotustasapaino [WWJ05, s. 450, ]. Tekstuurien sisältö talletetaan tekseleihin (texel), jotka ovat käytännössä kolmen tai neljän väriarvon pikseleitä, joiden osavärit koostuvat RGB tai RGBA arvoista, joissa R on punainen, G on vihreä ja B on sininen. Lisäksi saatetaan käyttää A arvoa, joka tarkoittaa

12 läpinäkyvyyttä (alpha). Varjostin ohjelmat saattavat muuttaa näitä arvoja varsin vapaasti tai jopa vaihtaa käyttötarkoituksia tarpeidensa mukaisesti Varjostimet Varjostimet ovat pieniä ohjelmia, jotka määrittävät miten kukin pikseli lopulta piirretään ruudulle. Ohjelmoitavat varjostinyksiköt yleistyivät tietokoneiden näytönohjaimissa muutamia vuosia sitten. Sitä ennen kiinnitetty renderöintiliukuhihna huolehti tästä aika automaattisesti. Ohjelmoitavia varjostimia käytetään varsin laajasti esimerkiksi turkin, hiusten, veden sekä erilaisten tuliefektien aikaansaamiseksi [WaL01, s ]. Uusimmat kehitelmät käyttävätkin näytönohjaimien graikkatehoja myös pelien fysiikan mallintamiseen, mutta koska tämä on vielä hyvin harvinaista, emme keskity siihen tässä seminaariartikkelissa. 4 Valaistus Valaistus on oleellinen osa uskottavan 3D-maailman muodostamista. Tämä kappale käsittelee valaistuksen muodostusta pintapuolisesti Kuvan muodostuminen silmälle Oikean valon reitin simulointi verkkokalvolle on aivan liian hidasta tehdä reaaliaikaisesti. Reaalimaailmassa valon fotonit kimpoilevat esineistä ja silmä rekisteröi kaikki siihen tulleet fotonit. Silmä on varsin tarkka tässä ja on ymmärrettävää, että tätä ei ole mahdollista laskea kovin tehokkaasti [Rab05, s ]. Radiositeetti (radiosity) järjestelmässä pyritään laskemaan vain ne fotonit, jotka lopulta saapuvat verkkokalvolle hyödyntämällä käänteislaskentaa. Tällöin lasketaan valittu joukko fotoneja, jotka lähtevätkin silmästä ja katsotaan, miten ne kimpoilevat kappaleisiin ja minkä värin ne lopulta saavat. Näin ei tarvitse laskea liikkeitä fotoneille, jotka eivät koskaan saavu verkkokalvolle. Radiositeettilaskelmat ovat tehtävissä tietokoneella ja näitä käytetäänkin hyvin yleisesti tietokonepelien mallien luonnissa 3D-mallinnusohjelmissa. Tämäkään tekniikka ei ole vain hyödynnettävissä reaaliai-

13 9 kaisesti, joten pelien reaaliaikainen valaistus tehdään simuloinneilla, jotka eivät todellisuudessa ole kovin realistia. Seuraavissa kappaleissa käsittelen näitä tekniikoita pinnallisesti Pistevalo Pistevalo (point light) on perinteinen pelien valotekniikka. Siinä simuloidaan pistemäistä valonlähdettä siten, että valotuksen määrä vaihtelee arvovälillä [0,1]. Laskennassa käytetään kaavaa, jossa pisteen valoisuus arvoa muutetaan sen mukaan, miten kaukana se sijaitsee valonlähteestä: ilmentyvä väri = valonvari valonkirkkaus etaisyysvaloon 2 s ] [WWJ05, Useat valon lähteet On hieman ongelmallista, että jos 3D maailmassa on esimerkiksi 10 eri valonlähdettä, niin kaikkien valonlähteiden valon laskeminen on liian raskasta tehdä reaaliaikaisesti. Onneksi usein riittää, että laskemme vain 1-4 eniten kohteeseen vaikuttavan valon vaikutuksen. Usein valinta tehdään puhtaasti valon ja pinnan välisen etäisyysvektorin suhteen. Näiden pistevalojen lisäksi käytetään usein ympäristöä ympäröivää yleisvaloa (ambient light). Tämä antaa kevyen valotuksen päivänvalon tapaisesti jokaiselle valotettavalle objektille Staattiset valotukset Usein käytetty ja varsin tehokas valotustapa on laskea kohteen valot etukäteen esimerkiksi radiositeettilaskennalla erilliselle valotuskartalle (lightmap). Valotuskartta voidaan mieltää erilliseksi tekstuuriksi, jossa on jokaisen valonlähteen vaikutus laskettuna tarkasti jokaiselle pikselille. Menetelmällä saadaan varsin hyvännäköisiä valotuksia esimerkiksi huoneisiin, mutta menetelmän ongelmana on, että se on tarkoitettu staattisille valonlähteille. On kehitetty myös menetelmiä, joissa valosta tallennetaan enemmänkin tietoa, mutta näiden ongelmana on valtava muistin käyttö, aivan kuten perus valokarttatekniikoissakin.

14 5 Piirtoliukuhihna 10 Laitteiston piirtoliukuhihnat vaihtelevat varsin paljon toisistaan, mutta kaikilla niillä on joitain yhteisiä ominaisuuksia, vaikka järjestykset saattavatkin vaihdella runsaasti eri toteutuksissa. Tässä kappaleessa pyritään valottamaan hieman näitä yleisimpiä piirron vaiheita. 5.1 Laitteistossa toteutettu piirtoliukuhihna Aikaisemmin piirtoliukuhihnat (rendering pipeline) olivat laitteen sisäisen toteutuksen varassa, eikä sovellusohjelmoija voinut vaikuttaa liukuhihan toimintaan kovinkaan paljon. Nykyisin kuitenkin kaikki merkittävät näytönohjainvalmistajat tukevat ohjelmoitavia pikselivarjostinyksiköitä ja sekä NVIDIA että ATI ovat tällä hetkellä pikselivarjostimissaan versiossa 3.0. Jokainen uusi versio on lisännyt ohjelmoitavuutta ja pidentänyt ohjelmointirajapintojen käskykantoja. Varjostinrajapintojen kehityksessä myös pisimmän mahdollisen ohjelman tai aliohjelman pituus on perinteisesti kasvanut. Näin voidaan tehdä yhä monimutkaisempia varjostusohjelmia Piirtoliukuhihnat yleisesti Piirtoliukuhihnan tehtävä on tuottaa kappaleiden vertekseistä ja niiden materiaaleista lopulliset kappaleet ruudulle. Tämä tapahtuu useassa osassa, eikä voida puhua mistään tietystä piirtoliukuhihnasta, sillä toteutukset vaihtelevat paljon eri sovelluksissa, mutta tässä käymme läpi yleisimmän tapauksen, jota enemmän ja vähemmän toteutukset mukailevat. Ensiksi kappaleista on olemassa vain geometria- sekä materiaalitiedot, josta usein saadaan tekstuuri kappaleen pinnalle. Aluksi kappaleet siirretään paikoilleen 3Davaruudessa ja pyöritetään ja skaalataan oikeaan kokoonsa. Seuraava vaihe on kappaleiden geometrian muuttaminen ensin mallin sisäisestä avaruudesta 3D-maailman avaruuteen ja siitä edelleen näkymän avaruuteen. Tämän jälkeen päästään itse kappaleiden piirtämiseen. Aluksi suoritetaan taustapuolen poisto (backface culling), sillä jokaisella kolmiolla ja muilla monikulmioilla on myötäpäivään ja vastapäivään mää-

15 11 rittyvät puolet. Usein vain toinen puolista halutaan piirtää tehosyistä. Tämä puoli on luonnollisesti se, joka on kameraan päin. Taustojen poiston jälkeen suoritetaan leikkaus (clipping), jossa poistetaan ne kolmiot, jotka eivät ole näkyvissä. Kun kolmiot ja muut monikulmiot on leikattu, projisoidaan monikulmiot leikkausavaruudesta ruutuavaruuteen (screen space), jotta saadaan kolmiot mahtumaan ruudulle [Rab05, s ]. Seuraavaksi vuorossa on rasterointi. Tässä vaiheessa selvitetään, mihin pikseleihin kukin monikulmio muodostuu ruudulla. Lopulta pikselit voidaan varjostaa. Kuten edellisistä kappaleista huomattiin, niin varjostettavien pikselien joukko on aika paljon harventunut alkuperäisestä edellisten työvaiheiden takia. Viimeinen vaihe on rosoisuuden poisto (antialiasing), jossa useista yhdistetyistä pikseleistä muodostetaan ruudulla lopulta näkyvät pikselit. Tämä poistaa käytännössä monikulmioiden reunakohtien kontrastia ja kuvasta saadaan alemmalla resoluutiolla pehmeämmän näköinen. 6 Yhteenveto Tietokonepelien graikka on viimeisen kymmenen vuoden aikana kehittynyt 2Dgraikasta 3D-graikkaan. 3D-graikan yleistymisen on mahdollistanut graikkakorttien huima kehitys. Näytöllä näkyvä graikka luetaan piirtopuskurista. 3D-graikassa piirtoprosessi on monivaiheinen, joten kuva piirretään ensin taustapuskuriin, joka aina uuden kuvan valmistuttua siirretään piirtopuskuriin. Vaikka näyttökortit ovat varsin tehokkaita, joudutaan piirtoa optimoimaan paljon ja pyritään tietysti piirtämään 3D-maailman osista vain ne, jotka ovat näkyvillä kulloisestakin kuvakulmasta. Tähän käytetään useita eri menetelmiä kuten syvyyspuskuria. Kolmiot ovat yleisimpiä alkeiskuvioita 3D-tietokonegraikassa, sillä kolmioilla on useita todella hyviä ominaisuuksia. Ensinnäkin kolmiot ovat yksinkertaisimpia alkeiskuvioita, jotka määrittävät pinnan avaruudessa. Myöskin kolmioiden päätepis-

16 12 teiden välisiä pisteitä on varsin helppo interpoloida ja kolmiot muodostavat helposti monimutkaisempia kolmiulotteisia objekteja. Objektiverkot koostuvat usein jostain kolmiorakenteesta. Yleisimmät kolmirakenteet, joilla objektiverkkoja kuvataan ovat kolmioviuhka ja kolmionauha. Nämä rakenteet kuvaavat kappaleita hyvin tehokkaasti, mikä on tärkeää, sillä näitä rakenteita käsitellään useasti piirtoliukuhihnan suorituksen aikana. Objektit ja niiden verteksit määrittävät, millaiset kolmiulotteiset kappaleet ovat muodoiltaan, mutta lopullisen ulkonäön, sen miltä kappaleet todellisuudessa näyttävät, määrittävät niiden materiaalit. Materiaaleja voisi kuvata ryhmäksi erilaisia määrityksiä kappaleen reagoimisesta valoon - varjostimet (shareder), tekstuurit ja heijastuvuus kuuluvat lähes jokaiseen materiaalimääritykseen. Materiaalien tarkka sisältö on todella paljon 3D-moottorista (3D engine) riippuvaista. Jokaisen 3D-objektin pintapikselin ulkonäkö (surface pixel) määräytyy pikselin väristä. Yleisin tapa määrittää tämä väri on kääriä objektin pintaan bittikarttakuva, josta kopioidaan jokaisen pikselin perusväri materiaaliin. Tätä väriä sitten myöhemmin muutetaan varjostimilla sekä valoilla niin, että saadaan aikaan tilanteeseen sopiva valotustasapaino. Varjostimet ovat pieniä ohjelmia, jotka määrittävät miten kukin pikseli lopulta piirretään ruudulle. Ohjelmoitavat varjostinyksiköt yleistyivät tietokoneiden näytönohjaimissa muutamia vuosia sitten. Sitä ennen kiinnitetty renderöintiliukuhihna huolehti tästä aika automaattisesti. Ohjelmoitavia varjostimia käytetään varsin laajasti esimerkiksi turkin, hiusten, veden sekä erilaisten tuliefektien aikaansaamiseksi. Oikean valon reitin simulointi verkkokalvolle on aivan liian hidasta tehdä reaaliaikaisesti. Reaalimaailmassa valon fotonit kimpoilevat esineistä ja silmä rekisteröi kaikki siihen tulleet fotonit. Silmä on varsin tarkka tässä ja on ymmärrettävää, että tätä ei ole mahdollista laskea kovin tehokkaasti reaaliaikaisesti. Pistevalo (point light) on perinteinen pelien valotekniikka. Siinä simuloidaan pistemäistä valonlähdettä siten, että valotuksen määrä vaihtelee arvovälillä [0,1]. Laskennassa käytetään kaavaa, jossa pisteen valoisuusarvoa muutetaan sen mukaan, miten

17 13 kaukana se sijaitsee valonlähteestä. Pistevalon lisäksi käytetään yleensä yhtä yleisvaloa. Pistevalojen ja yleisvalon yhteisvaikutus lasketaan tehosyistä usein niin, että vain muutama lähin valo lasketaan mukaan. Staattisella valotuksella voidaan laskea mallinnusohjelmissa etukäteen hienoja valoefektejä erillisille tekstuurille. Laitteiston piirtoliukuhihnat vaihtelevat varsin paljon toisistaan, mutta kaikilla niillä on joitain yhteisiä ominaisuuksia, vaikka järjestykset saattavatkin vaihdella runsaasti eri toteutuksissa. Prosessi on hyvin monivaiheinen ja sisältää paljon laskentaa. Tarkoituksena monilla näistä operaatioista on vähentää seuraavissa vaiheissa suoritettavaa laskentaa. Lähteet Rab04 Rabin, S., AI Game Programming Wisdom 2. Charles River Media, Hingham, Rab05 WaL01 WWJ05 Rabin, S., Introduction to Game Development. Charles River Media, Hingham, Massachusetts, Walsh, P. ja A., L., The Zen of Direct3D Game Programming. Prima Publishing, Roseville, California 95661, Walker, J., C., W. ja J., K., Making A Game Demo From Concept to Demo Gold. Woldware Publishing Inc.

18 Kuva 1: Yksinkertainen kolmio 2D avaruudessa [WaL01, s. 423]

19 Kuva 2: Yksinkertainen kolmionauha, jolla voidaan muodostaa monimutkaisempia kappaleita [WaL01, s. 425]. Kuva 3: Kuvattuna erilaisia alkeiskappaleiden tallennusrakenteita (vasemmalta oikealle): kolmiolista, kolmioviuhka, kolmionauha, viivalista ja viivanauha [WWJ05, s ].

Selainpelien pelimoottorit

Selainpelien pelimoottorit Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta

Lisätiedot

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat

Luku 6: Grafiikka. 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat 2D-grafiikka 3D-liukuhihna Epäsuora valaistus Laskostuminen Mobiililaitteet Sisätilat Ulkotilat 2D-piirto 2-ulotteisen grafiikan piirto perustuu yleensä valmiiden kuvien kopioimiseen näyttömuistiin (blitting)

Lisätiedot

Esityksen sisältö. Peruskäsitteitä. 3D Grafiikka tietokonepeleissä. Piirto- ja taustapuskuri

Esityksen sisältö. Peruskäsitteitä. 3D Grafiikka tietokonepeleissä. Piirto- ja taustapuskuri Esityksen sisältö 3D Grafiikka tietokonepeleissä Peruskäsitteitä Korkean tason rakenne Piirron alkeisobjektit Tekstuurit Valotus Laitteistopiirtoliukuhihna Yhteenveto Peruskäsitteitä Piirto- ja taustapuskuri

Lisätiedot

arvostelija OSDA ja UDDI palveluhakemistoina.

arvostelija OSDA ja UDDI palveluhakemistoina. Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution

Lisätiedot

Tilanhallintatekniikat

Tilanhallintatekniikat Tilanhallintatekniikat 3D grafiikkamoottoreissa Moottori on projektin osa joka vastaa tiettyjen toiminnallisuuksien hallinnasta hallitsee kaikki vastuualueen datat suorittaa kaikki tehtäväalueen toiminnot

Lisätiedot

Luento 3: 3D katselu. Sisältö

Luento 3: 3D katselu. Sisältö Tietokonegrafiikan perusteet T-.43 3 op Luento 3: 3D katselu Lauri Savioja Janne Kontkanen /27 3D katselu / Sisältö Kertaus: koordinaattimuunnokset ja homogeeniset koordinaatit Näkymänmuodostus Kameran

Lisätiedot

Luento 6: Piilopinnat ja Näkyvyys

Luento 6: Piilopinnat ja Näkyvyys Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Piilopinnat ja Näkyvyys Janne Kontkanen Geometrinen mallinnus / 1 Johdanto Piilopintojen poisto-ongelma Syntyy kuvattaessa 3-ulotteista maailmaa 2-ulotteisella

Lisätiedot

Aika/Datum Month and year Kesäkuu 2012

Aika/Datum Month and year Kesäkuu 2012 Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos/Institution Department Filosofian, historian, kulttuurin ja taiteiden tutkimuksen laitos Humanistinen tiedekunta Tekijä/Författare Author Veera Lahtinen

Lisätiedot

5. Grafiikkaliukuhihna: (1) geometriset operaatiot

5. Grafiikkaliukuhihna: (1) geometriset operaatiot 5. Grafiikkaliukuhihna: () geometriset operaatiot Johdanto Grafiikkaliukuhihnan tarkoitus on kuvata kolmiulotteisen kohdeavaruuden kuva kaksiulotteiseen kuva eli nättöavaruuteen. aikka kolmiulotteisiakin

Lisätiedot

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Tekijä Författare Author Työn nimi Arbetets titel Title Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month

Lisätiedot

T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011

T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011 T-111.4310 Vuorovaikutteinen tietokonegrafiikka Tentti 14.12.2011 Vastaa kolmeen tehtävistä 1-4 ja tehtävään 5. 1. Selitä lyhyesti mitä seuraavat termit tarkoittavat tai minkä ongelman algoritmi ratkaisee

Lisätiedot

Tietokonegrafiikka. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014

Tietokonegrafiikka. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014 Tietokonegrafiikka Jyry Suvilehto T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2014 1. Sovellusalueita 2. Rasterigrafiikkaa 3. Vektorigrafiikkaa 4. 3D-grafiikkaa 1. Säteenheitto

Lisätiedot

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus Tampereen yliopisto Tietokonegrafiikka 201 Tietojenkäsittelytiede Harjoitus 6 1..201 1. Tarkastellaan Gouraudin sävytysmallia. Olkoon annettuna kolmio ABC, missä A = (0,0,0), B = (2,0,0) ja C = (1,2,0)

Lisätiedot

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA Karoliina Ljungberg 16.04.2009 Ohjaajat: Ari Venäläinen, Jouni Räisänen

Lisätiedot

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan Pro gradu -tutkielma 31.1.2012 Helsingin yliopisto Humanistinen tiedekunta Filosofian, historian,

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka

T-110.1100 Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka Timo Tossavainen Mediatekniikan laitos, Aalto-yliopiston perustieteiden korkeakoulu Timo.Tossavainen@tkk.fi 25.3.2011 Sisältö Historiaa

Lisätiedot

Visualisoinnin perusteet

Visualisoinnin perusteet 1 / 12 Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto Visualisoinnin perusteet Mitä on renderöinti? 2 / 12 3D-mallista voidaan generoida näkymiä tietokoneen avulla. Yleensä perspektiivikuva Valon

Lisätiedot

TIES471 Reaaliaikainen renderöinti

TIES471 Reaaliaikainen renderöinti TIES471 Reaaliaikainen renderöinti Kotitehtävä 2.3.3 Muistin kaistanleveys Koko kaistanleveyden kustannus: B = d * Zr + o(d) * (Z w + C w + T r ) Lisätään vielä tekstuuri välimuisti (texture cache) vaikutus

Lisätiedot

Sisällys. T-111.4300 Tietokonegrafiikan perusteet. OpenGL-ohjelmointi 11/2007. Mikä on OpenGL?

Sisällys. T-111.4300 Tietokonegrafiikan perusteet. OpenGL-ohjelmointi 11/2007. Mikä on OpenGL? T-111.4300 Tietokonegrafiikan perusteet OpenGL-ohjelmointi 11/2007 Sisällys Mikä on OpenGL? historia nykytilanne OpenGL:n toiminta Piirtäminen ja matriisit Muuta hyödyllistä kameran sijoittaminen valaistus

Lisätiedot

Luonnontieteiden popularisointi ja sen ideologia

Luonnontieteiden popularisointi ja sen ideologia Luonnontieteiden popularisointi ja sen ideologia Tapauksina Reino Tuokko ja Helsingin Sanomat 1960-luvulla Ahto Apajalahti Helsingin yliopisto Humanistinen tiedekunta Suomen ja Pohjoismaiden historia Pro

Lisätiedot

Luento 10: Näkyvyystarkastelut ja varjot. Sisältö

Luento 10: Näkyvyystarkastelut ja varjot. Sisältö Tietokonegrafiikka / perusteet T-111.300/301 4 ov / 2 ov Luento 10: Näkyvyystarkastelut ja varjot Marko Myllymaa / Lauri Savioja 10/04 Näkyvyystarkastelut ja varjot / 1 Näkyvyystarkastelu Solurenderöinti

Lisätiedot

! #! %! & #!!!!! ()) +

! #! %! & #!!!!! ()) + ! #! %! & #!!!!! ()) + Tiedekunta/Osasto Fakultet/Sektion Faculty Humanistinen tiedekunta Laitos Institution Department Taiteiden tutkimuksen laitos Tekijä Författare Author Matti Pesonen Työn nimi Arbetets

Lisätiedot

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa Kohtdialogia? Organisaationtoimintaympäristönteemojenhallinta dynaamisessajulkisuudessatarkastelussatoiminta sosiaalisessamediassa SatuMariaPusa Helsinginyliopisto Valtiotieteellinentiedekunta Sosiaalitieteidenlaitos

Lisätiedot

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin INSTITUUTIOTTALOUSKASVUNEDELLYTYKSENÄ KatsauskorruptionvaikutuksestaVenäjänalueelliseentalouskasvuunjasuoriin ulkomaisiininvestointeihin2000 2010 AshekMohamedTarikHossain HelsinginYliopisto Valtiotieteellinentiedekunta

Lisätiedot

3D-Maailman tuottaminen

3D-Maailman tuottaminen hyväksymispäivä arvosana arvostelija 3D-Maailman tuottaminen Eero Sääksvuori Helsinki 11.12.2017 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

Luento 2: Tulostusprimitiivit

Luento 2: Tulostusprimitiivit Tietokonegrafiikan perusteet T-111.4300 3 op Luento : Tulostusprimitiivit Lauri Savioja 11/06 D primitiivit / 1 Sisältö Mallintamisen alkeita Perusprimitiivit (GKS) attribuutteineen Näyttömuisti D primitiivit

Lisätiedot

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus 2 7.2.2013 1. Matematiikan lukiokurssissa on esitetty, että ylöspäin aukeavan paraabelin f(x) = ax 2 +bx+c,a > 0,minimikohtasaadaan,kunf

Lisätiedot

Reaaliaikaiset varjoalgoritmit. Atso Kauppinen

Reaaliaikaiset varjoalgoritmit. Atso Kauppinen Reaaliaikaiset varjoalgoritmit Atso Kauppinen Tampereen yliopisto Tietojenkäsittelytieteiden laitos Tietojenkäsittelyoppi Pro gradu -tutkielma Maaliskuu 2008 Tampereen yliopisto Tietojenkäsittelytieteiden

Lisätiedot

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys

10.2. Säteenjäljitys ja radiositeettialgoritmi. Säteenjäljitys 10.2. Säteenjäljitys ja radiositeettialgoritmi Säteenjäljitys Säteenjäljityksessä (T. Whitted 1980) valonsäteiden kulkema reitti etsitään käänteisessä järjestyksessä katsojan silmästä takaisin kuvaan valolähteeseen

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys .. Kohteiden konstruktiivinen avaruusgeometrinen esitys Avaruusgeometrinen esitys on käyttäjäriippuvainen ja vaati erikoismenetelmiä tai lopuksi konversion monikulmiomalliksi. Se on korkean tason esitys

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

Monikulmiot 1/5 Sisältö ESITIEDOT: kolmio

Monikulmiot 1/5 Sisältö ESITIEDOT: kolmio Monikulmiot 1/5 Sisältö Monikulmio Monikulmioksi kutsutaan tasokuviota, jota rajaa perättäisten janojen muodostama monikulmion piiri. Janat ovat monikulmion sivuja, niiden päätepisteet monikulmion kärkipisteitä.

Lisätiedot

Möbiuksen nauha. Välineet: paperisuikaleita, paperiristejä (liitteenä) lyijykynä, teippiä, sakset, värikyniä, liimaa ja värillistä paperia

Möbiuksen nauha. Välineet: paperisuikaleita, paperiristejä (liitteenä) lyijykynä, teippiä, sakset, värikyniä, liimaa ja värillistä paperia Möbiuksen nauha Avainsanat: yksipuolinen paperi, kaksiulotteinen pinta, topologia Luokkataso: 1.-2. luokka, 3.-5. luokka, 6.-9. luokka, lukio Välineet: paperisuikaleita, paperiristejä (liitteenä) lyijykynä,

Lisätiedot

Scratch ohjeita. Perusteet

Scratch ohjeita. Perusteet Perusteet Scratch ohjeita Scratch on graafinen ohjelmointiympäristö koodauksen opetteluun. Se soveltuu hyvin alakouluista yläkouluunkin asti, sillä Scratchin käyttömahdollisuudet ovat monipuoliset. Scratch

Lisätiedot

Videon tallentaminen Virtual Mapista

Videon tallentaminen Virtual Mapista Videon tallentaminen Virtual Mapista Kamera-ajon tekeminen Karkean kamera ajon teko onnistuu nopeammin Katseluohjelmassa (Navigointi > Näkymät > Tallenna polku). Liikeradan ja nopeuden tarkka hallinta

Lisätiedot

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla ALKUHARJOITUS Kynän ja paperin avulla peilaaminen koordinaatistossa a) Peilaa pisteen (0,0) suhteen koordinaatistossa sijaitseva - neliö, jonka

Lisätiedot

Valokuvien matematiikkaa

Valokuvien matematiikkaa Valokuvien matematiikkaa Avainsanat: valokuva, pikseli, päättely Luokkataso: 3.-5. luokka, 6.-9. luokka, lukio, yliopisto Välineet: Kynä, tehtävämonisteet (liitteenä), mahdollisiin jatkotutkimuksiin tietokone

Lisätiedot

Vektoreita GeoGebrassa.

Vektoreita GeoGebrassa. Vektoreita GeoGebrassa 1 Miten GeoGebralla piirretään vektoreita? Työvälineet ja syöttökentän komennot Vektoreiden esittäminen GeoGebrassa on luontevaa: vektorien piirtämiseen on kaksi työvälinettä vektoreita

Lisätiedot

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on

Vektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on 13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu

Lisätiedot

Kaksirivisen matriisin determinantille käytämme myös merkintää. a 11 a 12 a 21 a 22. = a 11a 22 a 12 a 21. (5.1) kaksirivine

Kaksirivisen matriisin determinantille käytämme myös merkintää. a 11 a 12 a 21 a 22. = a 11a 22 a 12 a 21. (5.1) kaksirivine Vaasan yliopiston julkaisuja 97 5 DETERMINANTIT Ch:Determ Sec:DetDef 5.1 Determinantti Tämä kappale jakautuu kolmeen alakappaleeseen. Ensimmäisessä alakappaleessa määrittelemme kaksi- ja kolmiriviset determinantit.

Lisätiedot

Luento 6: Tulostusprimitiivien toteutus

Luento 6: Tulostusprimitiivien toteutus Tietokonegrafiikan perusteet T-111.4300 3 op Luento 6: Tulostusprimitiivien toteutus Lauri Savioja 11/07 Primitiivien toteutus / 1 ntialiasointi Fill-algoritmit Point-in-polygon Sisältö Primitiivien toteutus

Lisätiedot

KOLMIULOTTEINEN TIETOKONEGRAFIIKKA PELEISSÄ

KOLMIULOTTEINEN TIETOKONEGRAFIIKKA PELEISSÄ TEKNILLINEN KORKEAKOULU Tietoliikenneohjelmistojen ja Multimedian Laboratorio T-111.210 Informaatioverkostot: Studio 4 Kevät 2005 KOLMIULOTTEINEN TIETOKONEGRAFIIKKA PELEISSÄ Markus K Berg 60262R Informaatioverkostot

Lisätiedot

Digikuvan peruskäsittelyn. sittelyn työnkulku. Soukan Kamerat 22.1.2007. Soukan Kamerat/SV

Digikuvan peruskäsittelyn. sittelyn työnkulku. Soukan Kamerat 22.1.2007. Soukan Kamerat/SV Digikuvan peruskäsittelyn sittelyn työnkulku Soukan Kamerat 22.1.2007 Sisält ltö Digikuvan siirtäminen kamerasta tietokoneelle Skannaus Kuvan kääntäminen Värien säätö Sävyjen säätö Kuvan koko ja resoluutio

Lisätiedot

Tasogeometriaa GeoGebran piirtoalue ja työvälineet

Tasogeometriaa GeoGebran piirtoalue ja työvälineet Tasogeometriaa GeoGebran piirtoalue ja työvälineet Näissä harjoituksissa työskennellään näkymässä Näkymät->Geometria PIIRRÄ (ja MITTAA) a) jana toinen jana, jonka pituus on 3 b) kulma toinen kulma, jonka

Lisätiedot

Luento 4: Näkyvyystarkastelut ja varjot

Luento 4: Näkyvyystarkastelut ja varjot Tietokonegrafiikan jatkokurssi T-111.5300 4 op Luento 4: Näkyvyystarkastelut ja varjot Lauri Savioja 02/07 Näkyvyystarkastelut ja varjot / 1 Näkyvyystarkastelu Solurenderöinti Portaalirenderöinti Quad-/Octtree

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018

Lisätiedot

Reaaliaikainen karvapeitteen piirtäminen näytönohjaimella

Reaaliaikainen karvapeitteen piirtäminen näytönohjaimella Reaaliaikainen karvapeitteen piirtäminen näytönohjaimella Jussi Kekäläinen Pro gradu -tutkielma Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Tammikuu 2016 ITÄ-SUOMEN YLIOPISTO, Luonnontieteiden

Lisätiedot

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet Valitse Näkymät->Geometria PIIRRETÄÄN KOLMIOITA: suorakulmainen kolmio keksitkö, miten korostat suoraa kulmaa? tasakylkinen kolmio keksitkö,

Lisätiedot

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla: 11 Determinantti Neliömatriisille voidaan laskea luku, joka kertoo muun muassa, onko matriisi kääntyvä vai ei Tätä lukua kutsutaan matriisin determinantiksi Determinantilla on muitakin sovelluksia, mutta

Lisätiedot

Osoita, että kaikki paraabelit ovat yhdenmuotoisia etsimällä skaalauskuvaus, joka vie paraabelin y = ax 2 paraabelille y = bx 2. VASTAUS: , b = 2 2

Osoita, että kaikki paraabelit ovat yhdenmuotoisia etsimällä skaalauskuvaus, joka vie paraabelin y = ax 2 paraabelille y = bx 2. VASTAUS: , b = 2 2 8. Geometriset kuvaukset 8.1. Euklidiset kuvaukset 344. Esitä muodossa x = Ax + b se avaruuden E 3 peilauskuvaus, jonka symmetriatasona on x 1 3x + x 3 = 6. A = 1 3 6 6 3, b = 1 1 18. 3 6 6 345. Tason

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1). HY / Matematiikan ja tilastotieteen laitos Vektorianalyysi II, syksy 017 Harjoitus 4 Ratkaisuehdotukset 4.1. Osoita, että tasa-arvojoukko S F (0), F : R 3 R, F (x) = 3x 1 x 3 + e x + x e x 3, on säännöllinen

Lisätiedot

Lieriö ja särmiö Tarkastellaan pintaa, joka syntyy, kun tasoa T leikkaava suora s liikkuu suuntansa

Lieriö ja särmiö Tarkastellaan pintaa, joka syntyy, kun tasoa T leikkaava suora s liikkuu suuntansa Lieriö ja särmiö Tarkastellaan pintaa, joka syntyy, kun tasoa T leikkaava suora s liikkuu suuntansa säilyttäen pitkin tason T suljettua käyrää (käyrä ei leikkaa itseään). Tällöin suora s piirtää avaruuteen

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä 3/4+^2 3 4+ 2 Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +^2 3 + 4 2 Kopioi

Lisätiedot

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa

9. Vektorit. 9.1 Skalaarit ja vektorit. 9.2 Vektorit tasossa 9. Vektorit 9.1 Skalaarit ja vektorit Skalaari on koon tai määrän mitta. Tyypillinen esimerkki skalaarista on massa. Lukumäärä on toinen hyvä esimerkki skalaarista. Vektorilla on taas suuruus ja suunta.

Lisätiedot

3D-renderöinti OpenGL-ohjelmointirajapinnalla

3D-renderöinti OpenGL-ohjelmointirajapinnalla Mikko Kemppainen 3D-renderöinti OpenGL-ohjelmointirajapinnalla Tietotekniikan kandidaatintutkielma 28. huhtikuuta 2017 Jyväskylän yliopisto Tietotekniikka Tekijä: Mikko Kemppainen Yhteystiedot: mikko.t.a.kemppainen@student.jyu.fi

Lisätiedot

T Tietokonegrafiikan perusteet. OpenGL-ohjelmointi

T Tietokonegrafiikan perusteet. OpenGL-ohjelmointi T-111.4300 Tietokonegrafiikan perusteet OpenGL-ohjelmointi Id Softwaren huhtikuussa 2004 julkaisema Doom 3 -peli käyttää OpenGL-kirjastoa. Sisällys Mikä on OpenGL? historia nykytilanne OpenGL:n toiminta

Lisätiedot

Kanta ja Kannan-vaihto

Kanta ja Kannan-vaihto ja Kannan-vaihto 1 Olkoon L vektoriavaruus. Äärellinen joukko L:n vektoreita V = { v 1, v 2,..., v n } on kanta, jos (1) Jokainen L:n vektori voidaan lausua v-vektoreiden lineaarikombinaationa. (Ts. Span(V

Lisätiedot

1. STEREOKUVAPARIN OTTAMINEN ANAGLYFIKUVIA VARTEN. Hyvien stereokuvien ottaminen edellyttää kahden perusasian ymmärtämistä.

1. STEREOKUVAPARIN OTTAMINEN ANAGLYFIKUVIA VARTEN. Hyvien stereokuvien ottaminen edellyttää kahden perusasian ymmärtämistä. 3-D ANAGLYFIKUVIEN TUOTTAMINEN Fotogrammetrian ja kaukokartoituksen laboratorio Teknillinen korkeakoulu Petri Rönnholm Perustyövaiheet: A. Ota stereokuvapari B. Poista vasemmasta kuvasta vihreä ja sininen

Lisätiedot

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

PN-puu. Helsinki Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos PN-puu Erno Härkönen Helsinki 24.10.2006 Seminaari: Tietokannat nyt HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017

Lisätiedot

1 Kannat ja kannanvaihto

1 Kannat ja kannanvaihto 1 Kannat ja kannanvaihto 1.1 Koordinaattivektori Oletetaan, että V on K-vektoriavaruus, jolla on kanta S = (v 1, v 2,..., v n ). Avaruuden V vektori v voidaan kirjoittaa kannan vektorien lineaarikombinaationa:

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 8 1 Suunnattu derivaatta Aluksi tarkastelemme vektoreita, koska ymmärrys vektoreista helpottaa alla olevien asioiden omaksumista. Kun liikutaan tasossa eli avaruudessa

Lisätiedot

Tietotekniikan valintakoe

Tietotekniikan valintakoe Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan

Lisätiedot

Oppimateriaalin kokoaminen ja paketointi

Oppimateriaalin kokoaminen ja paketointi Oppimateriaalin kokoaminen ja paketointi Pekka Simola Helsinki 14.4.2004 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

MATEMATIIKKA JA TAIDE II

MATEMATIIKKA JA TAIDE II 1 MATEMATIIKKA JA TAIDE II Aihepiirejä: Hienomotoriikkaa harjoittavia kaksi- ja kolmiulotteisia väritys-, piirtämis- ja askartelutehtäviä, myös sellaisia, joissa kuvio jatkuu loputtomasti, ja sellaisia,

Lisätiedot

Tehtävä 2: Tietoliikenneprotokolla

Tehtävä 2: Tietoliikenneprotokolla Tehtävä 2: Tietoliikenneprotokolla Johdanto Tarkastellaan tilannetta, jossa tietokone A lähettää datapaketteja tietokoneelle tiedonsiirtovirheille alttiin kanavan kautta. Datapaketit ovat biteistä eli

Lisätiedot

Arkkitehtuurinen reflektio

Arkkitehtuurinen reflektio Arkkitehtuurinen reflektio Toni Ruokolainen Toni.Ruokolainen@cs.helsinki.fi Helsinki 6.10.2003 Tiivistelmä HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET

Lisätiedot

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta Laitos Institution Department Politiikan ja talouden tutkimuksen laitos Tekijä Författare Author Virta, Mikko Antero Työn nimi Arbetets

Lisätiedot

14 Monikulmiot 1. Nimeä monikulmio. a) b) c) Laske monikulmion piiri. a) 30,8 cm 18,2 cm. Laske sivun x pituus, kun monikulmion piiri on 25,0 cm.

14 Monikulmiot 1. Nimeä monikulmio. a) b) c) Laske monikulmion piiri. a) 30,8 cm 18,2 cm. Laske sivun x pituus, kun monikulmion piiri on 25,0 cm. 1 14 Monikulmiot Nimeä monikulmio. a) b) c) kolmio nelikulmio 12-kulmio Laske monikulmion piiri. a) 4,2 cm b) 3,6 cm 11,2 cm 4,8 cm 3,6 cm 4,3 cm 30,8 cm 18,2 cm Laske sivun x pituus, kun monikulmion piiri

Lisätiedot

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2 Uolevin reitti Kuvaus Uolevi on ruudukon vasemmassa ylänurkassa ja haluaisi päästä oikeaan alanurkkaan. Uolevi voi liikkua joka askeleella ruudun verran vasemmalle, oikealle, ylöspäin tai alaspäin. Lisäksi

Lisätiedot

Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8

Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8 Oppimateriaali oppilaalle ja opettajalle : GeoGebra oppilaan työkaluna ylioppilaskirjoituksissa 2016 versio 0.8 Piirtoalue ja algebraikkuna Piirtoalueelle piirretään työvälinepalkista löytyvillä työvälineillä

Lisätiedot

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet

TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet TYÖPAJA 1: Tasogeometriaa GeoGebran piirtoalue ja työvälineet Näissä harjoituksissa työskennellään näkymässä Näkymät->Geometria PIIRRÄ a) jana, jonka pituus on 3 b) kulma, jonka suuruus on 45 astetta c)

Lisätiedot

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa

Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Hallintomallit Suomen valtionhallinnon tietohallintostrategioissa Lauri Eloranta Helsingin yliopisto Valtiotieteellinen tiedekunta Viestintä Pro gradu -tutkielma, 2014 Hallintomallit)Suomen)valtionhallinnon)tietohallintostrategioissa

Lisätiedot

Tietokonegrafiikan perusteet

Tietokonegrafiikan perusteet Tietokonegrafiikan perusteet Kuvamallit Koordinaattijärjestelmät Ihmisnäön ominaisuudet Grafiikkalaitteisto Abstrakti kangas Piirtäminen Teksti Leikkaaminen Väri Petri Vuorimaa 1 Kuvamallit Kuvien esittämiseen

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

MEMS-muisti relaatiotietokannoissa

MEMS-muisti relaatiotietokannoissa MEMS-muisti relaatiotietokannoissa Antti Tikka Espoo 28.2.2009 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto

Lisätiedot

Pintamallintaminen ja maastomallinnus

Pintamallintaminen ja maastomallinnus 1 / 25 Digitaalisen arkkitehtuurin yksikkö Aalto-yliopisto Pintamallintaminen ja maastomallinnus Muistilista uuden ohjelman opetteluun 2 / 25 1. Aloita käyttöliittymään tutustumisesta: Mitä hiiren näppäintä

Lisätiedot

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48 MS-A3/A5 Matriisilaskenta Malliratkaisut 5 / vko 48 Tehtävä (L): a) Onko 4 3 sitä vastaava ominaisarvo? b) Onko λ = 3 matriisin matriisin 2 2 3 2 3 7 9 4 5 2 4 4 ominaisvektori? Jos on, mikä on ominaisarvo?

Lisätiedot

Algoritmit 1. Luento 11 Ti Timo Männikkö

Algoritmit 1. Luento 11 Ti Timo Männikkö Algoritmit 1 Luento 11 Ti 14.2.2017 Timo Männikkö Luento 11 Algoritminen ongelmanratkaisu Osittaminen Lomituslajittelu Lomituslajittelun vaativuus Rekursioyhtälöt Pikalajittelu Algoritmit 1 Kevät 2017

Lisätiedot

Kenguru 2012 Student sivu 1 / 8 (lukion 2. ja 3. vuosi)

Kenguru 2012 Student sivu 1 / 8 (lukion 2. ja 3. vuosi) Kenguru 2012 Student sivu 1 / 8 Nimi Ryhmä Pisteet: Kenguruloikan pituus: Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto. Väärästä vastauksesta

Lisätiedot

1 Funktiot, suurin (max), pienin (min) ja keskiarvo

1 Funktiot, suurin (max), pienin (min) ja keskiarvo 1 Funktiot, suurin (max), pienin (min) ja keskiarvo 1. Avaa uusi työkirja 2. Tallenna työkirja nimellä perusfunktiot. 3. Kirjoita seuraava taulukko 4. Muista taulukon kirjoitusjärjestys - Ensin kirjoitetaan

Lisätiedot

Flow!Works Pikaohjeet

Flow!Works Pikaohjeet 1 Flow!Works Pikaohjeet FW 3.0.0 Piirtotyökalut Kynä Sivellin Kirjoituskynä Korostuskynä Loistekynä Kuviokynä Älykynä Elekynä Valitse Kuvion Piirtotoiminnot Täytä llä Leveys Pyyhekumi Pyyhi alku muoto

Lisätiedot

GEOMETRIA MAA3 Geometrian perusobjekteja ja suureita

GEOMETRIA MAA3 Geometrian perusobjekteja ja suureita GEOMETRI M3 Geometrian perusobjekteja ja suureita Piste ja suora: Piste, suora ja taso ovat geometrian peruskäsitteitä, joita ei määritellä. Voidaan ajatella, että kaikki geometriset kuviot koostuvat pisteistä.

Lisätiedot

Tässä osassa ei käytetä laskinta. Selitä päätelmäsi lyhyesti tai perustele ratkaisusi laskulausekkeella, kuviolla tms.

Tässä osassa ei käytetä laskinta. Selitä päätelmäsi lyhyesti tai perustele ratkaisusi laskulausekkeella, kuviolla tms. OSA 1 Ratkaisuaika 30 min Pistemäärä 20 Tässä osassa ei käytetä laskinta. Selitä päätelmäsi lyhyesti tai perustele ratkaisusi laskulausekkeella, kuviolla tms. 1. Mikä on suurin kokonaisluku, joka toteuttaa

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden

Lisätiedot

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti. Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen

Lisätiedot

!"#$%&'$("#)*+,!!,"*--.$*#,&--#"*/".,,%0 1&'23456789::94752;&27455<:4;2;&,9:=>23?277<&8=@74;9&ABBCDABBE

!#$%&'$(#)*+,!!,*--.$*#,&--#*/.,,%0 1&'23456789::94752;&27455<:4;2;&,9:=>23?277<&8=@74;9&ABBCDABBE !"#$%&'$("#)*+,!!,"*--.$*#,&--#"*/".,,%0 1&'23456789::94752;&2745523?27747544H9;&IG@&JG9?=&15=5H42>:9 '28

Lisätiedot

POHDIN - projekti. Funktio. Vektoriarvoinen funktio

POHDIN - projekti. Funktio. Vektoriarvoinen funktio POHDIN - projekti Funktio Funktio f joukosta A joukkoon B tarkoittaa sääntöä, joka liittää jokaiseen joukon A alkioon jonkin alkion joukosta B. Yleensä merkitään f : A B. Usein käytetään sanaa kuvaus synonyymina

Lisätiedot

KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA

KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA KUVANKÄSITTELY THE GIMP FOR WINDOWS OHJELMASSA Ohjeistuksessa käydään läpi kuvan koon ja kuvan kankaan koon muuntaminen esimerkin avulla. Ohjeistus on laadittu auttamaan kuvien muokkaamista kuvakommunikaatiota

Lisätiedot

Algoritmi III Vierekkäisten kuvioiden käsittely. Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy

Algoritmi III Vierekkäisten kuvioiden käsittely. Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy Algoritmi III Vierekkäisten kuvioiden käsittely Metsätehon tuloskalvosarja 7a/2018 LIITE 3 Timo Melkas Kirsi Riekki Metsäteho Oy Algoritmi III vierekkäisten kuvioiden käsittely Lähtötietoina algoritmista

Lisätiedot

Venekilpailu! Esteiden väistely ja hahmon ohjaaminen

Venekilpailu! Esteiden väistely ja hahmon ohjaaminen Venekilpailu! Esteiden väistely ja hahmon ohjaaminen 1 Vaihe 1 Valmistelu Lataa Boat Race eli Venekisa -niminen projekti seuraavasta linkistä ja avaa Scratchissa (Online- tai Offline-versiossa): http://jumpto.cc/boat-get

Lisätiedot

Oppimistavoitematriisi

Oppimistavoitematriisi Oppimistavoitematriisi Lineaarialgebra ja matriisilaskenta I Arvosanaan 1 2 riittävät Arvosanaan 5 riittävät Yhtälöryhmät (YR) Osaan ratkaista ensimmäisen asteen yhtälöitä ja yhtälöpareja Osaan muokata

Lisätiedot

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 4 / vko 47

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 4 / vko 47 MS-A3/A5 Matriisilaskenta Malliratkaisut 4 / vko 47 Tehtävä 1 (L): Oletetaan, että AB = AC, kun B ja C ovat m n-matriiseja. a) Näytä, että jos A on kääntyvä, niin B = C. b) Seuraako yhtälöstä AB = AC yhtälö

Lisätiedot

Osoite: https://ggbm.at/tewz3jsv Tehtävä 1. Tutkitaan appletin kuutioita. a) Kuinka monta eripituista janaa voidaan piirtää yhdistämällä kaksi kuution kärkeä? b) Mikä a-kohdan janoista on pisin? Perustelkaa.

Lisätiedot

Videon tallentaminen Virtual Mapista

Videon tallentaminen Virtual Mapista Videon tallentaminen Virtual Mapista Kamera-ajon tekeminen Karkean kamera ajon teko onnistuu nopeimmin Katseluohjelmassa (Navigointi > Näkymät > Tallenna polku). Liikeradan ja nopeuden tarkka hallinta

Lisätiedot

MICROSOFT EXCEL 2010

MICROSOFT EXCEL 2010 1 MICROSOFT EXCEL 2010 Taulukkolaskentaohjelman jatkokurssin tärkeitä asioita 2 Taulukkolaskentaohjelmalla voit Käyttää tietokonetta ruutupaperin ja taskulaskimen korvaajana Laatia helposti ylläpidettäviä

Lisätiedot

Tietokonegrafiikan perusteet

Tietokonegrafiikan perusteet Tietokonegrafiikan perusteet Kuvamallit Koordinaattijärjestelmät Ihmisnäön ominaisuudet Grafiikkalaitteisto Abstrakti kangas Piirtäminen Teksti Leikkaaminen Väri Petri Vuorimaa 1 Kuvamallit Kuvien esittämiseen

Lisätiedot