Die leweringproses speel 'n belangrike rol in die ontwikkelingsiklus vir rekenaargrafika . Ons gaan hier nie te veel diepte in nie, maar geen bespreking van die CG-pyplyn sal volledig wees sonder om ten minste die gereedskap en metodes vir die maak van 3D-beelde te noem nie.
Soos die ontwikkeling van film
Die lewering is die mees tegnies komplekse aspek van 3D-produksie, maar dit kan eintlik redelik maklik verstaan word in die konteks van 'n analogie. Soos 'n rolprentfotograaf moet sy foto's ontwikkel en druk voordat hulle vertoon kan word, word rekenaargrafiese professionele persone soortgelyke noodsaaklikheid.
Wanneer 'n kunstenaar op 'n 3D-toneel werk , is die modelle wat hy manipuleer eintlik 'n wiskundige voorstelling van punte en oppervlaktes (meer spesifiek hoekpunte en veelhoeke) in driedimensionele ruimte.
Die term rendering verwys na die berekeninge wat uitgevoer word deur 'n 3D-sagtewarepakket se lewer enjin om die toneel te vertaal vanaf 'n wiskundige benadering tot 'n gefinaliseerde 2D-beeld. Tydens die proses word die hele toneel se ruimtelike, tekstuur- en beligtingsinligting gekombineer om die kleurwaarde van elke pixel in die afvlakke te bepaal.
Twee tipes lewering
Daar is twee groot tipes lewering, hul hoofverskil is die spoed waarteen beelde bereken en gefinaliseer word.
- Real-Time Rendering: Real-Time Rendering word die mees prominente gebruik in spel- en interaktiewe grafika, waar beelde uit 'n ongelooflike vinnige tempo uit 3D-inligting bereken moet word.
- Interaktiwiteit: Aangesien dit onmoontlik is om presies te voorspel hoe 'n speler met die spelomgewing sal skakel, moet beelde in "real-time" weergegee word soos die aksie ontvou.
- Spoed Matters: Om sodoende vloeistof te laat vertoon, moet 'n minimum van 18 - 20 rame per sekonde op die skerm vertoon word. Enigiets minder as hierdie en aksie sal slap wees.
- Die metodes: Real-time rendering word drasties verbeter deur toegewyde grafiese hardeware (GPU's), en deur soveel inligting as moontlik op te stel. 'N groot deel van 'n spel omgewing se beligting inligting is pre-bereken en "gebak" direk in die omgewing se tekstuur lêers verbeter spoed te verbeter.
- Vanlyn of voorvertoning: Vanlynweergawe word gebruik in situasies waar spoed minder van 'n probleem is, met berekeninge wat tipies uitgevoer word met behulp van multikern-SVE eerder as toegewyde grafiese hardeware.
- Voorspelbaarheid: Vanlyn-lewering word die meeste gesien in animasie en effekte werk waar visuele kompleksiteit en fotorealisme tot 'n veel hoër standaard gehou word. Aangesien daar geen onvoorspelbaarheid is wat in elke raam sal verskyn nie, is groot ateljees bekend om 90 uur te spandeer om tyd aan individuele rame te gee.
- Fotorealisme: Aangesien offline-weergawe binne 'n oop tydraamwerk plaasvind, kan hoër vlakke van fotorealisme bereik word as in real-time rendering. Karakters, omgewings en hul gepaardgaande teksture en ligte word tipies toegelaat vir hoër poligoongetalle en 4k (of hoër) resolusie tekstuurlêers.
Leweringstegnieke
Daar is drie hoofberekeningstegnieke wat gebruik word vir die meeste weergawes. Elkeen het sy eie stel voordele en nadele, wat al drie lewensvatbare opsies in sekere situasies maak.
- Scanline (of rasterization): Scanline-weergawe word gebruik wanneer spoed 'n noodsaaklikheid is, wat dit die tegniek van keuse maak vir real-time weergawes en interaktiewe grafika. In plaas daarvan om 'n beeld pixel-vir-pixel te lewer, bereken die skyflyn-renderers op 'n veelhoek teen veelhoek. Skanderingstegnieke wat gebruik word in kombinasie met voorafberekende (gebakte) beligting, kan 'n snelheid van 60 rame per sekonde of beter op 'n hoë-end grafiese kaart bereik.
- Raytracing: In raytracing word vir elke pixel in die toneel een (of meer) ligstraal van die kamera na die naaste 3D-objek opgespoor. Die ligstraal word dan deur 'n sekere aantal "bounces" geslaag, wat refleksie of breking kan insluit afhangende van die materiaal in die 3D-toneel. Die kleur van elke pixel word algoritmies bereken, gebaseer op die ligstraal se interaksie met voorwerpe in sy opgespoorde pad. Raytracing is in staat om groter fotorealisme as scanline, maar is eksponensieel stadiger.
- Radiositeit: In teenstelling met raytracing word radiositeit onafhanklik van die kamera bereken, en is oppervlakgerig, eerder as pixel-vir-pixel. Die primêre funksie van radiositeit is om oppervlakkleur akkuraat te simuleer deur rekening te hou met indirekte verligting (spuit diffuse lig). Radiositeit word tipies gekenmerk deur sagte gegradueerde skadu's en kleurbloeding, waar lig van helderkleurige voorwerpe "bloei" op nabygeleë oppervlaktes.
- In die praktyk word radiositeit en raytracing dikwels in samewerking met mekaar gebruik, met die voordele van elke stelsel om indrukwekkende vlakke van fotorealisme te behaal.
Lewering van sagteware
Alhoewel lewering afhanklik is van ongelooflike gesofistikeerde berekeninge, bied vandag se sagteware maklik parameters om dit te verstaan sodat 'n kunstenaar nooit die onderliggende wiskunde hoef te hanteer nie. 'N Rekenaar-enjin word by elke groot 3D-sagtewarepakket ingesluit, en die meeste sluit in materiaal- en beligtingspakkette wat dit moontlik maak om verstommende vlakke van fotorealisme te behaal.
Die twee mees algemene lewer enjins:
- Geestelike Ray - Verpak met Autodesk Maya. Geestelike Ray is ongelooflik veelsydig, relatief vinnig, en waarskynlik die mees bevoegde renderer vir karakterbeelde wat ondergrondse verstrooiing benodig. Geestelike straal gebruik 'n kombinasie van raytracing en "global illumination" (radiosity).
- V-Ray - Jy sien gewoonlik V-Ray wat gebruik word in samewerking met 3DS Max-saam. Die paar is absoluut ongeëwenaard vir argitektoniese visualisering en omgewingsweergawe. Belangrikste voordele van VRay oor sy mededinger is sy beligting gereedskap en uitgebreide materiaal biblioteek vir arch-viz.
Lewering is 'n tegniese onderwerp, maar kan baie interessant wees as jy werklik 'n dieper kyk na sommige van die algemene tegnieke.