Vaihtuvan perspektiivin panoraamat piirrosanimaatiossa



Samankaltaiset tiedostot
Matikkaa KA1-kurssilaisille, osa 3: suoran piirtäminen koordinaatistoon

Scratch ohjeita. Perusteet

Ohjeissa pyydetään toisinaan katsomaan koodia esimerkkiprojekteista (esim. Liikkuva_Tausta1). Saat esimerkkiprojektit opettajalta.

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

Miten otan ja poistan valokuvia?

Portfolio. Linda Siltakoski

2.1 Yksinkertaisen geometrian luonti

Tasohyppelypeli. Piirrä grafiikat. Toteuta pelihahmon putoaminen ja alustalle jääminen:

Peilaus pisteen ja suoran suhteen Pythonin Turtle moduulilla

FOTONETTI BOOK CREATOR

Videon tallentaminen Virtual Mapista

TAULUKOINTI. Word Taulukot

2 Pistejoukko koordinaatistossa

Luento 7: 3D katselu. Sisältö

Taulukot Päivi Vartiainen 1

2.3 Voiman jakaminen komponentteihin

Pong-peli, vaihe Koordinaatistosta. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 2/7. Tämän vaiheen aikana

Gimp 3. Polkutyökalu, vektori / rasteri, teksti, kierto, vääntö, perspektiivi, skaalaus (koon muuttaminen) jne.

3 Raja-arvo ja jatkuvuus

Tietorakenteet, laskuharjoitus 7, ratkaisuja

4.2 Sulkuyhtälöt ja joustavuus

Luento 6: Piilopinnat ja Näkyvyys

Käyttöliittymän muokkaus

OpenOffice.org Impress 3.1.0

Digitaalisen tarinan koostaminen HTKS Tanja Välisalo

Ampumahiihto. Hiihto. Pelihahmon piirtäminen. Jos tahdot animoida hiihtämisen, Peli muodostuu kahdesta erilaisesta osasta: ensin

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

Demo 1: Simplex-menetelmä

Muita kuvankäsittelyohjelmia on mm. Paint Shop Pro, Photoshop Elements, Microsoft Office Picture Manager

Ohjeet lyhytelokuvan tekoon

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Matematiikan tukikurssi

Luento 3: 3D katselu. Sisältö

Jos haluat uuden Share-työkalun, valitse Pods -> Share -> Add New Share tai jos sinulla on jo auki Share-työkalu, näyttää se tältä:

Tutustu kameraasi käyttöohjeen avulla, syksy2011 osa 2

Picasa 3 -kuvankäsittelyopas, osa 2, käytä tehokkaasti

CABAS. Release Notes 5.4. Uusi kuvien ja dokumenttien käsittely

JOHDATUS TEKOÄLYYN TEEMU ROOS

OpeOodi Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

Riemannin pintojen visualisoinnista

Tampereen yliopisto Tietokonegrafiikka 2013 Tietojenkäsittelytiede Harjoitus

Asiakirjojen vertailu-kurssi

Malleja ja menetelmiä geometriseen tietokonenäköön

y=-3x+2 y=2x-3 y=3x+2 x = = 6

Luento 6: 3-D koordinaatit

Algoritmit 1. Luento 10 Ke Timo Männikkö

Avaa ohjelma ja tarvittaessa Tiedosto -> Uusi kilpailutiedosto

Harjoitus 6 ( )

Epooqin perusominaisuudet

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Algoritmit 1. Luento 10 Ke Timo Männikkö

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

Trafficars - Ruuhkaara

KUVAN TUOMINEN, MUOKKAAMINEN, KOON MUUTTAMINEN JA TALLENTAMINEN PAINTISSA

Pohjan ja leikkauksen tekeminen Casa Parrista

Videon tallentaminen Virtual Mapista

5.3 Ensimmäisen asteen polynomifunktio

Share-työkalu (AC 9.1)

P6SLite ohjaus- ja zoom komennot

Myynnin ja suunnittelun automatisoinnilla lisää tuottavuutta yrityksellesi

CADS Planner Electric perusteet

SWISS Technology by Leica Geosystems. Leica LINO TM L2. Täydellinen linjaustyökalu

Malliratkaisut Demot

GeoGebra-harjoituksia malu-opettajille

Kerro kuvin 3:n uudet ominaisuudet

Puzzle SM Pistelasku

Nspire CAS - koulutus Ohjelmiston käytön alkeet Pekka Vienonen

Öljyn määrä säiliössä

EF70-200mm f/4l USM FIN. Käyttöohjeet

6. Etäisyydenmittari 14.

Kenguru 2015 Ecolier (4. ja 5. luokka)

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.

Luento 4 Georeferointi

Harjoitus Bones ja Skin

4.1 Kaksi pistettä määrää suoran

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Luento 2 Stereokuvan laskeminen Maa Fotogrammetrian perusteet 1

Sen jälkeen Microsoft Office ja sen alta löytyy ohjelmat. Ensin käynnistä-valikosta kaikki ohjelmat

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Luku 8. Aluekyselyt. 8.1 Summataulukko

etunimi, sukunimi ja opiskelijanumero ja näillä

Matterport vai GeoSLAM? Juliane Jokinen ja Sakari Mäenpää

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

Stabilointi. Marja Hassinen. p.1/48

istopmotion 1.5 DV Animaatio-ohjelma

Datatähti 2019 loppu

Brother ScanViewerin opas ios- / OS X -järjestelmille

1. Taustatietoa näppäimistönkuuntelusta

Käyttöopas RoofCon Viewer

KOTISIVUKONE ULKOASUEDITORI

Kansionäkymä listasta suuriin kuvakkeisiin

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

Osoitin ja viittaus C++:ssa

Vinkkejä Balsamiq Mock-Up työkalun käyttöön

KÄYTTÖÖN. Koulukirjat tietokoneelle PIKAOHJEET PAPERPORT -OHJELMAN. Sisällysluettelo

Opiskelijalistojen tulostaminen, opiskelijoiden hallinta ja sähköpostin lähettäminen

Kuvan pienentäminen Paint.NET-kuvankäsittelyohjelmalla

Transkriptio:

Vaihtuvan perspektiivin panoraamat piirrosanimaatiossa Tomi Salo TKK, Tietotekniikan osasto ttsalo@iki.fi Tiivistelmä Artikkelissa kuvataan menetelmä staattisissa 3D-maailmoissa tapahtuvan kamera-ajon muuttamiseksi yksittäiseksi panoraamakuvaksi, josta jälkikäsittelyn (kuten ihmispiirtäjän suorittaman kuvituksen) jälkeen voidaan poimia ruutu ruudulta alkuperäistä kamera-ajoa muistuttava animaatio. Menetelmän tarkoituksena on vähentää piirtäjien työtä perinteisen piirrosanimaation tuotannossa, mutta se sopii myös erityisen raskaiden tietokoneella tehtävien jälkikäsittelyiden työmäärää vähentämään. Menetelmä soveltuu erityisen hyvin tapauksiin, joissa kameran paikka ei muutu, ja tietyin rajoituksin kamera-ajoihin, joissa kameraa liikutetaan. 1 JOHDANTO Seuraavat kohdat selventävät ongelmakenttää ja yleistä ideaa artikkelissa esitettävän menetelmän taustalla. 1.1 Motivaatio Piirroselokuvien tekeminen perinteisin menetelmin on työlästä. Runsas käsityön osuus tekee elokuvasta kalliin ja siksi alusta asti on kehitetty erilaisia keinoja työn helpottamiseksi. Yksi yleisimpiä keinoja on varsinaisten hahmojen animointi valmiiksi piirrettyä taustaa vasten. Kun samaa taustaa voidaan käyttää useaan eri animaatioruutuun, vähenee työmäärä radikaalisti verrattuna siihen, että tausta piirrettäisiin joka kuvaan erikseen. 1

Kuva 1: Pinokkiossa käytetty panoraama Piirroselokuvan elävöittämiseksi käytetään usein isompaa valmiiksi piirrettyä taustaa, jota yhden kohtauksen aikana voidaan siirtää ruutujen taustalla haluttua vauhtia erikseen piirrettyjen hahmojen liikkuessa maisemassa. Esimerkkinä Simpsons-sarjan tyypillinen katunäkymä. Piirrossarjojen ja -elokuvien taustat on kuitenkin useimmiten piirretty isometriseen projektioon, koska sen visualisointi on ihmispiirtäjälle helppoa. Tämä ei kuitenkaan ole välttämätöntä, vaan yhdellä taustalla (panoraamalla) voidaan kuvata monimutkaisempiakin kamera-ajoja kolmiulotteisessa, staattisessa maisemassa. Esimerkkinä elokuvan Pinokkio alku, jossa nähdään kamera-ajo kuun valaisemilta vuorilta kaupungin kattojen ohi kadulle ja kohti pientä mökkiä (katso kuva 1). Tässä artikkelissa esitellään menetelmä, jossa mielivaltaisen kamera-ajon perusteella voidaan luoda automaattisesti isompi staattinen panoraama, josta taas voidaan jälkikäsittelyn jälkeen poimia ruudut varsinaisen animaation taustaksi. Panoraamasta poimittujen ruutujen perusteella luotu animaation tausta ei tietenkään vastaa täysin alkuperäisiä kuvakulmia maisemasta, mutta riippuen kameraajon tyypistä, se voi olla hyvin lähellä alkuperäistä. Menetelmän ainoa käyttötarkoitus ei ole taustojen luonti ihmispiirtäjää varten. Sitä voidaan käyttää myös tapauksissa, joissa tietokoneen suorittama piirto on niin aikaavievää, että sitä ei voida tehdä joka animaatioruudulle erikseen. Esimerkkinä vesivärisimulaatio, jossa yhden kuvan käsittely voi viedä useita tunteja. Kolmas käyttötarkoitus voi olla yksinkertaisesti taustan elämisen poistaminen; vähän kerrallaan muuttuva tausta tietyillä tavoin (esimerkiksi mustekynällä tehdyillä viivavarjostuksilla) piirrettynä muuttuu animaatioruudusta toiseen ja näyttää elävän, mikä voi olla hyvin häiritsevää. Joissakin tietokoneella simuloiduissa piirtotyyleissä on mahdollista saada piirtojälkeen animaation ruudusta toiseen säilyvää koherenssia, mutta tässä suhteessa ruutujen poimiminen yhdestä isosta kerralla kuvitetusta panoraamasta näyttää aina paremmalta. 2

1.2 Aiheeseen liittyviä artikkeleita Menetelmä liittyy läheisesti panoraamojen koostamiseen videomateriaalista (Szeliski, 1996). Esimerkkejä ei-fotorealistisesta kuvien jälkikäsittelystä löytyy useista artikkeleista (Lansdown & Schofield, 1995, Winkenbach & Salesin, 1994, Winkenbach & Salesin, 1996). Artikkelissa käytetyt kuvat on poimittu artikkelista (Wood et al., 1997). 2 KÄYTTÖMAHDOLLISUUDET JA -RAJOITUKSET Seuraavassa käydään läpi menetelmän mahdollisuudet ja rajoitukset esimerkein. 2.1 Kameran kääntäminen pystyakselin ympäri Yksinkertaisin tapaus on kameran kääntäminen pystyakselin ympäri. Koska kamera pysyy samassa pisteessä, esineiden keskinäiset näkyvyydet pysyvät koko ajan samoina, toisin sanoen maisemassa ei paljastu mitään uutta kameran kääntämisen aikana. Lopullisen panoraamasta poimitun animaation ainoa ero kuva kuvalta laskettuun on vaakasuorien viivojen taipuminen (katso kuva 2). Tämä ilmiö on sitä voimakkaampi mitä suurempi animaation ruutujen kuvakulma on. Vaakasuorien viivojen taipuminen on itse asiassa sama ilmiö, joka esiintyy varsinaisissa panoraamakameroissa (kameroissa, joissa kuva muodostuu sylinterimäisen filmitason yli kulkevan pystysuoran raon avulla ja joissa kuvakulma vaakasuunnassa voi ylittää 180 astetta). Panoraaman varsinainen projektio on tässä sylinteriprojektio. Se voidaan tuottaa myös suoraan ilman tässä artikkelissa esitettyä menetelmää, mutta menetelmän tuottama panoraama on käytännössä identtinen siihen verrattuna. 2.2 Ala- tai yläviistoon katsovan kameran kääntäminen pystyakselin ympäri Seuraava, monimutkaisempi tapaus on kameran kääntäminen pystyakselin ympäri sen ollessa kallistettu ylös- tai alaspäin. Muodostuva panoraama on kartioprojektiossa, josta aiheutuu lopulliseen animaatioon jonkin verran maiseman suorien viivojen kaareutumista (katso kuva 3). Kaareutuminen riippuu jälleen kuvakulmasta: mitä leveämpi kuvakulma, sitä helpommin kaareutuminen on huomattavissa. 3

Kuva 2: Kameran kääntäminen pystyakselin ympäri. Vasemmalla nähdään kolme ruutua alkuperäisestä kamera-ajosta, keskellä niiden pohjalta tehty panoraama sekä alkuperäisessä muodossaan että piirtäjän käsittelemänä ja oikealla panoraamasta poimitut lopulliset animaatioruudut. 2.3 Kuvakulman muuttaminen (zoomaus) Kameran kääntämisen lisäksi voidaan kuvakulmaa vaihtaa eli zoomata johonkin maiseman kohteeseen. Koska tässäkin kamera pysyy paikallaan, esineiden keskinäiset suhteet eivät muutu. Jos kameraa ei zoomauksen aikana käännetä, panoraamasta poimittu animaatio vastaa tarkasti suoraan laskettua. 2.4 Kameran liikuttaminen Kameran liikuttaminen tuo kokonaan uuden ongelman: esineiden väliset suhteet muuttuvat animaation ruutujen välillä. Koska lopulliset animaation ruudut kuitenkin poimitaan yhdestä ainoasta panoraamakuvasta, eivät esineiden väliset suhteet muutu siinä. Perinteisissä animaatioissa on käytetty tämän ongelman ratkaisemiseen kahta lähestymistapaa: joko asialle ei tehdä mitään ja luotetaan että virheet ovat niin pieniä, että katsojat eivät huomaa niitä, tai käytetään useaa päällekkäistä taustakuvaa, joista kutakin liikutetaan itsenäisesti, lähempänä olevia nopeammin. Artikkelissa kuvattu menetelmä sopii molempiin ratkaisumalleihin. Jos ei tehdä mitään, virheet voivat jäädä niin pieniksi, että ne ovat huomaamattomia. Toinen mahdollisuus on jakaa kolmiulotteinen maailma esineiden etäisyyksien perusteella ja tehdä jokaisesta esineryhmästä oma panoraamansa ja kompositoida eri panoraamoista poimitut ruudut päällekkäin lopullista animaatiota luotaessa (katso kuva 4). Tämä tuottaa aidoimman tuloksen ja voidaan periaatteessa tehdä automaattisesti. Käytännössä jouduttaisiin luultavasti turvautumaan käsityöhön maise- 4

Kuva 3: Ala- tai yläviistoon katsovan kameran kääntäminen pystyakselin ympäri. Ylimpänä on yhdistetty panoraama, sen alla vasemmalla kolme alkuperäistä animaatioruutua ja oikealla niitä vastaavat panoraamakuvasta poimitut ruudut. man jakamisessa, varsinkin jos jälkikäsittely on kallista ja lopullisten käsiteltävien panoraamojen määrä on tarkoitus minimoida. 5

Kuva 4: Kameran liikuttaminen sivusuunnassa. Ylimmät neljä kuvaa esittävät panoraaman luomisen neljässä eri kerroksessa ja niiden alla vasen sarake virheettömät ruudut ja oikea sarake vastaavat panoraamasta poimitut ruudut. 3 ALGORITMI Menetelmän tarkoituksena on yhdistää annetun kamera-ajon tuottamat animaatioruudut yhdeksi panoraamakuvaksi. Menetelmää varten on kehitetty valmis al- 6

goritmi (Wood et al., 1997), joka käydään lyhesti läpi. 3.1 Vaaditut alkutiedot Algoritmin suorittamiseksi vaaditaan täydellinen 3D-malli halutusta maisemasta ja kamera-ajon parametrit. Tässä vaiheessa ei tarvitse määritellä lopullisen animaation ruutujen lukumäärää, vaan se voidaan generoida luodusta panoraamasta halutulla tarkkuudella. 3.2 Animaatioruutujen sijoittaminen panoraamaan Algoritmin suoritus aloitetaan sijoittamalla ensimmäinen ruutu mielivaltaiseen paikkaan (yleensä origoon). Tämän jälkeen sijoitetaan ruutuun yhdeksän tasaisin välein sijoiteltua pistettä ja selvitetään, mitä 3D-maailman pisteitä ne vastaavat. Jos jokin pisteistä ei osu mihinkään 3D-maailman esineeseen, arvotaan sen tilalle uusi piste. Kun pisteet on laskettu, otetaan animaation seuraava ruutu ja lasketaan, minne edellisen vaiheen 3D-maailman pisteteet osuvat siinä. Tämän jälkeen aletaan sijoittaa ruutua panoraamaan siten, että sen pisteet osuvat mahdollisimman hyvin yhteen edellisen ruudun samojen 3D-maailman pisteiden kanssa. Uuden ruudun sijoituksessa voidaan käyttää rotaatiota, translaatiota ja skaalausta. Kun ruutu on sijoitettu paikoilleen, arvotaan uudet pisteet ja vaihe alkaa alusta. Tätä jatketaan, kunnes kaikki animaation ruudut on sijoiteltu panoraamaan. Tässä vaiheessa panoraamaan ei ole vielä piirretty yhtään pikseliä. 3.3 Panoraaman piirtäminen Tässä vaiheessä käydään panoraamakuva pikseli pikseliltä läpi ja päätetään pikselien värit. Aluksi lasketaan animaation keskiviiva (spine), eli viiva, jonka kameran optinen akseli (kunkin animaatioruudun keskusta) piirtää kuvaan (katso kuva 5). Väritettäessä pikseleitä lasketaan mikä on pikseliä lähin keskiviivan piste ja mitä animaation ruutua kyseinen piste vastaa (katso kuva 6). Tämän jälkeen pikselin väri poimitaan kyseiseltä ruudulta (suurimmassa osassa panoraamakuvaa on suuri määrä animaatioruutuja päällekkäin). 3.4 Jälkikäsittely Tässä vaiheessa voidaan lopullista panoraamaa käsitellä halutulla tavalla. Se voidaan tulostaa ja piirtäjä voi värittää sen (katso kuva 7), lisätä siihen yksityiskohtia ja niin edelleen. Toinen mahdollisuus on tehdä jälkikäsittely tietokoneella. 7

Kuva 5: Animaation keskiviiva panoraamaan sijoitettuna. 3.5 Lopullisen animaation luonti Tässä työvaiheessa tarvitaan ensimmäisessä vaiheessa lasketut tarkat paikat, koot ja kallistukset jokaiselle animaatioruudulle. Käytännössä käsinpiirretty panoraama luettaisiin tietokoneeseen ja ruudut laskettaisiin siitä. Kuvassa 8 on esitetty vertailu alkuperäisten ruutujen ja kuvitetusta panoraamasta poimittujen ruutujen välillä. Seuraavaksi voitaisiin lisätä ruutuihin käsinpiirrettyjä hahmoja tai tietokoneella generoituja yksityiskohtia. Alkuperäisen kamera-ajon parametrit pätevät yhä ja joka ruudulle on saatavilla kameran parametrit, joita voidaan käyttää lisäämään esimerkiksi sadetta taustan päälle. 8

Kuva 6: Panoraaman koostaminen suikaleista. 4 ONGELMATAPAUKSIA JA PARANNUSEHDOTUKSIA Eräät maisemat ja kamera-ajot sopivat erityisen huonosti yllä kuvatun algoritmin avulla käsiteltäviksi. Seuraavassa on käyty läpi muutamia erityyppisiä ongelmatapauksia. Käytännön animaatioiden kanssa työskenneltäessä ongelmatapauksia olisi pyrittävä välttämään heti suunnittelun alusta lähtien. 4.1 Ongelmallisia kamera-ajoja Kuvitellaan talo, jonka ympäri kamera kiertää, pitäen katselusuunnan jatkuvasti kohti taloa. Tuloksena on panoraama, joka kuvautuu talon pystyakselilta talon ympärille asetetulle lieriölle. Tästä panoraamasta poimituissa ruuduissa ei nähdä 9

Kuva 7: Valmis piirtäjän käsittelemä panoraama. missään vaiheessa esimerkiksi talon ohi, ja jos talo on pieni koko animaatioruutuun verrattuna, animaatiossa näkyy ikään kuin auki levitetty talo, jonka etu- ja takapuolet näkyvät yhtä aikaa. Tällaisia ongelmia ei voida välttää muuten kuin olemalla tekemättä tämänkaltaisia kamera-ajoja. Aina kun esine kääntyy kameran näkökentässä, tulee ongelmia. Sama esine voidaan kyllä nähdä animaation aikana eri suunnista, kunhan se häipyy välillä näkökentästä ja ilmestyy myöhemmin uudelleen. 4.2 Ongelmallisia panoraamoja Joissakin tapauksissa voi käydä niin, että panoraaman keskiviiva risteää. Tämä sotkee panoraaman, ellei sitä jaeta kahteen tai useampaan osaan. Jakaminen taas voi aiheuttaa ylimääräistä työtä piirtäjälle, koska sama alue toistuu kahdessa eri paikassa. 10

Kuva 8: Vertailu alkuperäisten ruutujen ja kuvitetusta panoraamasta poimittujen ruutujen välillä. 4.3 Skaalauksen rajoitukset Jos kamera-ajon aikana zoomataan johonkin kohteeseen voimakkaasti, voivat animaatioruudut muuttua liian pieniksi piirtäjälle. Tähän on ratkaisuna panoraaman jakaminen kahteen osaan, eli katkaiseminen kun animaatioruudun koko alittaa jonkin tietyn kynnyksen, ja jatkaminen tyhjältä pöydältä seuraavassa panoraamassa. Siirtyminen panoraamasta toiseen voidaan toteuttaa esimerkiksi häivytyksellä. 4.4 Vääristymien korjaus Algoritmin siinä vaiheessa, jossa panoraaman pikselin värit määrätään, voidaan tallettaa jokaiselle pikselille se, mitä 3D-maailman pistettä se vastaa. Tämän tiedon avulla voidaan lopullisessa animaatiossa korjata merkittävä osa vääristymistä vääntämällä panoraamasta poimitut ruudut paremmin alkuperäisiä vastaavaan muotoon. Esineiden vaihtuvia suhteita tällä menetelmällä ei voida kuitenkaan korjata. VIITTEET Lansdown John, & Schofield Simon. 1995. Expressive rendering: A review of nonphotorealistic techniques. Pages 29 37 of: IEEE Computer Graphics and Applications. 11

Szeliski Richard. 1996. Video mosaics for virtual environments. IEEE Computer Graphics and Applications, March, 22 30. Winkenbach Georges, & Salesin David H. 1994. Computer-generated pen-andink illustration. Pages 91 100 of: SIGGRAPH 94 Proceedings. Winkenbach Georges, & Salesin David H. 1996. Rendering free-form surfaces in pen and ink. Pages 469 476 of: SIGGRAPH 96 Proceedings. Wood Daniel N., Finkelstein Adam, Hughes John F., Thayer Craig E., & Salesin David H. 1997. Multiperspective Panoramas for Cel Animation. Pages 243 250 of: SIGGRAPH 97 Proceedings. 12