Fotorealisticky Rendering Terenu
Total Page:16
File Type:pdf, Size:1020Kb
Z´apadoˇcesk´a univerzita v Plzni Fakulta aplikovan´ych vˇed Katedra informatiky a v´ypoˇcetn´ı techniky Bakal´aˇrsk´apr´ace Fotorealistick´yrendering ter´enu Plzeˇn2011 Milan Staffa Prohl´aˇsen´ı Prohlaˇsuji, ˇzejsem bakal´aˇrskou pr´aci vypracoval samostatnˇea v´yhradnˇe s pouˇzit´ım citovan´ych pramen˚u. V Plzni dne 27. dubna 2011 Milan Staffa Abstract Photorealistic terrain rendering This thesis is focused on the problem of photorealistic terrain rendering. Main task is to create modules for photorealistic terrain rendering in RenderMan Shading Language (RSL) and make photorealistic output images of requested terrain. Output images of these modules have to be comparable with outputs of other programs with similar field of use. In order to provide greater variability, graphical user interface (GUI) frontend was made in C#. This program simplifies creating these modules and offers wide range of options. Obsah 1 Uvod´ 1 2 Teoretick´aˇc´ast 2 2.1 Fotorealistick´ezobrazov´an´ıter´enu . 2 2.2 Datov´areprezentace ter´enu . 3 2.3 RenderMan shading language . 4 2.4 Reprezentace ploch ter´enu v RenderManu . 5 2.4.1 Plochy tvoˇren´ebiline´arn´ımi pl´aty . 6 2.4.2 Plochy tvoˇren´ebikubick´ymi pl´aty . 6 2.5 Sumov´efunkceˇ .......................... 7 2.5.1 Perlin˚uvˇsum ....................... 7 2.5.2 Skl´ad´an´ıˇsumov´ych funkc´ı . 9 2.5.3 Turbulence . 10 2.6 Programy pro rendering ter´enu . 14 3 Realizaˇcn´ıˇc´ast 19 3.1 Fotorealistick´eter´eny v Terragenu . 19 3.1.1 V´yˇskov´adata . 20 3.1.2 Texturov´an´ı . 23 3.2 GUI program . 26 3.2.1 V´yˇskov´adata . 27 3.2.2 Podm´ınky povrchu . 28 3.2.3 N´ahled vybran´eho ter´enu . 30 3.2.4 Tvorba surface shaderu a texturov´an´ı. 31 3.3 RIB soubory . 33 3.4 Moduly a jejich pouˇzit´ı. 34 3.4.1 Modul v´ypoˇctu Turbulence . 35 3.4.2 Modul v´ypoˇctu Bump mappingu . 35 3.4.3 Modul m´ıch´an´ıbarev . 36 3.4.4 Modul pro um´ıstˇen´ıter´enu na povrch . 39 3.4.5 Modul hlavn´ıho surface shaderu . 43 OBSAH OBSAH 3.5 Dosaˇzen´ev´ysledky . 43 3.5.1 Napodoben´ıre´aln´ehory Mount Ruapehu . 43 3.5.2 Napodoben´ıpouˇstn´ıscen´erie . 46 3.5.3 Napodoben´ıhorsk´escen´erie . 47 3.5.4 Napodoben´ıantarktick´escen´erie . 49 3.5.5 Napodoben´ıhorsk´escen´erie . 51 4 Z´avˇer 53 Literatura 54 Seznam zkratek 56 Pˇr´ıloha A 57 Pˇr´ıloha B 66 4 1 Uvod´ C´ılem t´eto pr´ace je snaha o pˇribl´ıˇzen´ıse realistick´emu vyobrazen´ıter´enu (tak jak to dˇelaj´ınapˇr´ıklad k tomuto ´uˇcelu urˇcen´eprofesion´aln´ıprogramy). Nejde tedy o tvorbu simulace re´aln´eho ter´enu, jde pouze o ˇcistˇev´ytvarn´yprostˇredek vyobrazen´ıter´enu do obr´azku. Ke splnˇen´ıtohoto c´ıle je nutno sezn´amit se se specifikac´ıRenderMan a pomoc´ıt´eto specifikace vhodnˇeimplementovat bloky pro tvorbu v´ysledn´eho obr´azku. Vytvoˇren´eobr´azky budou porovn´av´any jak se skuteˇcn´ymi fotkami tak i s umˇele vytvoˇren´ymi obr´azky ter´en˚u(kter´ebyly vytvoˇreny pomoc´ıjin´ych program˚u). Modern´ı poˇc´ıtaˇcov´agrafika se v dneˇsn´ı dobˇesnaˇz´ı dos´ahnout co nej- v´ıce fotorealistick´eho zobrazov´an´ı umˇele vytvoˇren´ych objekt˚u. Tato snaha zapoˇcala mal´ıˇrstv´ım, kdy se umˇelci snaˇzili napodobit co nejl´epe skuteˇcn´ekra- jiny. Dnes je tato snaha patrn´anejv´ıce ve v´yvoji poˇc´ıtaˇcov´ych her a v ani- movan´ych filmech, kde jsou tyto techniky podstatou realistiˇcnosti. Pro co nejpˇresvˇedˇcivˇejˇs´ızobrazov´an´ıse klade d˚uraz hlavnˇena pˇrirozen´eosvˇetlen´ıa vyobrazen´ıpovrchu objekt˚u. Pˇred zobrazen´ım ter´enu je nutno si zvolit reprezentaci ter´enu samotn´eho, na kter´yse n´aslednˇepak aplikuj´ı shadery. Ukolem´ shader˚uje napodobo- vat na ter´enu co nejv´ıce realistickou texturu (obarven´ıter´enu) a dodateˇcn´e ´upravy geometrie p˚uvodn´ıho tvaru ter´enu. Pr´acepojedn´av´ao vytvoˇren´ı modul˚ua jejich aplikaci na jednoduchou geometrii reprezentuj´ıc´ıter´entak, aby v´ysledn´yefekt byl co nejv´ıce fotoreali- stick´y.Tyto moduly po sloˇzen´ıd´av´aj´ıdohromady shader, kter´yse na ter´en aplikuje a obarv´ıho do v´ysledn´epodoby. Pro psan´ıshader˚ubyl zvolen pro- gramovac´ıjazyk RenderMan Shading Language. Pro uˇzivatelskou pˇr´ıstupnost bude v jazyce C# vytvoˇren interaktivn´ıGUI program (nazvan´y RTC - RenderMan Terrain Creator), kter´ypodle nastave- n´ych hodnot vygeneruje vˇsechny zdrojov´esoubory pro vytvoˇren´ıv´ysledn´eho obr´azku s obarven´ym ter´enem. 1 2 Teoretick´aˇc´ast 2.1 Fotorealistick´ezobrazov´an´ıter´enu Pro vytvoˇren´ı obr´azku s fotorealistick´ym zobrazen´ım ter´enu je potˇreba si urˇcit, z ˇceho a jak bude tento obr´azek vytvoˇren. Je tedy nutn´eurˇcit tvar ter´enu, jak´abude textura tohoto ter´enu (respektive jak definovat obarven´ı povrchu tak, aby co nejv´ıce pozorovateli pˇripom´ınal re´aln´ypovrch ter´enu). D´ale je potˇreba urˇcit, jak´ym svˇetlem bude ter´enosvˇetlen, zda a jak´ebudou ve sc´enˇes ter´enem p˚usobit atmosf´erick´ejevy (tedy mlha atd) a podobnˇe. V tomto textu si pop´ıˇseme, jak reprezentovat ter´en. Digit´aln´ımodel ter´enu (DMT) budeme reprezentovat v trojrozmˇern´emprostoru. DMT se rozum´ı prostorov´ygeometrick´ypopis reli´efuter´enu. Na tomto ter´enu se daj´ıd´ale modelovat nejr˚uznˇejˇs´ıobjekty (napˇr´ıklad budovy, vegetace a podobnˇe). Pro samotn´yDMT jsou vˇsak tyto objekty ned˚uleˇzit´e. Mezi charakteristick´evlastnosti DMT patˇr´ı: • ter´en je nepravideln´aplocha. V t´eto ploˇsese nach´azej´ıjak m´ısta s hlad- kou geometri´ıtak s naruˇsen´ım t´eto hladk´egeometrie. Zvl´aˇstn´ımi ˇc´astmi ter´enu jsou vrcholy, sedla, ´udolnice (coˇzje kˇrivka spojuj´ıc´ım´ısta nejvˇe- tˇs´ıho vyhlouben´ıpˇr´ıˇcn´eho ˇrezu ´udol´ım) a hˇrbetnice (ta je opakem ´udol- nice - tedy hˇrbetnice spojuje relativnˇenejvyˇsˇs´ıbody ter´enn´ıho tvaru), kter´emaj´ıpod´elnˇeˇcasto hladk´ypr˚ubˇeh, avˇsak v kolm´emsmˇeru m˚uˇze doj´ıt k ostr´emu l´am´an´ıplochy. Tˇemto ´uk´az˚um se ˇr´ık´a singularity\. " • jelikoˇzse vych´az´ız re´aln´ych ter´en˚u, v´yˇskov´asouˇradnice (vˇetˇsinou jde o souˇradnici z) je vzhledem k souˇradnic´ım d´elky a ˇs´ıˇrky DMT v niˇzˇs´ı hodnot´ach. Z toho d˚uvodu jsou tak´ev DMT niˇzˇs´ıpˇrev´yˇsen´ı. • k popisu plochy je potˇreba velk´emnoˇzstv´ıdat (z d˚uvodu rozs´ahlosti digit´aln´ıho modelu ter´enu). • zobrazovan´yter´en lze vˇetˇsinou z matematick´eho hlediska ch´apat jako funkci dvou promˇenn´ych z = f(x, y), kde funkˇcn´ıhodnota z je jedno- znaˇcnˇepˇriˇrazen´aa vyjadˇruje v´yˇsku ter´enu v dan´embodˇe [x,y]. Pro- bl´emem jsou pouze pˇrevisy a svisl´eplochy, kter´esamozˇrejmˇeneod- pov´ıdaj´ıcharakteru zobrazen´ı(respektive funkce dvou promˇenn´ych), 2 Teoretick´aˇc´ast Datov´areprezentace ter´enu protoˇze jednomu bodu [x, y] je pˇriˇrazeno v´ıce v´yˇskov´ych hodnot z. Sin- gularity lze ch´apat z matematick´eho hlediska jako m´ısta s nespojit´ymi parci´aln´ımi derivacemi funkce popisuj´ıc´ıtvar ter´enu. 2.2 Datov´areprezentace ter´enu Pro snadn´ypopis ter´enu se ˇcasto pouˇz´ıv´arozdˇelen´ıcel´eplochy DMT na menˇs´ı ˇc´asti, kter´ese daj´ı jednoduˇsejigeometricky popsat. Podle charakteristiky tˇechto ploˇsek se rozliˇsuj´ın´asleduj´ıc´ıtypy model˚u: • Polyedrick´ymodel { V tomto modelu jsou element´arn´ı ploˇsky tvoˇreny troj´uheln´ıky. Tyto troj´uheln´ıky k sobˇepˇril´ehaj´ı a tvoˇr´ı tak mnohostˇen(bez podstavy), kter´yse pˇrimyk´ak ter´enu. Vrcholy mnohostˇenu (tedy jednotliv´evrcholy troj´uheln´ık˚u) jsou body na ter´enn´ıploˇse.Ty jsou souˇradnicovˇepˇredem urˇcen´e. { Interpolace plochy ter´enu se prov´ad´ıline´arnˇepo troj´uheln´ıc´ıch. Vrcholy troj´uheln´ık˚uje vˇsakvhodn´ezvolit tak, aby vystihovaly nejen obecnˇepr˚ubˇehtvaru ter´enu, ale i jeho singularity. { Popis tohoto modelu je rozdˇelen do geometrick´e ˇc´asti, kter´aud´av´a souˇradnice vrchol˚utroj´uheln´ık˚u, a do ˇc´asti topologick´e, jej´ımˇz´uko- lem je pˇriˇrazovat vrcholy jednotliv´ym troj´uheln´ık˚um a udrˇzetsou- sednost troj´uheln´ık˚u. • Rastrov´ymodel { Tento model je d´an mnoˇzinou element´arn´ıch ploˇseknad prvky pravideln´eho rastru1. Jde vlastnˇeo ˇctyˇr´uheln´ıky, kter´eje moˇzno rozdˇelit na troj´uheln´ıky. { V´yhoda tohoto modelu je v tom, ˇzepracuje s pravidelnou matic´ı uzlov´ych bod˚u, kter´ese daj´ısnadno vypoˇc´ıtat a nen´ınutn´eo nich udrˇzovat vˇsechny ´udaje. Naopak nev´yhodou m˚uˇzeb´yt r˚uznorod´y ter´en, kter´yobsahuje napˇr´ıklad rozs´ahl´erovn´eplochy a z´aroveˇn vysok´epohoˇr´ı. V tom pˇr´ıpadˇeje tedy nutn´etento model rozdˇelit na menˇs´ımodely, kter´ereprezentuj´ıdan´ytyp povrchu a zpraco- v´avat je ve vhodn´emrozliˇsen´ı, kaˇzd´eho tohoto podmodelu. 1Rastr = mˇr´ıˇzka bod˚u. 3 Teoretick´aˇc´ast RenderMan shading language { Rastrov´ymodel je v principu definov´an prostorov´ymi souˇradnicemi kaˇzd´eho bodu rastru (tedy souˇradnicemi bodu x, y, z). Pˇri prakti- ck´empouˇzit´ıstaˇc´ıurˇcit vzd´alenost bod˚urastru a um´ıstit jeden bod do souˇradn´eho syst´emu. Vˇsechny ostatn´ıbody se pak snadno dopoˇc´ıtaj´ı. Z toho tedy vypl´yv´a, ˇzeprakticky pouˇziteln´yrastrov´y form´at m˚uˇzeobsahovat pouze: ∗ souˇradnice jednoho rohu rastru ∗ ´uhel natoˇcen´ırastrov´es´ıtˇe ∗ rozmˇerjednoho prvku rastru ∗ matici v´yˇskov´ych hodnot kaˇzd´eho bodu rastru • Pl´atov´ymodel { Tento typ modelu pˇredpokl´ad´a, ˇzese povrch rozdˇel´ına nepravidel´e, obecnˇekˇriv´eploˇsky troj´uheln´ıkov´eho tvaru, pˇriˇcemˇzhranice se ve- dou po singularit´ach (v pˇr´ıpadˇe,ˇzese v modelu vyskytuj´ı).