Renderēšana

[thumb|350px|Renderēts [datora radīti attēli|datora radīts attēls]]

**Renderēšana** datorgrafikā ir beidzamais process divdimensionāla attēla vai animācijas iegūšanai no jau iepriekš sagatavotas trīsdimensionālas ainas. Šo procesu var pielīdzināt fotogrāfijas uzņemšanai vai videomateriāla filmēšanai, pēc tam, kad reālajā dzīvē pabeigta skata uzstādīšana. Ir izstrādātas dažādas un bieži vien specializētas renderēšanas metodes, kas sniedzas no vienkāršākām un nereālistiskākām karkasmodeļa renderēšanām, kuru pamatā ir daudzstūri, līdz tādiem progresīviem paņēmieniem kā skenēšanas rindas renderēšana (), staru izsekošana, vai *[[radiosity]]*. Atkarībā no attēla sarežģītības, tā renderēšana var ilgt no pāris sekundēm līdz pat vairākām dienām.

## Renderēšanas metodes
### Reāllaika renderēšana
[right|thumb|250px|[Ekrānuzņēmums no *[[Second Life]]* — mūsdienu simulācijas piemēra, kurā kadrus renderē reāllaikā.]] 
Interaktīvajās programmās (piemēram, datorspēlēs un simulācijās) renderētos attēlus un to virknes izskaitļo un attēlo reāllaikā ar ātrumu no 20 līdz pat 120 attēliem sekundē. Reāllaika renderēšanas mērķis ir attēlot pēc iespējas vairāk informācijas, ko acs spēj uztvert sekundes trīsdesmitajā daļā jeb vienā attēlā 30-kadru-sekundē animācijā. Šajā gadījumā galvenās renderēšanas prasības ir ātrums nevis foto reālisms. Tā kā rezultāts ir virtuālās realitātes atainojums, katrs renderētais attēls netiek uztverts atsevišķi, bet gan kopējā plūdumā ar pārējiem attēliem, tāpēc katra attēla kvalitātei nav jābūt reālistiskai, bet gan cilvēka acij pieņemamai. Lai padarītu attēlus reālistiskākus, programmatūra simulē dziļuma asumu, kustības izplūduma () un lēcas atspīduma efektus. Tie ir mēģinājumi parādīt optiskās parādības, kas radušās kameras lēcu vai cilvēka acs īpatnību dēļ un padarīt ainu reālistiskāku. Šīs ir galvenās metodes, ko izmanto datorspēlēs, simulācijās un virtuālo realitāti modelēšanas valodās (*VRML*). Straujais datu apstrādes ātruma pieaugums palielina realitātes pakāpi arī reāllaika renderēšanā izmantojot tādas metodes kā, piemēram, HDR kartes. Reāllaika renderēšana pārsvarā balstās tikai uz daudzstūru metodes un tās kvalitāte ir atkarīga no datora grafiskā procesora jaudas.

### Ne reāllaika renderēšana

Animācijas neinteraktīvajiem medijiem (piemēram, video) renderē daudz lēnāk. Ne reāllaika renderēšana nepieprasa attēla vajadzību attiecīgajā mirklī, tādēļ katra atsevišķā kadra renderēšanai var atvēlēt vajadzīgo laiku, lai iegūtu vēlamo kvalitāti. Renderēšana var ilgt no pāris sekundēm līdz pat vairākām dienām, ja renderē sarežģītas ainas. Izrenderētie attēli secīgi tiek saglabāti cietajā diskā, bet pēc vajadzības var tikt saglabāti dažādos formātos. Pēcāk attēlus lielā ātrumā attēlo vienu pēc otra, parasti 24, 25 vai 30 kadrus sekundē, lai radītu kustības šķietamību.
Ja mērķis ir iegūt foto reālistisku attēlu, ieteicams izmantot tādus paņēmienus kā staru izsekošanu vai *[[radiosity]]*. Šie ir digitālajos medijos un pat mākslinieciskos darbos visbiežāk izmantotie pamatalgoritmi. Šie paņēmieni ir radīti, lai attēlos simulētu citas dabā sastopamas optiskās parādības, piemēram, daļiņu sistēmas, kas var simulēt lietus, dūmu, uguns, vai citu parādību īpašības, tilpuma modeļus, lai attēlotu miglu, putekļus un citus telpiskus atmosfēras efektus, *[[caustics]]* (atveidot gaismas lūšanu caur nelīdzenām virsmām, radot ēnas, kādas dabā var novērot, piemēram, uz baseina dibena) un zemvirsmas izkliede (), kas simulē gaismas laušanu blīvu priekšmetu, piemēram, dzintara vai cilvēka ādas iekšienē.
Renderēšana patērē lielus procesora resursus, jo atkarībā no ainas, gaismu un materiālu sarežģītības vienlaikus darbojas uzreiz vairāki skaitļošanas algoritmi. 
Pēdējo gadu laikā ir strauji palielinājusies datora skaitļošanas jauda, padarot iespējamu augstas kvalitātes progresīvu renderēšanu. Kinostudijas mūsdienīgāku rezultātu iegūšanai datoranimācijas filmu veidošanā parasti izmanto *[[Render Farm]]* programmatūru. Toties krītošās tehnikas cenas paver to lietošanu plašākam cilvēku lokam. Renderēšanas rezultāts bieži tiek lietots tikai kā specefektu daļa, ar speciālu tam paredzētu programmatūru apvienojot vienā gala produktā daudzus dažādās tehnikās veidotus materiālus, tostarp 3D animācijas.

### Atspīduma un ēnošanas modeļi
Gaismas atspīduma/kliedēšanas un ēnošanas algoritmus izmanto, lai aprakstītu virsmas īpašības. Mūsdienīga 3D datorgrafika patiesībā balstās uz vienkāršota atspīduma modeļa — Fonga atspīduma modeli (nejaukt ar Fonga ēnojumu). Gaismas laušanas izskaitļošanā nozīmīga daļa ir gaismas laušanas koeficients. Vairākumā 3D programmu gaismas laušanas koeficientu saīsināti sauc par *IOR*. Ēnošana parasti tiek sadalīta divās neatkarīgi viena no otras darbojošās, ortogonālās komponentēs. Galvenie ar gaismas īpašībām saistītie algoritmi:

#### Gaismas atstarošana/izkliede
Gaismas atstarošana/izkliede apraksta to, kā attiecīgajā punktā gaisma mijiedarbojās ar materiāla virsmu.

#### Atstarošana
[thumb|500px|[Jūtas tējkannas modelis.]]
Atstarošana jeb gaismas kliedēšana ir attiecība starp uz objekta krītošās un no tā atstarotās gaismas apjomu un īpašībām dotajā objekta virsmas punktā. Gaismas kliedēšanas apraksti parasti doti kā bidirekcionālās izkliedes izplatīšanās funkcijas (). Populārākās 3D renderēšanas tehnikas iekļauj:
* Plakaniskā ēnošana jeb daudzstūru metode () — paņēmiens, kurā katru objektu sadala daudzstūru plaknēs un ēno tos attiecībā pret katra stūra perpendikulu un atkarībā no gaismas avota atrašanās vietas un intensitātes.
* Guro ēnojums — 1971. gadā izstrādājis Anrī Guro, ātra un resursus ietaupoša virsotņu ēnošanas metode, kas simulē virsmas noapaļošanu.
* Faktūrkartēšana () — paņēmiens, kas atveido virsmas detalizāciju, piešķirot virsmai faktūru.
* Fonga ēnojums — izstrādāja Bujs Tongs Fongs, izmanto, lai simulētu atspoguļotos izgaismojumus un plūstošas, vienmērīgas ēnas.
* Reljefa kartēšana — izstrādājis Džeimss Blinns, izmanto nelīdzenu virsmu atveidošanai.
* *[[Cel shading]]* — paņēmiens, ar kuru atdarina ar roku zīmētas animācijas efektu.

#### Ēnošana
Apraksta, kā gaismas īpašības mainās dažādos virsmas punktos. Gaismas izkliedes īpašību izteikšanai galvenokārt lieto programmu, ko sauc par ēnotāju. Vienkāršs ēnošanas paraugs ir faktūrkartēšana, kura izmanto attēlu, lai precizētu izkliedes krāsu uz virsmas, radot reālistiskāku attēlojumu.

### Gaismas virzība

Gaismas virzība attēlo to, kā apgaismojums skatā nonāk no vienas vietas citā. Gaismas virzības galvenais nosacījums ir redzamība.

### Projicēšana
thumb|350px

Procesu, kurā izēnotos trīsdimensiju modeļi padara plakanus, lai monitors varētu tos attēlot divās dimensijās, sauc par 3D projicēšanu. To paveic ar perspektīvas projicēšanu. Perspektīvas pamatdoma ir priekšmetus, kas atrodas tālāk, padarīt mazākus, nekā tos, kas ir tuvāk acij. Programmas veido perspektīvi palielinot izvērsuma konstanti negatīvā virzienā no vērotāja. Ja izvērsuma konstante ir viens, tas nozīmē, ka perspektīvas nav. Liela izvērsuma konstante var radīt *fisheye* efektu, kad parādās attēla izkropļojumi. Ortogrāfisko projicēšanu galvenokārt izmanto datorizētās projektēšanas (*CAD*) un datorizētās ražošanas (*CAM*) programmatūrā, kurās zinātniskajai modelēšanai nepieciešami precīzi mērījumi, un trešās dimensijas saglabāšana.

## Ārējās saites
* A Critical History of Computer Graphics and Animation 
* The ARTS: Episode 5 An in depth interview with Legalize on the subject of the History of Computer Graphics. (Available in MP3 audio format)
* CGSociety The Computer Graphics Society
* How Stuff Works - 3D Graphics
* ''History of Computer Graphics'' series of articles
* 3d Renderings