Yksinkertaistaminen normaalitekstuureiksi



Samankaltaiset tiedostot
Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

NORMAL MAP -TEKNIIKAN KÄYTTÖ 3D-MALLINNUKSESSA

Luento 3: 3D katselu. Sisältö

Avaruuden kolme sellaista pistettä, jotka eivät sijaitse samalla suoralla, määräävät

Ristitulolle saadaan toinen muistisääntö determinantin avulla. Vektoreiden v ja w ristitulo saadaan laskemalla determinantti

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

Suora 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste

Matematiikan tukikurssi

T Vuorovaikutteinen tietokonegrafiikka Tentti

Monikulmiot 1/5 Sisältö ESITIEDOT: kolmio

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

T Tietotekniikan peruskurssi: Tietokonegrafiikka. Tassu Takala TKK, Tietoliikenneohjelmistojen ja multimedian laboratorio

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tekijä Pitkä matematiikka Suoran pisteitä ovat esimerkiksi ( 5, 2), ( 2,1), (1, 0), (4, 1) ja ( 11, 4).

S09 04 Kohteiden tunnistaminen 3D datasta

JOHDATUS TEKOÄLYYN TEEMU ROOS

Matematiikan tukikurssi

Luento 6: Geometrinen mallinnus

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

Kertausosa. 5. Merkitään sädettä kirjaimella r. Kaaren pituus on tällöin r a) sin = 0, , c) tan = 0,

Luento 7: Lokaalit valaistusmallit

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

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

Luento 2: Viivan toteutus

Yleistä vektoreista GeoGebralla

Taso 1/5 Sisältö ESITIEDOT: vektori, koordinaatistot, piste, suora

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016

Vektorit, suorat ja tasot

Insinöörimatematiikka D

Suorista ja tasoista LaMa 1 syksyllä 2009

Geometrialtaan mielivaltaisen huonetilan pintojen näkyvyyskertoimien laskenta

3D animaatio: liikekäyrät ja interpolointi. Tommi Tykkälä

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

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

Lineaarialgebra MATH.1040 / voima

1 Kertaus. Lineaarinen optimointitehtävä on muotoa:

1. Olkoot vektorit a, b ja c seuraavasti määritelty: a) Määritä vektori. sekä laske sen pituus.

A-osio. Tehdään ilman laskinta ja taulukkokirjaa! Valitse tehtävistä A1-A3 kaksi ja vastaa niihin. Maksimissaan tunti aikaa suorittaa A-osiota.

MATEMATIIKAN KOE, PITKÄ OPPIMÄÄRÄ (1 piste/kohta)

Solmu 3/2001 Solmu 3/2001. Kevään 2001 ylioppilaskirjoitusten pitkän matematiikan kokeessa oli seuraava tehtävä:

Visualisoinnin perusteet

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

JOHDATUS TEKOÄLYYN TEEMU ROOS

4. Funktion arvioimisesta eli approksimoimisesta

Suora. Määritelmä. Oletetaan, että n = 2 tai n = 3. Avaruuden R n suora on joukko. { p + t v t R},

Geometrian yksinkertaistaminen Quadric error metrics -menetelmällä

Luento 6: Piilopinnat ja Näkyvyys

T Johdatus tietoliikenteeseen ja multimediatekniikkaan Tietokonegrafiikka

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

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

Mat. tukikurssi 27.3.

Kahden suoran leikkauspiste ja välinen kulma (suoraparvia)

Tekijä Pitkä matematiikka Poistetaan yhtälöparista muuttuja s ja ratkaistaan muuttuja r.

MATEMATIIKKA. Matematiikkaa pintakäsittelijöille. Ongelmanratkaisu. Isto Jokinen 2017

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Xlet

Cloud rendering. Juho Karppinen 49480E

Harjoitus Bones ja Skin

6.6. Tasoitus ja terävöinti

Suorat ja tasot, L6. Suuntajana. Suora xy-tasossa. Suora xyzkoordinaatistossa. Taso xyzkoordinaatistossa. Tason koordinaattimuotoinen yhtälö.

dx = L2 (x + 1) 2 dx x ln x + 1 = L 2 1 L + 1 L ( = 1 ((L + 1)ln(L + 1) L) L k + 1 xk+1 = 1 k + 2 xk+2 = 1 10k+1 k + 2 = 7.

Diplomi-insinööri- ja arkkitehtikoulutuksen yhteisvalinta 2017 Insinöörivalinnan matematiikan koe , Ratkaisut (Sarja A)

Pistetulo eli skalaaritulo

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45

KOLMIULOTTEINEN TIETOKONEGRAFIIKKA PELEISSÄ

JOHDATUS TEKOÄLYYN TEEMU ROOS

a) Sievennä lauseke 1+x , kun x 0jax 1. b) Aseta luvut 2, 5 suuruusjärjestykseen ja perustele vastauksesi. 3 3 ja

Luento 7: 3D katselu. Sisältö

Tämä luku nojaa vahvasti esimerkkeihin. Aloitetaan palauttamalla mieleen, mitä koordinaatistolla tarkoitetaan.

HELSINKI UNIVERSITY OF TECHNOLOGY Telecommunications Software and Multimedia Laboratory Tik Tietokonegrafiikan seminaari Kevät 2003

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

Harjoitus Morphing. Ilmeiden luonti

1 Kompleksiluvut 1. y z = (x, y) Kuva 1: Euklidinen taso R 2

1.1 Vektorit. MS-A0007 Matriisilaskenta. 1.1 Vektorit. 1.1 Vektorit. Reaalinen n-ulotteinen avaruus on joukko. x 1. R n. 1. Vektorit ja kompleksiluvut

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

Tekijä Pitkä matematiikka b) Kuvasta nähdään, että b = i 4 j. c) Käytetään a- ja b-kohtien tuloksia ja muokataan lauseketta.

Tekstuurien syntetisointi pinnoille

2 Raja-arvo ja jatkuvuus

PixelFlow. Hans-Erik Grönlund 46549W

PRELIMINÄÄRIKOE PITKÄ MATEMATIIKKA

JOHDATUS TEKOÄLYYN TEEMU ROOS

Tehtävä 1. Oletetaan että uv on neliö ja (u, v) = 1. Osoita, että kumpikin luvuista u ja v on. p 2j i. p j i

VEKTORIT paikkavektori OA

MAB3 - Harjoitustehtävien ratkaisut:

TIES471 Reaaliaikainen renderöinti

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

VEKTORIANALYYSIN HARJOITUKSET: VIIKKO 4

Ota tämä paperi mukaan, merkkaa siihen omat vastauksesi ja tarkista oikeat vastaukset klo 11:30 jälkeen osoitteesta

Tekijä Pitkä matematiikka

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

PIKSELIT JA RESOLUUTIO

TIES592 Monitavoiteoptimointi ja teollisten prosessien hallinta. Yliassistentti Jussi Hakanen syksy 2010

Työ 21 Valon käyttäytyminen rajapinnoilla. Työvuoro 40 pari 1

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

Epäeuklidista geometriaa

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Transkriptio:

TEKNILLINEN KORKEAKOULU 30.4.2003 Tietoliikenneohjelmistojen ja multimedian laboratorio Tik-111.500 Tietokonegrafiikan seminaari Kevät 2003: Reaaliaikainen 3D grafiikka Yksinkertaistaminen normaalitekstuureiksi Jarkko Luoma 45329S

Yksinkertaistaminen normaalitekstuureiksi Jarkko Luoma TKK, Tietoliikenneohjelmistojen ja multimedian laboratorio Jarkko.Luoma@hut.fi Tiivistelmä Tämä tutkielma esittää miten paljon polygoneja sisältävien objektien yksityiskohdat voidaan siirtää normaalitekstuureihin ja näin tehdä mahdolliseksi yksinkertaistaa objektin rakennetta. Ensin esitellään normaalitekstuurin käsite. Sitten käydään läpi menetelmän edut ja ongelmakohdat. Sen jälkeen selvitetään miten normaalitekstuuri muodostetaan yksityiskohtaisesta objektista. Sitten kerrotaan vielä miten normaalitekstuuria voidaan käyttää reaaliaikaisessa valaistuslaskennassa. Lopuksi perehdytään vielä menetelmän nykysovelluksiin ja pohditaan menetelmän tulevaisuutta. 1 JOHDANTO Yksinkertaistaminen normaalitekstuurien avulla on menetelmä, jolla objektin polygonien määrää voidaan vähentää huomattavasti ilman, että kappaleen visuaalinen ilme olennaisesti muuttuu (Kuva 1). Menetelmän ideana on, että vähän polygoneja sisältävän kappaleen valaistus voidaan laskea siten kuin kyseessä olisi yksityiskohtainen kappale. Normaalitekstuurit lasketaan alkuperäisen paljon polygoneja sisältävän kappaleen avulla. Koska yksityiskohtaista versiota objektista käytetään vain normaalitekstuurien laskemiseen, voi alkuperäisessä kappaleessa olla periaatteessa rajattomasti polygoneja. Se kuinka paljon alkuperäisen kappaleen yksityiskohdista pystytään siirtämään normaalitekstuuriin riippuu kuitenkin käytetyn normaalitekstuurin koosta. Itse normaalitekstuuri on tavallinen kuvatiedosto. Normaalitekstuurin yhden pikselin värin R-, G- ja B-komponentit vastaavat normeeratun normaalivektorin x-, y- ja z-komponentteja. Normaalitekstuurin käyttäminen on siis yksi teksturilla pinnoittamisen muoto. Väriarvojen sijaan tekstuurista vain löytyy pinnan normaalivektoreita. Tekstuureilla pinnoittamista ei kuitenkaan käsitellä tässä tarkemmin. Normaalitekstuuria hyödynnetään valaistuksen laskennassa siten, että laskennassa käytetään normaalitekstuurin normaaleja objektin pinnan normaalien interpoloinnin sijaan. Objektien polygonien vähentäminen siten, että kappaleen muoto säilyy mahdollisimman lähellä alkuperäistä on normaalitekstuurien soveltamiseen läheisesti liittyvä aihe, sitä ei kuitenkaan käsitellä tässä tutkielmassa tarkemmin. Englannin kielisiä termejä "bump map" ja "normal map" käytetään usein sekaisin. Termi "bump map" tarkoittaa kuitenkin tekstuuria, jolla poikkeutettaan pinnan omaa normaalia. 2

Tällä saadaan alunperin tasaiseen pintaan kumpuja, ja näin pinnasta tulee elävämmän ja yksityiskohtaisemman näköinen (Kuva 2). Termi "normal map" puolestaan tarkoittaa normaalitekstuuria, joka on laskettu paljon polygoneja sisältävän kappaleen pohjalta, ja sisältää näin ollen alkuperäisen objektin pinnan aitoja normaalivektoreita. Kuva 1: Armadillo objekti neljällä eri polygonimäärllä esitettynä. Yllä valaistuksen laskennassa on käytetty normaalitekstuurin normaaleja, alla polygonien kärkipisteiden normaaleja. ("Appearance-preserving simplification", Cohen et al., 1998) 3

Kuva 2: "Bump mapping"-tekniikalla saadaan tasaiset pinnat näyttämään kumpuilevilta. ("Gouraud bump mapping", Ernst et al., 1998) 2 MENETELMÄN EDUT JA ONGELMAKOHDAT Nykyaikaisessa 3D-grafiikassa käytettävät objektit voivat sisältää kymmeniä- tai satojatuhansia polygoneja, etenkin jos ne on tuotettu kolmiulotteisella laserskannauksella aidosta esineestä. Tällaisen kappaleen kierto sekä valaistuslaskenta on hyvin raskasta. Tarve objektin yksinkertaistamiseen on suuri. Kun objektin polygonien määrää vähennetään, menetetään samalla kuitenkin jatkuvasti yksityiskohtia. Normaalitekstuureita käytettäessa nämä yksityiskohdat, ainakin osittain, voidaan siirtää normaalitekstuuriin ja näin totetuksessa voidaan käyttää yksinkertaistettua versiota objektista. Objektin polygonien määrää voidaan vähentää sadasosaan tai jopa vieläkin pienemmäksi, ilman että objektin ulkoasu kärsisi liikaa (Kuva 1). Normaalitekstuurin käyttö ei ole laskennallisesti täysin ilmaista, sillä valaistuksen selvittämiseksi joudutaan suorittamaan vektoreiden kiertoja, interpoloimaan vektoreita, sekä laskemaan vektoreiden välisien kulmien kosineita. Koska reaaliaikaisessa valaistuslaskennassa käytetään huomattavasti yksinkertaistettua kappaletta niin kappaleen reunat voivat näyttää varsin kulmikkailta (Kuva 3). Tämä on ehkäpä menetelmän suurin heikkous. Myös objektin animointi (so. reaaliaikainen muokkaus) aiheuttaa ongelman, joka täytyy ratkaista joko laskemalla normaalitekstuuri erikseen jokaiselle mahdolliselle objektin muodolle tai sitten kiertämällä valon suuntavektoreita sopivasti objektin valaistusta laskettaessa. 4

Kuva 3: Yksinkertaistetun objektin reunat voivat näyttää varsin kulmikkailta. ("Appearance-preserving simplification", Cohen et al., 1998) 3 NORMAALITEKSTUURIN MUODOSTAMINEN Seuraavaksi selvitetään miten alkuperäisestä yksinkertaistamattomasta objektista voidaan muodostaa normaalitekstuuri. Sitten esitetään myös miten voidaan laskea mielekäs maksimikoko normaalitekstuurille. Sen jälkeen tarkastellaan kappaleen muodon yksinkertaistamisen vaikutusta tekstuurikoordinaatteihin.lopuksi tarkastellaan vielä lyhyesti normaalikartan tallettamiseen liittyviä asioita. 3.1 Normaalitekstuurin laskeminen Normaalitekstuurin laskemisessa on välttämätöntä löytää ensin 3-ulotteisen kappaleen 2-ulotteinen parametrisointi. Objektin 2-ulotteinen parametrisointi tarkoittaa että löydetään kuvaus 3-ulotteisen objektin pisteistä 2-ulotteiselle pinnalle. Parametrisoinnin muodostamista (Hoppe, 1996) ei kuitenkaan käsitellä tässä tutkielmassa tarkemmin. Jos on annettuna 3D-kappaleen kuvaava polygonijoukko M 0 ja sen 2D-parametrisointi F voidaan normaalitekstuuri muodostaa helposti. Polygonijoukon M 0 jokaisen polygonin jokaisen kärkipisteen koordinaatista V j lasketaan koordinaatti F(V j ) eli polygonin kärkipisteen tekstuurikoordinaatti. Nämä tekstuurikoordinaatit esittävät 3D-polygonin kuvaa normaalitekstuurissa. Nyt polygonin kärkipisteiden normaaleja interpoloidaan polygonin kuvan yli ja talletetaan tästä saatavat normaalit normaalitekstuuriin. 3.2 Normaalitekstuurin maksimikoko Normaalitekstuurin mielekkäänä maksimikokona voidaan pitää sellaista kokoa, jossa kaikki alkuperaisen polygonijoukon normaali-informaatio tallentuu normaalitekstuuriin. Toisin sanoen jokaisen polygonin kärkipisteen normaalivektori tulee talletettua omaan pisteeseensä normaalitekstuurissa. Tämä voidaan taata, jos normaalitekstuuriin kooksi valitaan 1/d x 1/d, missä d on pienin etäisyys kahden tekstuurikoordinaatin välillä: 5

(1) 3.3 Polygonien määrän vähentämisen vaikutus tekstuurikoordinaatteihin Kun objektin muotoa yksinkertaistetaan, luhistuu osa objektin reunoista. Tällöin kahden objektin pisteen tilalle sijotetaan yksi 3D-piste. Tämän seurauksena täytyy myös hylätä aikaisempien 3D-pisteiden tekstuurikoordinaatit. Uuden 3Dpisteen koordinaatti saadan objektin muodon yksinkeraistamiseen käytettävältä algoritmilta, sitä vastaava tekstuurikoordinaatti täytyy laskea (Kuva 4). Kuva 4: Kun objektin reuna yksinkertaistamisen seurauksena luhistuu, täytyy uudelle 3D-pisteelle löytää myös uusi tekstuurikoordinaatti. ("Appearancepreserving simplification", Cohen et al., 1998) Uuden tekstuurikoordinaatin tulee sijaita konveksin alueen sisällä kuvan 5 osoittamalla tavalla. Tämä varmistaa sen, että kolmiot reunan luhistumisen jälkeen peittävät tekstuurista täställeen saman alueen kuin ennen reunan luhistumista käytössä olleet kolmiot. Ehdokaspisteen kelpoisuus voidaan testata sarjalla pistetuloja, joiden avulla nähdään sijaitseeko ehdokaspiste konveksin alueen kaikkien kärkien sisäpuolella. Ehdokaspistettä etsitään aluksi kokeilemalla muutamia heuristisesti valittuja pisteitä, kuten luhistuneen reunan keskipistettä, sekä reunan päätepisteitä. Jos osoittautuu, että nämä heuristisesti valitut pisteet eivät kelpaa, lasketaan piste konveksin alueen sisältä kolmen alueen kulmapisteen keskiarvona. 6

Kuva 5: (a) Väärä valinta uudeksi tekstuurikoordinaatiksi aiheuttaa kolmioiden ulottumisen alkuperäisen alueen ulkopuolelle. (b) Kelvollisten tekstuurikoordinaattien tulee sijaita varjostetun konveksin alueen sisällä. ("Appearance-preserving simplification", Cohen et al., 1998) 3.4 Normaalitekstuurin tallettaminen Normaalitekstuuri talletetaan tyypillisesti RGB-kuvatiedostona. Koska normaalitekstuuri on tavallinen kuvatiedosto täytyy normeerattujen vektoreiden x-, y-, ja z-komponentit, jotka ovat liukulukuja välillä -1 1, kuvata normaalitekstuurissa kokonaisluvuilla, joiden esittämiseen käytetään vain esim. 8 bittiä per luku. Tämä aiheuttaa normaaleihin jonkin verran pyöristysvirhettä. Lopputulos on kuvan 6 kaltainen. Kuva 6: Vasemmalla alkuperäinen objekti. Oikealla objektista laskettu normaalitekstuuri. ("Object Space Normal Mapping with Skeletal Animation Tutorial", Kreuzer) 7

4 NORMAALITEKSTUURIN KÄYTTÖ VARJOSTUKSEN LASKENNASSA Normaalitekstuuria käytettäessa kappaleen valaistus lasketaan erikseen jokaiselle polygonin pisteelle. Valaistuksen intensiteetti voidaan laskea suorittamalla pistetulo normeeratun valon suuntavektorin ja pinnan normaalivektorin kesken kyseisessä pisteessä. Asiaa on selvennetty yhtälöissä (2) ja (3). Valon normeerattu suuntavektori saadaan interpoloimalla vektoreita, jotka on laskettu polygonin kärkipisteistä valon paikkaan ja sitten normeerattu. Valon suuntavektorit tarvitsee laskea vain kertaalleen, jos ne talletetaan myöhempää käyttöä varten. Pinnan normaalivektori puolestaan saadaan interpoloimalla normaalitekstuurista saatuja normaalivektoreita, jotka ovat objektin lokaalissa avaruudessa (Kuva 7). Interpolointi aiheuttaa virhettä vektoreiden pituuksiin, mutta sen vaikus lopputulokseen on yleensä niin pieni, että se voidaan jättää huomiotta. Jos kappaletta kierretään origonsa ympäri, niin ei ole järkevää laskea samaa kiertoa myös kaikille normaalivektoreille, sillä samaan lopputulokseen päästään suorittamalla käänteinen kierto valon suuntavektoreille. Lopputulos on kuvan 8 kaltainen. Pistetulo kahden vektorin välilä määritellään missä a ja b ovat vektoreita, ja cos(a,b) tarkoittaa kosinia vektoreiden välisestä kulmasta. Jos a ja b vektoreiden pituuksiksi on normeerattu 1, voidaan yhtälöä yksinkertaistaa: Nyt pistetulon arvoa voidaan käyttää kuvaamaan suoraan valaistuksen intensiteettiä. (2) (3) 8

v1 K1 n v v3 K3 V v2 K2 Kuva 7: Valon intensiteetin laskeminen normaalikartan avulla. V on valon paikka, K1, K2 ja K3 ovat polygonin kärkipisteet, v1, v2 ja v3 ovat normeerattuja valon suuntavektoreita, n on normaalikartasta interpoloimalla saatu pinnan normaalivektori ja v on interpoloitu valon suuntavektori. Huomionarvoista on, että tällöin cos( ) = n v. Kuva 8: Vasemmalla yksinkertaistettu objekti. Oikealla sama objekti varjostettuna normaalitekstuurin avulla. ("Object Space Normal Mapping with Skeletal Animation Tutorial", Kreuzer) 5 NORMAALITEKSTUURIEN KÄYTTÖ NYKYÄÄN JA TULEVAISUUDESSA Tähän asti vain harvat 3D-sovellukset ovat hyödyntäneet normaalitekstuureita. Niitä on käytetty vasta muutamissa peleissä. Normaalitekstuurien soveltamisen suhteellinen helppous ja se että uusimmista grafiikkakorteista jo löytyy tuki niiden käytölle, ennustavat kuitenkin normaalitekstuurien käytön lisääntymistä reaaliaikaisissa 3D-sovelluksissa, ennen kaikkea peleissä. Myös 9

normaalitekstuurien luominen on suhteellisen helppoa, sillä se onnistuu tavanomaisilla 3D-mallinnusohjelmilla kuten Lightwave, 3D Studio Max tai Maya. 3D-sovellusten grafiikan taso on noussut viimevuosina nopeasti. Tämän seurauksena myös objektien yksityiskohtaisuutta halutaan entisestään kasvattaa. Normaalikarttojen käyttö tarjoaa tähän mahdollisuuden, ilman että reaaliaikainen laskenta muodostuu liian raskaaksi. Mahdollisesti marraskuussa 2003 julkaitavassa id Softwaren pelissä "Doom 3" on hyödynnetty tehokkaasti normaalikarttoja. Pelin hahmojen alkuperäisissä versioissa, joista normalikartat on laskettu on jopa yli 500,000 polygonia (Kuva 9). Kuva 9: Tietokonepeli nimeltä "Doom 3" (id Sofware), jonka hahmojen yksinkertaistamisessa on käytetty normaalitekstuureita. (DOOM-3.net) Suosiota on kasvattanut myös objektien tuottaminen aidoista esineistä tai pienoismalleista kolmiulotteisella laser-skannauksella (Kuva 10). Tällaiselle tekniikalle on käyttöä viihteessä, teollisessa muotoilussa ja valmistuksessa. Tallätavoin tuotetuissa objektissa voi olla miljoonia polygoneja. Jotta tällaisia objekteja voidaan esittää reaaliaikaisesti, täytyy niitä ensin muokata. Tämä on myös luonteva normaalitekstuurien käyttökohde. Vaihtoehtoisena menetelmänä laser-skannauksella tuotettujen objektien esittämiseen on esitetty ns. "splat 10

rendering"-menetelmä (Rusinkiewicz et al., 2000), jossa polygonien sijaan käsitellään kappaleen yksittäisiä pisteitä. Tämä poikkeaa kuitenkin niin merkittävästi nykyisestä tavasta piirtää 3D-grafiikkaa tietokoneella, että menetelmän nopea yleistyminen, on epätodennäköistä. Todennäköistä kuitenkin on, että tulevaisuudessa tullaan näkemään 3D-sovelluksia, joissa normaalitekstuureita käytetään yhdessä muiden objektin pinnan ominaisuuksia määrittävien tekstuurien kanssa. Kuva 10: Michelangelon David patsasta skannataan laser-skannerilla. Tuloksena on erittäin hienojakoinen polygonipinta. ("The Digital Michelangelo Project", Levoy et al.) 11

6 YHTEENVETO Normaalitekstuurit tuotetaan tyypillisesti paljon polygoneja sisältävän objektin pohjalta. Itse normaalitekstuuri on tavallinen kuvatiedosto, jonka väriarvoihin on koodattu objektin normaalivektoreiden komponentit. Normaalitekstuurit lasketaan valmiiksi etukäteen. Koska alkuperäisen objektin pinnan muoto koodataan normaalitekstuuriin, voidaan objektin polygonien määrä vähentää jopa alle sadasosaan alkuperäisestä, ilman että objektin visuaalinen ilme olennaisesti muuttuu. Tämä keventää huomattavasti reaaliaikaista valaistuslaskentaa. Pahin ongelma normaalitekstuurien käytössä on se, että objektin reunoista voi tulla kulmikkaan näköisiä. Normaalitekstuurien tuottaminen ja käyttäminen on itsessään varsin yksinkertainen menetelmä. Siihen liittyvät kuitenkin hyvin läheisesti matemaatisesti vaativammat menetelmät: objektin 2D-parametrisoinnin määrittäminen ja objektin polygonien määrän vähentäminen. Ensimmäiset normaalitekstuureja hyödyntävät tietokonepelit ovat ilmestyneet. Uusimmat grafiikkakortit tukevat normaalitekstuurien käyttöä. Myös sovellusohjelmissa on alettu tarjoamaan tukea normaalitekstuurien käsittelyyn Normaalitekstuurien käyttö tulee todennäköisesti lisääntymään reaaliaikaisissa 3D-sovelluksissa, etenkin peleissä. 7 VIITTEET Becker B. G.; Max N. L. 1993. Smooth transitions between bump rendering algorithms. Proceedings of the 20th annual conference on Computer graphics and interactive techniques. ACM Press. pp. 183 190. Cohen J.; Olano M.; Manocha D. 1998. Appearance-preserving simplification. Proceedings of the 25th annual conference on Computer graphics and interactive techniques. ACM Press. pp. 115 122. DOOM-3.net. Viitattu: 9.4.2003. http://www.doom-3.net. Ernst I.; Rüsseler H.; Schulz H.; Wittig O. 1998. Gouraud bump mapping. Proceedings of the 1998 EUROGRAPHICS/SIGGRAPH workshop on Graphics hardware. ACM Press. pp. 47 - ff. Hoppe H. 1996. Progressive meshes. Proceedings of the 23rd annual conference on Computer graphics and interactive techniques. ACM Press. pp. 99-108. Kreuzer J. Object Space Normal Mapping with Skeletal Animation Tutorial. Viitattu: 9.4. 2003. http://www.3dkingdoms.com/web/tutorial.htm. Levoy M.; Pulli K.; Curless B.; Rusinkiewicz S.; Koller D.; Pereira L.; Ginzton M.; Anderson S.; Davis J.; Ginsberg J.; Shade J.; Fulk D. 2000. The Digital Michelangelo Project: 3D Scanning of Large Statues. Proc. SIGGRAPH 2000. ACM Press. 12

Rusinkiewicz S.; Levoy M. 2000. QSplat: A Multiresolution Point Rendering System for Large Meshes Proc. SIGGRAPH 2000. ACM Press. 13