3D-renderdamine

3D-renderdamine (ingl 3D-rendering) on 3D-graafika protsess, mis koosneb automaatsest teisendusest 3D-sõrestikmudeleid (ingl wireframe model) 2D-piltidesse arvutis. 3D-viimistlused võivad sisaldada fotorealistlikke efekte või mittefotorealistlikku renderdust (ingl non-photorealistic rendering).

 Viimistluse meetodid 
Viimane samm, mille abil valmistatakse tegelikult 2D-pildi või animatsiooni ettevalmistatud stseenist, on viimistlus. Seda saab võrrelda pildistamise või stseeni filmimisega pärast seda, kui kõik ettevalmistused on reaalses elus lõpule jõudnud. Välja on töötatud mitu erinevat ja tihti spetsialiseeritud viimistlusmeetodit. Need ulatuvad selgelt ebarealistlikust sõrestiku tajustamisest hulknurkse viimistluse kaudu kuni rohkem edasijõudnute meetoditeni, nagu rida-realt skaneerimine (ingl scanline rendering), kiirte jälitus (ingl ray tracing) või radiosity. Ühe pildi/kaadri viimistlumiseks võib võtta sekundi murdosadest mitu päevani. See sõltub sellest, kui palju objekte on stseenis, kui keerulised need objektid on, kas on olemas valgustamine jne. Üldiselt ei eksisteeri mingit meetodit, mida saaks alati kasutada – erinevad meetodid on parem kas fotorealistlikuks või reaalajalikuks viimistluseks.

 Reaalaja viimistlus 
Interaktiivse meedia viimistlust, näiteks mängude ja simulatsioonide jaoks, arvutatakse ja kuvatakse reaalajas ligikaudu 20–240 kaadrit sekundi kohta. Reaalajas viimistluse eesmärgiks on näidata nii palju informatsiooni kui silm võib töödelda sekundi murdosa jooksul (n-ö ühes kaadris. 30 kaadri sekundis oleva animatsiooni korral hõlmab kaader 1/30 sekundit). Peamine eesmärk on saavutada fotorealismi võimalikult kõrgemat taset võimalikult minimaalse vastuvõetava viimistluskiirusega (tavaliselt 24 kaadrit sekundis, kuna see on minimaalne, kui palju inimese silm vajab liikumise illusiooni edukaks loomiseks). Tegelikult saab lahendusi rakendada nii, nagu silm "tajub" maailma, ja selle tulemusena ei pruugi lõplik pilt olla tingimata reaalmaailmaline, vaid üks piisavalt sarnane, et inimese silm saaks taluda. Viimistluse tarkvara võib teeselda niisuguseid visuaalseid efekte nagu teravussügavus (ingl Depth of field) või liikumise hägustumine (ingl Motion blur). Need on katsed simuleerida kaamerate ja inimese silmade optilistest omadustest tulenevaid visuaalseid nähtusi. Need efektid võivad stseenile realismi elementi lisada, isegi siis, kui see on ainult kaamera simuleerimine. See on mängude, interaktiivsete maailmade ja VRML-i jaoks põhiline meetod. Arvuti andmetöötluse võimsuse kiire kasv on võimaldanud isegi reaalajas toimuvat viimistlust järk-järgult realistlikumalt, sealhulgas selliste tehnoloogiatega nagu HDR-i viimistlus (ingl High-dynamic-range rendering). Reaalajaline viimistlus on sageli hulknurkne ja seda toetatud arvuti graafikaprotsessori abil.

 Mitte-reaalaja viimistlus 
Mitteinteraktiivse meedia, näiteks täispikkulise filmide ja videote jaoks, animatsioone viimistletakse palju aeglasemaks. Mitte-reaalajas viimistlemine võimaldab piiratud töötlemisvõimsuste kasutamist parema pildikvaliteedi saavutamiseks. Üksikute kaadrite viimistlemisajad võivad keerukate stseenide puhul erineda mõnest sekundist kuni mitme päevani. Viimistletud kaadrid salvestatakse kõvakettale, seejärel saab neid teistele meediale, nagu näiteks optilisele andmekandjatele. Seejärel kuvatakse need kaadrid järjest kõrgetel kaadrisagedustel, tavaliselt 24, 25, 30 või juba nüüd ka 48 kaadrit sekundis, et saavutada liikumise illusiooni.

Kui eesmärk on foto-realismi efekti saavutamine, kasutatakse niisuguseid tehnikaid nagu kiirte jälitus või radiosity. See on digitaalse meedia ja kunstiteoste peamine meetod. On välja töötatud tehnikad, et jäljendada teisi looduslikult esinevaid mõjusid, näiteks valguse koostoime erinevate ainevormidega. Selliste tehnikate näited hõlmavad osakeste süsteemi (ingl particle system) (mille abil saab simuleerida vihma, suitsu või tuli), ruumiliset diskreetimist (ingl volumetric sampling) (et simuleerida udu, suitsu või teist ruumilist atmosfäärinähtust), kaustikat (et simuleerida valguse fookustamist ebaühtlaste valguse murduvate pindade pärast, näiteks ujumisbasseini põhjal nähtavad valguse säbarlainetused) ja alampinna hajumine (et simuleerida valguse peegeldumist tahkete esemete mahtude sees, näiteks inimese nahk).

Viimistlusprotsess on arvutuslikult kallis, arvestades simuleeritud füüsikaliste protsesside keerukat valikut. Arvutitöötlemisvõimsus on aastate jooksul kiirelt kasvanud, võimaldades realistlikuma viimistluse järk-järgult kõrgemat taset. Filmistuudiod mis valmistavad arvuti-genereeritud animatsioone, kasutavad tavaliselt viimislemisklastrid (ingl render farm), et pilte õigeaegselt genereerida. Kuid riistvara hindade vähenemine tähendab, et koduses arvutisüsteemis on täiesti võimalik luua 3D-animatsiooni väikesed kogused. Renderduse väljundit kasutatakse sageli ainult nagu üks väike osa lõpetatud filmimaastikust. Paljud materjali kihid võivad olla eraldi viimistletud ja integreeritud lõpptulemusse, kasutades kompositsioonitarkvara (ingl compositing software).

 Peegeldus- ja varjustusmudelid 
pisi|300px|Utah' teekann, standardne 3D-proovimudel
Peegelduse/hajumise ja varjustuse mudelit kasutatakse pinna välimuse kirjeldamiseks. Kuigi need eesmärgid võivad tunduda endiselt probleemidena, peaaegu uuritakse neid eranditult renderdamise kontekstis. Tänapäevane 3D-graafika toetub suuresti lihtsustatud peegeldusmudelile, mida nimetatakse Phongi peegeldumismudeliks (ingl Phong reflection model) (ei tohi segi ajada Phongi varjamisega; Phong Shading)). Valguse murdumisel on oluline murdumisnäitajaks (ingl refractive index). Enamikus 3D-programmeerimisrakenduses on selle väärtuse mõiste "murdetegur" (ingl index of refraction). Varjustamine võib jagada kaheks tehnikaks, mida sageli uuritakse iseseisvalt:

 pinna varjustus – kuidas valgus levib üle pinna (seda kasutatakse peamiselt rida-realt skaneerimise jaoks, mis on mõeldud videomängude reaalajas 3D-viimistluseks);
 peegeldus/hajumine – kuidas valgus suhtleb teatud punktis teatud pinnaga (enamasti kasutatakse kiirte jälituse viimistluseks mitte-reaalajas fotorealistliku ja kunstilise 3D-viimistluse jaoks nii CGI-il staatilisel 3D-piltidel kui ka CGI mitteinteraktiivsetel 3D-animatsioonidel).

 Pinna varjustus 
3D-arvutigraafika populaarsemaid pinnaviimistlusalgoritmid on järgmised:

 lamevarjustus – meetod, mis varjab objekti igat polügooni, mis põhineb hulknurga "normaalist" ja valgusallika asukohta ja intensiivsust. Meetodis ei ole rakendatud mingit parandusalgoritmi valguse peegeldamiseks.
Gouraud' varjustus (ingl Gouraud shading) – H. Gouraud 1971. aastal pakkus kiire ja ressursi teadlik tippude varjunditehnikat, mida kasutatakse sujuvalt varjustatud pindade jäljendamiseks.
 Phongi varjustus (ingl Phong shading) – Bui Tuong Phong aastatel 1973–1975 leiutas meetodi, mida kasutatakse peegelpiltide ja siledate varjustatud pindade jäljendamiseks.

 Peegeldus 
Peegeldus või hajumine on seos saabuva ja väljamineva valgustuse vahel antud punktis. Hajumise kirjeldused on tavaliselt antud kahepoolse hajumise jaotusfunktsiooni (või BSDF-i) (ingl bidirectional scattering distribution function) tähenduses.

 Varjustus 
pisi|1: 3D-mudel enne tekstuurimist2: 3D-mudel tekstuurituna
Varjustamine näitab, kuidas erinevad hajumistüübid jaotuvad pinnale (s.t milline hajumisfunktsioon kehtib millises kohas). Sellised kirjeldused on tavaliselt väljendatud programmiga, mida nimetatakse varjutajaks (ingl shade – vari). (Pange tähele, et on segadust, kuna sõna "shader" inglise keeles kasutatakse mõnikord programmide puhul, mis kirjeldavad kohalikku geomeetrilist variatsiooni). Lihtne näide varjutamisest on tekstuuri kaardistamine või tekstuurimine, mis kasutab rastergraafikat, et määrata hajuvat värvi igas pinnaosas, andes sellele selgemat detaili.

Mõned varjutamismeetodid sisaldavad ka järgmist:
 Kühmutus (ingl bump mapping) – välja töötatud Jim Blinn, normaalne-häiring tehnikat, mida kasutatakse kortsus pindade simuleerimiseks.
 Cel varjustamine (ingl Cel shading) – meetod, mida kasutatakse käekujutise animatsiooni jäljendamiseks.

 Projektsioon 
pisi|Perspektiivi projektsiooni näide
Varjustatud kolmemõõtmelised objektid peavad olema lamestatud nii, et kuvaseade – nimelt kuvar – suudab seda kuvada vaid kahes mõõtmes, seda protsessi nimetatakse 3D-projektsiooniks (ingl 3D-projection). Seda tehakse kasutades projektsiooni ja, enamiku rakenduste puhul, perspektiivvaadet. Perspektiivprojektsiooni põhieesmärk on, et kaugemal asuvad objektid on võrreldes nende objektidega, mis on silmade/kaamera lähedal, väiksemad. Programmid toovad perspektiivi, korrutades paisutuse konstanti, mis on üles tõstetud vaatleja kauguse negatiivse võimsusega. Kui paisutuse konstant võrdub üks, tähendab seda, et perspektiivi pole. Suured paisutuse konstandi väärtused võivad põhjustada "kalasilma" efekti, mille käigus tekib pildi moonutus. Ortograafilist projektsiooni (ingl Orthographic projection) kasutatakse peamiselt CAD-i (ingl Computer-aided design'') või CAM-i rakendustes, kus teaduslik modelleerimine nõuab täpset mõõtmist ja kolmanda mõõtme säilimist.

 Vaata ka 
 Arvutinägemine
 Graafika
 Digitaalne pilditöötlus

 Viited 

Kategooria:Arvutigraafika