Renderizazio

Renderizazioa edo irudien sintesia 2D edo 3D modelo batetik (edo modelatuak modu kolektiboan eszena-fitxategi deitu litekeena) ordenagailu programen bidez irudi fotoerrealista edo ez-fotoerrealista sortzeko prozesu automatikoa da. Gainera, halako eredu bat bistaratzeko emaitzari renderizazio deitu daiteke. Eszena-fitxategi batek zehaztasunez definitutako hizkuntza edo datu egitura bateko objektuak ditu; geometria, ikuspuntua, testura, argiztapena eta itzalen informazioa eszena birtualaren deskribapen gisa. Eszena-fitxategian jasotako datuak renderizazio-programa batera pasatu eta irteera irudi digital edo raster irudi grafikoko fitxategi batean gordetzen da. "Renderizazio" terminoa eszena baten "artistaren renderizazioaren" analogia bat izan daiteke.

Errenderizatzeko metodoen xehetasun teknikoak aldatu egiten badira ere, eszena-fitxategi batean gordetako 3D-ko irudikapen batetik 2D irudia sortzeko gainditu beharreko erronka orokorrak hodi-grafikoetan bezela azaltzen da eta errenderizazio gailu batekin batera, esate baterako, GPU gisa agertzen dira. GPU bat CPU-ri laguntzeko eraikia izan den gailua da, renderizazio kalkulu konplexuak egiteko. Eszena nahiko errealista eta aurreikusgarria izan behar bada argiztapen birtualaren bidez, renderizazio-programak renderizazio-ekuazioa ebatzi beharko luke. Errendatze-ekuazioak ez ditu argiztapen fenomeno guztiak kontutan hartzen, baina ordenagailuek sortutako irudientzako argiztapen eredu orokorra da. "Renderizazioa" bideo edizio programa batean efektuak kalkulatzeko prozesua deskribatzeko ere erabiltzen da, amaiera bideo irteera sortzeko.

Renderizazioa 3D ordenagailu grafikoen azpiatal nagusietako bat da, eta praktikan beti dago lotuta besteekin. Hodi-grafikoa, azken urrats nagusia da, ereduari eta animazioari azken itxura ematen diona. 1970eko hamarkadaz geroztik ordenagailu grafikoen sofistikazioa gero eta handiagoa izanez, gai berezia bilakatu da.

Renderizazioa arkitektura, bideo-joko, simuladore, pelikula edo telebista efektu bisualetan eta diseinuaren bistaratzean erabilera du, eta bakoitzak ezaugarri eta teknika oreka desberdinak ditu. Produktu gisa, renderizadore ugari eskaintzen dira. Batzuk modelatze eta animazio pakete handiagoetan integratuta daude, beste batzuk bakarrik, eta beste batzuk ikode irekiko proiektuak dira. Barrualdean, renderizadore batek arretaz diseinatutako programa bat da, fisika arina, ikusmen pertzepzioa, matematika eta software garapenari erlazionatutako diziplinen nahasketa selektiboan oinarritutakoa.

3D grafikoen kasuan, renderizatzea motel egin daiteke, aurre renderizatzean edo denbora errealean. Aurre-renderizazioa prozesu konputazionalki intentsiboa da eta normalean pelikulak sortzeko erabiltzen da. Denbora errealeko renderizazioa 3D bideo-jokoetarako erabiltzen da eta, horretarako, 3D hardware bidezko azelerazio txartel grafikoak erabiltzean oinarritzen da.

Teknikak 
Renderizatzeko algoritmo ugari ikertu dira, eta renderizatzeko erabilitako softwareak hainbat teknika erabili ditzazke azken irudia lortzeko.

Eszena bateko argi partikula bakoitzaren arrastoa segitzea gehienetan ia ezinezkoa da eta denbora kopuru izugarria beharko luke. Irudia sortzeko nahikoak diren argi partikulen arrastoa segitzea denbora izugarria behar du laginketa ez baldin badago zentzuk mugatuta.

Hori dela eta, argi mugumendu eredua modelatzeko teknika eraginkor solte batzuk sortu dira:

 rasterizazioa, eskaneatze renderizazioa barne, eszenako objektuak irudi plano batean proiektatzen ditu, efektu optiko aurreraturik gabe;
 ray casting-ek eszena ikuspuntu zehatz batetik kontsideratzen du, behatzen den irudia geometrian eta islapen-intentsitateen oso oinarrizko lege optikoetan bakarrik oinarritzen da, eta agian, Montecarloko teknikak erabiliz artefaktuak murrizteko;
 ray tracing ray casting-en antzekoa da, baina simulazio optiko aurreratuagoak erabiltzen ditu, eta normalean Monte Carlo teknikak erabiltzen ditu emaitza errealagoak lortzeko eta askotan abiadura azkarragoetan.

Laugarren motako argia garraiatzeko teknika, irradiazioa ez da normalean renderizatu teknika gisa inplementatzen, baizik eta argiaren igarotzea kalkulatzen du argiaren iturria utzi eta gainazalak argitzen dituela. Gainazal hauek normalean beste hiru tekniketako bat erabiliz kalkulatzen dira.

Software aurreratu gehienek bi teknika edo gehiago konbinatzen dituzte, emaitza onak lortzeko zentzuzko kostuarekin.

Beste bereizketa bat irudi-ordenako algoritmoen artean, zein irudi planoko pixelak iteratzen dutenak, eta objektu-ordenako algoritmoak, zein eszenako objektuak iteratzen dutenak. Orokorrean objektuen ordena eraginkorragoa da, normalean eszena batean objektu gutxiago daude pixelak baino.

Scanline renderizazioa eta rasterizioa 
Irudi baten maila-altuko irudikapenak pixelen domeinu desberdinetako elementuak ditu nahitaez. Elementu horiei primitiboak deritze. Marrazki eskematikoan, adibidez, lerro segmentu eta kurbak primitiboak izan daitezke. Erabiltzaile interfaze grafiko batean, leihoak eta botoiak izan daitezke. 3D ereduak errendatzerakoan, espazioan hiruki eta poligonoak primitiboak izan litezke.

Renderizatzerakoan pixelez-pixel (irudien ordena) hurbilketa zereginetarako zaila edo oso motela bada, orduan renderizatzeko primitiboz-primitiboa (objektuen ordena) hurbilketa erabilgarria izan daiteke. Kasu honetan, begizta baten bidez primitiboak banaka korritu, eta irudiko zein pixel eragiten diren zehazten da eta horren arabera aldatzen dira. Honi rasterizazioa deritzo eta gaur egungo txartel grafiko guztiek erabiltzen duten renderizazio metodoa da.

Rasterizazioa pixelez-pixel renderizatzea baino azkarragoa da. Lehenik eta behin, irudiaren eremu handiak primitiborik gabe egon daitezke; rasterizazioak eremu horiek alde batera utziko ditu, baina pixelez-pixel renderizazioak horietatik pasa behar da. Bigarrenik, rasterizazioak cachearen koherentzia hobetu dezake eta lan erredundantea murriztu, irudian primitibo batean dauden pixelak ondokoak izaten direla. Arrazoi hauengatik, renderizazio interaktiboa behar denean rasterizazioa aukeratzen izan ohi da ; hala ere, pixelez-pixelen ikuspegiak maiz kalitate handiagoko irudiak sor ditzake eta erabilera anitzekoagoa da, ez baitu irudiaren inguruko suposizio askoren arabera rasterizatu behar.

Rasterizatzearen forma zaharrago bat, aurpegi oso bat (primitiboa) kolore bakarrean renderizatzea da. Bestela, rasterizazioa modu konplikatuago batean egin daiteke lehenik objetu baten aurpegiaren erpinak renderizatuz eta aurpegi horren pixelak erpinen koloreen nahasketa bezala renderizatuz. Rasterizazioaren bertsio honek metodo zaharrak gainditu ditu, grafikoak testura korapilatsurik gabe sortu daitzazkelako (rasterizatutako irudi batek konparazioz bloke-efectu nabarmena due; aurpegiak ez dira lehunak kolorea ez delako gutxinaka adatzen primitibo batetik bestera). Rasterizazio metodo berriago honek txartel grafikoaren itzalketa funtzio zailagoak erabiltzen ditu eta hala ere errendimendu hobea lortzen du, memorian gordetako testura sinpleek leku gutxiago erabiltzen baitute. Batzuetan, diseinatzaileek aurpegi batzuetan rasterizazio metodo bat erabiltzen dute eta besteetan beste metodo aurpegi batek beste bat zein angelutan topatzen den oinarrituta, eta honela abiadura handituz.

Ray casting 
Ray casting ereduan modelatu den geometria pixelez-pixel analizatzen da, lerroz-lerro, ikuspuntutik kanporantz, izpiak ikuspuntutik ateratzen balira bezala. Objektu bat gurutzatzen den lekuan, puntu horretako kolore balioa hainba metodo erabiliz ebaluatu daiteke. Sinpleenean, gurutzatzen den puntuan objektuaren kolore balioa pixel horren balioa bihurtzen da. Kolorea ehundura-mapa batean zehaztu daiteke. Metodo sofistikatuago bat kolorearen balioa argiztapen-faktore batez aldatzea da, baina simulatutako argi-iturriarekin erlazioa kalkulatu gabe. Artefaktuak murrizteko, norabide antzekoen izpi batzuen batez-bestekoak egin daiteke.

Ray castingean "ikuspegiaren norabidea" kalkulatzea da (kameraren posiziotik), eta inkrementalki eszenako "ray cast"-a jarraituz "3D objetu solido"-en zehar, 3D espazioan puntu bakoitzeko balioa metatuz. Hau "ray tracing"-arekin erlazionatuta dago eta antzekoak dira, baino raycast-a ez da "errebotatzen" gainazaletik. "Ray casting" argi izpiak bide zuzen bat jarraitzen duela adierazten du (non objektu erdi-gardenak zeharkatzea barne egon daiteke). Ray cast-a kamera edo eszena-mutur batean sor daitekeen bektorea da. Batzuetan, azken argi balioa "transferentzia funtzio" batetik eratorria da eta beste batzuetan zuzenean erabiltzen da.

Propietate optikoen gutxi gorabeherako simulazioa ere erabil daitezke: objektutik ikuspegira izpiaren kalkulu sinple bat egiten da. Beste kalkulu bat egiten da argi izpien intzidentzia angeluarekin argiaren iturburutik, eta hauetatik eta argi iturrien espezifikatutako intentsitatearekin, pixelaren balioa kalkulatzen da. Beste simulazio batek, erradiotasun algoritmo batetik irudikatutako argiztapena erabiltzen du, edo bi hauen konbinaketa bat.

Ray tracing 

Ray tracing-ek argiaren fluxu naturala simulatzea helburua du, partikulak bezala interpretatuz. Sarritan, ray tracing metodoak erabiltzen dira renderizatze-ekuazioaren emaitza hurbiltzeko Monte Carlo metodoak aplikatuz. Metodo erabilienetariko batzuk path tracing, bi noranzko path tracing-a edo Metropolis light transport dira, baina metodo erdi-errealista batzuk ere erabiltzen dira, Whitted Style Ray Tracing edo hibridoak bezala. Inplementazio gehienek argia lerro zuzenetan hedatzen uzten duten bitartean, espazio-denbora efektu erlatibistak simulatzeko aplikazioak existitzen dira.

Erabilera 
Aurre irudia (wireframe zirriborroa normalean) osatuta dagoenean, renderizazioa erabiltzen da, bitmap-texturak edo textura prozeduralak, argiak, erliebe-mapeaketa eta posizio erlatiboa gehitzen dituena beste objektu batzuekin. Emaitza kontsumitzaileak edo nahi duen ikusleak ikusten duen irudia da.

Pelikulen animazioetarako, hainbat irudi (fotograma) renderizatu behar dira eta mota honetako animazioak egiteko gai den programa batean bildu. 3D irudiak editatzeko programa gehienek egin dezakete.

Aurrerrenderizazioa 
Aurrez renderizatutako irudiak erabiltzeari deitzen zaio aurrerenderizazioa. Objektu konplexu bati dagozkion renderizazioak aurrez kalkula daitezke, hau da, ikuspuntu desberdinetatik begiratuz objektuaren irudiak aurretik makina ahaltsu batean kalkulatu eta jaso ditzakegu. Gerora, animazio batean objektu hori sartu behar badugu, objektu konplexuaren poligonoen renderizazioa egin beharrean, begiratze direkzioaren arabera irudi egokia aukeratu eta irudi aurrerrenderizatua ehundura moduan sar daiteke. Izan ere, ehunduraren pixelak irudian txertatzea objektu konplexuaren poligonoak renderizatzea baino askoz azkarragoa da: objektu konplexu horrek berak bere poligonoetan hainbat ehundura eduki ditzake.

Joko zaharretan asko erabiltzen zen (2003 urtetik atzerakoetan), 3D eta 2D arteko nahasketak egiten baitzituzten. Hiru dimentsiotan kalkulatzen zutena objektu mugikorrei zegokiena zen eta hondoko irudiaren gainean mugitu arazten zituzten. Hondoko irudia eta bertako objektuak ehundura geldi bat ziren. Talka-kutxak erabiltzen zituzten pertsonaiak hondoko irudiko objektuekin talka noiz egin behar zuen kalkulatzeko, horrela, objektuok ez zituzten zeharkatzen. Teknika horren desabantaila nagusia kamera askeak erabiltzeko garaian ageri zen. Eszenaren ikuspegi jakin batzuen irudiak besterik ez zeuzkaten aurrerrenderizatuta, eta ondorioz, kamerak ikuspegi horiek besterik ezin zituen eskaini. Metodo hau asko erabili zen besteak beste Resident Evil eta Dino Crisis bezalako jokoetan.

Gaur egun aurrerrenderizazioa 3Dko objektu estatikoen ehundura gisa erabiltzen da: esate baterako, horma batean eszenako objektu estatiko batek itzala eragiten badu, renderizazio-motorrak itzal hori fotograma bakoitzean kalkulatu beharko luke, baina nahikoa da kalkulu hori behin egitea eta jasotzea. Horrela, fotograma bakoitzean hormari dagokion irudia, itzala duena, hormaren ehundura moduan gehitzea nahikoa izango da. Beste hainbat detaile kalkulatzeko ere erabiltzen da, baina aurrera begira gero eta gutxiago erabiliko dela aurre ikus daiteke, izan ere, dinamismoa kentzen du: aurreko itzalaren kalkuluan, esate baterako, argiaren ezaugarriak aldatuko balira itzala ere aldatu egin beharko litzateke, baina motor grafikoak ez duenez unean uneko itzala kalkulatzen ezingo litzateke aldaketaren eraginik ikusi.

"Renderizazio" hitzaren beste erabilera 

Duela hainbat urte bi dimentsioetako irudien edizioan ere renderizazio hitza erabiltzen hasi ziren. Argazkiei aldaketak eragiteari, irudiak nahasteari eta antzeko prozesuei ere renderizatzea deitzen diote. Kasu horretan ez da renderizazio-motorrik erabiltzen, baina irudien gainean aldaketak eragiten dituzte eta hitz bera erabiltzen dute. Zenbaiten esanetan erabilera okerra da. Gaizki erabilitako termino hau interneten zehar zabaldu da, eragin gehien izan dutenak irudi digitalen edizio tutorialak doainik argitaratzen dituzten orrietan izan da, diseinatzaile amateur berriek "renderizatu" terminoa gaizki erabiltzeko aukera emanez.

Bibliografia

Ikus, gainera 
 3D Modelaketa
 Aberrazio kromatiko
 Irudi bektorial

Kanpo estekak 
 GPU Rendering Magazine, online CGI aldizkaria GPU errendatzearen abantailei buruz
 SIGGRAPH ACM-ren interes-talde berezia grafikoetan: elkarte eta kongresu akademiko eta profesionalik handiena.
 https://web.archive.org/web/20040923075327/http://www.cs.brown.edu/~tor/ Sareko siggraph paperen (eta beste batzuen) esteken lista.

Grafikoen softwarea
3D irudia