4. Esittäminen ja visualisointi (renderöinti)

Samankaltaiset tiedostot
2.2. Kohteiden konstruktiivinen avaruusgeometrinen esitys

6.5. Renderöintijärjestys

Luento 6: Geometrinen mallinnus

Luento 2: Viivan toteutus

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Monikulmiot 1/5 Sisältö ESITIEDOT: kolmio

Luento 7: Lokaalit valaistusmallit

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

Numeeriset menetelmät TIEA381. Luento 7. Kirsi Valjus. Jyväskylän yliopisto. Luento 7 () Numeeriset menetelmät / 43

MS-A0202 Differentiaali- ja integraalilaskenta 2 (SCI) Luento 1: Parametrisoidut käyrät ja kaarenpituus

5. Grafiikkaliukuhihna: (1) geometriset operaatiot

Numeeriset menetelmät TIEA381. Luento 6. Kirsi Valjus. Jyväskylän yliopisto. Luento 6 () Numeeriset menetelmät / 33

Kahden suoran leikkauspiste ja välinen kulma (suoraparvia)

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

13. Taylorin polynomi; funktioiden approksimoinnista. Muodosta viidennen asteen Taylorin polynomi kehityskeskuksena origo funktiolle

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Numeeriset menetelmät

T Tietokoneanimaatio ja mallintaminen. Lauri Savioja Teknillinen korkeakoulu Tietoliikenneohjelmistojen ja multimedian laboratorio 02/02

Matematiikan tukikurssi

Polkuintegraali yleistyy helposti paloitain C 1 -poluille. Määritelmä Olkoot γ : [a, b] R m paloittain C 1 -polku välin [a, b] jaon

12.5. Vertailua. Silmäillään laskostumisen estoa tietokonegrafiikan kannalta. Kuva luonnehtii vaihtoehtoja.

Laskuharjoitus 2A ( ) Aihepiiri: Raja-arvot etc. Adams & Essex, 8th Edition, Chapter 12. z = f(x, 0) = x2 a z = f(0, y) = 02 a 2 + y2

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Luento 6: Piilopinnat ja Näkyvyys

RATKAISUT a + b 2c = a + b 2 ab = ( a ) 2 2 ab + ( b ) 2 = ( a b ) 2 > 0, koska a b oletuksen perusteella. Väite on todistettu.

Aalto-yliopiston perustieteiden korkeakoulu Matematiikan ja systeemianalyysin laitos

Osa IX. Z muunnos. Johdanto Diskreetit funktiot

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

Yleistä vektoreista GeoGebralla

Aalto-yliopiston perustieteiden korkeakoulu Matematiikan ja systeemianalyysin laitos

a) on lokaali käänteisfunktio, b) ei ole. Piirrä näiden pisteiden ympäristöön asetetun neliöruudukon kuva. VASTAUS:

Sisältö. Luento 6: Piilopinnat. Peruskäsitteet (jatkuu) Peruskäsitteitä. Yksinkertaisia tapauksia. Yksinkertaiset tapaukset jatkuu

Matematiikan tukikurssi

10. Esitys ja kuvaus

Matematiikka B1 - avoin yliopisto

Luento 6: Tulostusprimitiivien toteutus

Numeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35

Grafiikka 205. Tässä luvussa käsitellään geometriaa ja graafisia kohteita. Mukana on pääosin alkeisoperaatioita.

6*. MURTOFUNKTION INTEGROINTI

MS-A0207 Differentiaali- ja integraalilaskenta 2 (Chem) Yhteenveto, osa I

MAB3 - Harjoitustehtävien ratkaisut:

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

Luku 8. Aluekyselyt. 8.1 Summataulukko

Numeeriset menetelmät

BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 1, Kevät 2018

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

Matematiikan tukikurssi

MS-A0003/A0005 Matriisilaskenta Malliratkaisut 5 / vko 48

Ympyrä 1/6 Sisältö ESITIEDOT: käyrä, kulma, piste, suora

Maksimit ja minimit 1/5 Sisältö ESITIEDOT: reaalifunktiot, derivaatta

Numeeriset menetelmät

2 Pistejoukko koordinaatistossa

Luento 5: Suurten lineaaristen yhtälöryhmien ratkaiseminen iteratiivisilla menetelmillä

Juuri 6 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Vastaus: Määrittelyehto on x 1 ja nollakohta x = 1.

Duaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki

Viikon aiheet. Funktion lineaarinen approksimointi

3. Kolmiulotteisten kohteiden esitys ja mallintaminen: jatkoa

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

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

Luentoesimerkki: Riemannin integraali

Näihin harjoitustehtäviin liittyvä teoria löytyy Adamsista: Ad6, Ad5, 4: 12.8, ; Ad3: 13.8,

MS-A0305 Differentiaali- ja integraalilaskenta 3 Luento 6: Vektorikentän viivaintegraali

Numeeriset menetelmät

Matematiikan tukikurssi

Pituus- ja pinta-alayksiköt. m dm cm mm. km hm dam m. a) neljän pienen kohteen pituus millimetreiksi, senttimetreiksi ja desimetreiksi

Luento 3: Tulostusprimitiivien toteutus

Tietorakenteet ja algoritmit - syksy

KESKEISET SISÄLLÖT Keskeiset sisällöt voivat vaihdella eri vuositasoilla opetusjärjestelyjen mukaan.

läheisyydessä. Piirrä funktio f ja nämä approksimaatiot samaan kuvaan. Näyttääkö järkeenkäyvältä?

Luento 8: Epälineaarinen optimointi

Määrätty integraali. Markus Helén. Mäntän lukio


Juuri 4 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Kertaus. b) B = (3, 0, 5) K2. ( )

Matematiikan tukikurssi

Matematiikan tukikurssi

Lauseen erikoistapaus on ollut kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa seuraavassa muodossa:

Numeeriset menetelmät

Osakesalkun optimointi

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Matematiikan tukikurssi, kurssikerta 3

POHDIN - projekti. Funktio. Vektoriarvoinen funktio

Jatkuvat satunnaismuuttujat

Juuri 4 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty Kertaus. b) B = (3, 0, 5) K2. 8 ( 1)

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

MS-A0305 Differentiaali- ja integraalilaskenta 3 Luento 5: Kaarenpituus ja skalaarikentän viivaintegraali

Differentiaali- ja integraalilaskenta 3 Ratkaisut viikko 3

Numeeriset menetelmät

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

MS-A0102 Differentiaali- ja integraalilaskenta 1

Differentiaalilaskenta 1.

Matematiikan tukikurssi

Yhtälön oikealla puolella on säteen neliö, joten r. = 5 eli r = ± 5. Koska säde on positiivinen, niin r = 5.

Numeeriset menetelmät

Algoritmit 1. Luento 3 Ti Timo Männikkö

Vektoreita GeoGebrassa.

1 Määrittelyjä ja aputuloksia

4. Funktion arvioimisesta eli approksimoimisesta

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

MAA15 Vektorilaskennan jatkokurssi, tehtävämoniste

Transkriptio:

4. Esittäminen ja visualisointi (renderöinti) Tutkitaan erilaisia renderöintimenetelmiä, joita käytetään luvuissa 2 ja 3 esitettyjen kuvien esitysmuotojen visualisointiin. Seuraavassa selvitetään: (1) Monikulmioverkkojen renderöintimenetelmät ovat tärkeimpiä, ja niitä on käytetty aina noin vuodesta 1975 asti. (2) Kuutiolliset, parametriset laput on helpointa renderöidä muuttamalla ne ensin monikulmioiksi. On käytettävissä nopeita alijakoalgoritmeja tätä varten. Kyseessä on tietysti approksimointi, mutta se on tehtävissä kuvan visuaalisen laadun kärsimättä. (3) CSG kohteet renderöidään joko säteenjäljittämisellä tai muuttamalla ne ensin vokseliesityksiksi ja edelleen monikulmioiksi. Ongelmana on Boolen yhdistettyjen operaatioiden laskenta. (4) Vokselit muutetaan monikulmioverkoksi. Lähestymistavan haittana on monikulmioiden suuri määrä. (5) Implisiittiset esitysmuodot muutetaan vokseleiksi tai käsitellään säteenjäljityksellä. 4. luku 212 4. luku 213 4.1. Monikulmioverkkojen renderöinti Monikulmioverkot ovat käytetyin esitysmuoto tietokonegrafiikassa, ja niitä hyödynnetään laitetasolla grafiikkatyöasemissa tai korteissa. Syötteenä on monikulmioiden lista ja tuloksena väri jokaiselle pikselille, jonka kukin monikulmio projisoi näytölle. Monikulmiot ovat grafiikkaohjelmoijan käytettävissä oleva alimman tason alkio. Prosessointi on periaatteessa yksinkertaista ja nopeaa. Toisaalta kehitys on johtanut monimutkaistuviin kuviin; tosin kuvassa 2.5. (b) ollut satojen tuhansien monikulmioiden esimerkki on epätavallinen. Renderöinti jakaantuu kahteen tehtävään. Ensinnä on käsiteltävä kohteen geometrinen muoto, kun tälle voidaan suorittaa erilaisia muunnoksia (mallintamisja näkymämuunnoksia). Toisena on valon ja kohteen välisen vuorovaikutuksen laskeminen, löyhästi ilmaistuna sävytys. Jälkimmäinen prosessi sisältää kaksi osaa. Sävytysalgoritmi laskee monikulmioprojektion pikselien värit ja piilopintojenpoistoalgoritmi laskee, onko osa kohteesta toisen, lähempänä katsojaa olevan kohteen takana. Sävytysalgoritmi laskee monikulmion kärkien valon intensiteetit ja interpoloi näistä monikulmion pikseleille sopivat intensiteettiarvot. Intensiteetit lasketaan vertaamalla kärkien normaalivektorien suuntaa valolähteen sijaintiin nähden. 4. luku 214 4. luku 215

4.2. Parametristen pintojen renderöinti Interpoloinnilla lasketaan monikulmion jokaisen pikselin syvyys sen kärkien syvyyksien perusteella. Nämä syvyysarvot tallennetaan taulukkoon nimeltä Z puskuri. Näitä käytetään laskettaessa, onko kohteen pikseli lähempänä katsojaa kuin lähin aiemmin renderöity pikseli. Tällainen lähestymistapa sallii monikulmioiden ottamisen tietokannasta missä tahansa järjestyksessä. Se on kätevä ja elegantti menettely monikulmioverkkokohteiden visualisointia varten. Kuutiollisten, parametristen lappujen renderöintialgoritmeja on kahdenlaisia: (1) Renderöidään suoraan parametrisestä kuvauksesta tai lapun kuvaavasta yhtälöstä. (2) Approksimoidaan pinta monikulmioverkolla ja käytetään tasomonikulmioverkkoa kyseisen approksimoinnin renderöintiin. Täten tilanne redusoituu esiprosessointi tai muunnosoperaatioksi. Jälkimmäinen lähestymistapa on tavallisin, sillä se on helpommin toteutettava ja laskennallisesti kevyempi. 4. luku 216 4. luku 217 Renderöinti suoraan lappukuvauksista Tässä käytetään selaussuora algoritmia. Siirryttäessä pitkin selaussuoraa lasketaan lapun yhtälöllä pikselille vastaava lapun piste. Tällöin on määrättävä pikselien (x,y) laskentajärjestys lapun matemaattisessa kuvauksessa, mikä on vaikea tehtävä. Vaikeudet havaitaan käsiteltäessä kaarevaa lappua ikään kuin tason osana, monikulmiona tai nelikulmiona. Selausmuunnoksessa tarvittavat monikulmion attribuutit (mutta vaikeasti laskettavia lapulle) ovat: (1) Y koordinaattien maksimi ja minimi saadaan helposti kärkien listasta. (2) Inkrementaaliset laskentayhtälöt antavat monikulmion särmät Y:n funktioina. (3) Vastaavasti Z:n syvyysarvot lasketaan inkrementaalisesti X:n funktiona. Parametrisellä pinnalla ei ole mitään em. ominaisuuksista. Y koordinaattien maksimi ja minimi eivät välttämättä ole pinnan reunalla tai rajalla, koska lappu käsittää usein siluettireunan näyttöavaruudessa, joka seuraa lapun sisäisestä kohoumasta. Parametriselle pinnalle sekä raja että siluettireuna pitää laskea. Sitä paitsi nämä saattavat leikata toisensa eivätkä ole monotonisia X:n ja Y:n suhteen. Parametrinen pinta tai lappu määritellään kolmella kaksimuuttujaisella funktiolla: x = X ( u, v) y = Y ( u, v) z = Z( u, v) Sekä u että v vaihtelevat välillä arvosta 0 arvoon 1. Rajat määritellään arvoilla u=0, u=1, v=0 ja v=1 nelisivuiseksi lapuksi. 4. luku 218 4. luku 219

Eräs keino laskea selausmuunnos lapuille on soveltaa sitä algoritmina, joka laskee XZselaustason ja pinnan leikkauksen muodostamat käyrät (kuva 4.1.). Näillä XZ tason käyrillä ei ole eksplisiittistä muotoa, vaan ne on laskettava numeerisesti (esim. Newtonin iteroinnilla). Tasomonikulmioissa käyrät ovat tietysti janoja, jolloin riittää pelkästään päätepisteiden tallentaminen. Käyrien tilanteessa pitää kaikki niiden pisteet tallentaa. Blinnin algoritmissa (1978) parametrinen selausmuunnos, jota ei tarkemmin eritellä tässä, perustuu algebralliseen ratkaisuun. Se käyttää iteratiivista tekniikkaa rajakäyrien ja siluettireunojen leikkauksen laskennassa kunkin selaussuoran kanssa. Kuva 4.1. Selaustasoalgoritmi laskee lapun leikkauskäyrän rakenteen iteratiivisesti kulkien sen läpi. 4. luku 220 4. luku 221 Muunnos lapusta monikulmioiksi Monikulmioverkon johtaminen lappuverkosta on käsitteellisesti yksinkertaista. Jaetaan alijakomenettelyllä laput käyttäen alijaon kulmapisteitä monikulmioiden kärkinä. Alijakoa jatketaan (kuva 4.2.), kunnes päätetään monikulmion jaon approksimoivan riittävässä määrin todellista lappupintaa. Alijaon lopetuskriteerit riippuvat siitä, toimivatko ne kohdeavaruudessa vai kuvaavaruudessa. Edellisessä verrataan approksimointia todelliseen pintaan käyttäen kohdeavaruuden metriikoita, kun taas jälkimmäisessä käytetään pikseliyksikköjä metriikkana. Kuva 4.2. Lapun jako: (a) Prosessia jatketaan, kunnes approksimointi on riittävän tarkka, ja (b) muutetaan lopulta kahdeksi kolmioksi. 4. luku 222 4. luku 223

Kohdeavaruuden alijako Käsitellen ensiksi kohdeavaruuden alijakoa listataan oheiset luokat: (1) Tasainen alijako kohdeavaruudessa: Tämä on yksinkertaisin menettely. Käyttäjä määrää, mihin asti lappuja jaetaan. (2) Ei tasainen alijako kohdeavaruudessa: Alijako lopetetaan, kun se toteuttaa lapun tasaisuuskriteerin. Jälkimmäinen on teoreettisesti kauniimpi, sillä alijakoa jatketaan laskentakriteerin ohjaamana, ts. riittävän tarkaksi. Tasaisessa alijaossa saattaa jäädä näkyviä rajoja ja siluettireunoja, jotka näkyvät epäjatkuvuuksina. Ei tasaisessa alijaossa tarvitaan tasaisilla alueilla harvoja alijakoja, mutta lokaalin jyrkän kaarevuuden alueilla tarvitaan huomattavan paljon alijakoa. Täten lapun alijaon aste riippuu sen lokaalista kaarevuudesta, mitä havainnollistetaan kuvassa 4.3. Lappuja jaetaan, kunnes tasaisuuskriteeri toteutuu. Lappujen jaolla on kaksi etua: (1) Se on nopeaa. (2) Nopeutta voidaan muuttaa vaihtamalla alijaon astetta, mikä on hyödyllistä vuorovaikutteisissa järjestelmissä. 4. luku 224 4. luku 225 Kuva 4.3. Tasainen ja ei tasainen alijako Bézier lapulle. Ei tasaisen alijaon haitta on, että reikiä voi esiintyä lappujen välillä approksimoitaessa lapun rajaa (suoralla) janalla. Tästä degeneratiivisesta tilanteesta on esimerkki kuvassa 4.4. Kuva 4.4. Ei tasaisen alijaon tuottama repeämä lapussa. Tarkastellaan käyräesitystä, josta on helppoa laajentaa lapulle. Pisteiden laskemisen pitkin käyrää sijasta sitä approksimoidaan paloittain lineaarisella tavalla toistettaessa alijakoa rekursiivisesti kontrollipisteille. Tämä tuottaa yhä tarkemman approksimoinnin käyrälle, kunnes lineaarisuuskriteeri toteutuu. 4. luku 226 4. luku 227

Bézier käyrä (muunnettavissa muiksikin kantafunktioiksi) jaetaan kahdeksi käyräksi jakamalla kontrollipisteet muodostaen kaksi uutta kontrollipisteiden joukkoa R i ja S i. Piste R i /S i on ensimmäisen loppupiste ja toisen alkupiste: R0 = Q0 R1 = ( Q0 + Q1) / 2 R2 = R1 / 2 + ( Q1 + Q2) / 4 R3 = ( R2 + S1)/ 2 S0 = R3 S1 = ( Q1 + Q2) / 4 + S2 / 2 S2 = ( Q2 + Q3) / 2 S3 = Q3 Kuva 4.5. esittää, kuinka ensimmäisen jaon jälkeen paloittain lineaarinen käyrä on parempi kuin jakoa edeltävä. Kolmen jaon jälkeinen approksimaatio on kuvassa 4.6. Kuva 4.5. Bézier käyrän jakaminen. 4. luku 228 4. luku 229 Käyrän jako on helposti laajennettavissa lappuihin kuva 4.7. mukaisesti. Lappu on muodostettu neljällä vakion u käyrällä ja sanoin vakion v, joiden kontrollipisteet ovat kontrollipistematriisin peräkkäisiä rivejä ja sarakkeita. Sovelletaan käyrän jakoa erikseen kullekin neljästä käyrästä u:lle, jolloin saadaan kaksi alilappua. Näille käyrät jaetaan v:lle, jolloin saadaan lopulta neljä alilappua. Kuva 4.6. Kontrollipisteet piirrettyinä kullekin alijaon tasolle. 4. luku 230 4. luku 231

Kuva 4.7. Käyrän jakoa käyttäen lappu jaetaan neljään osaan. Tehokas kaava (vain yhteenlaskuja ja jakoa kahdella) tekee laskennasta nopean. Alijaon astetta tai syvyyttä on helppo valvoa lineaarisuuskriteerin nojalla. Bézier kantafunktioiden summa on 1: 3 i= 0 B i ( u) = 1 Tämä tarkoittaa käyrien sijaitsevan kontrollipisteiden muodostamassa konveksissa peitteessä. Paloittain lineaarinen alijako yhtyy käyrän kanssa, kun se sulautuu janaan, joka yhdistää päätepisteet. Tämän neljän kontrollipisteen yhdistävän janan lineaarisuuden toteutuminen on testattavissa mittaamalla etäisyys keskimmäisestä kahdesta kontrollipisteestä yhdistävään janaan (kuva 4.8.). Tämä menettely on jälleen laajennettavissa lapuille, mutta tarkastelu ohitetaan. 4. luku 232 4. luku 233 Kuva 4.8. Kuutiollinen Bézier käyrä, jossa on neljä kontrollipistettä p 0, p 1, p 2 ja p 3. 4. luku 234