Renderēšana

Vikipēdijas lapa
Pārlēkt uz: navigācija, meklēt

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 (angļu: scanline rendering), 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[labot šo sadaļu | labot pirmkodu]

Reāllaika renderēšana[labot šo sadaļu | labot pirmkodu]

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 (angļu: motion blur) 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[labot šo sadaļu | labot pirmkodu]

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 (angļu: Subsurface scattering), 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[labot šo sadaļu | labot pirmkodu]

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[labot šo sadaļu | labot pirmkodu]

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

Atstarošana[labot šo sadaļu | labot pirmkodu]

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 (angļu: bidirectional scattering distribution function). Populārākās 3D renderēšanas tehnikas iekļauj:

  • Plakaniskā ēnošana jeb daudzstūru metode (angļu: Flat shading) — 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 (angļu: Texture mapping) — 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[labot šo sadaļu | labot pirmkodu]

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[labot šo sadaļu | labot pirmkodu]

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[labot šo sadaļu | labot pirmkodu]

Perspective Projection Principle.jpg

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[labot šo sadaļu | labot pirmkodu]