Renderēšana

Vikipēdijas lapa
Pārlēkt uz: navigācija, meklēt
Cannonball stack with FCC unit cell.jpg
3D Plus 3DBuilding.jpg
Engine movingparts.jpg
Piemērs ar raytrace renderētam foto reālistiskam attēlam

Renderēšana 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 skata uzstādīšana reālajā dzīvē laikā ir pabeigta. Ir izstrādātas vairākas dažādas un bieži vien specializētas renderēšanas metodes. Tās aptver diapazonu no skaidri nereālistiskām karkasmodeļa renderēšanas metodēm, kuras balstītām uz poligoniem, līdz pat progresīvām tehnikām. Renderēšanas process var aizņemt laiku no pāris sekundēm līdz pat dienām viena atsevišķa attēla iegūšanai.

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

Renderētie attēli un attēlu virknes priekš interaktīvām programmām kā, piemēram, spēles un simulācijas, tiek aprēķinātas un attēlotas reālā laikā — tajā pašā momentā, ar tempu no 20 līdz pat 120 attēli sekundē. Reālā laika renderēšanā mērķis ir parādīt pēc iespējas vairāk informāciju, ko acs var 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 scēna, katrs renderētais attēls netiek uztverts atsevišķi, bet gan plūdumā ar citiem attēliem, tāpēc katra attēla kvalitātei nav jābūt reālistiskai, bet gan cilvēka acij pieņemamai. Lai pastiprinātu uztveramā attēla līdzību realitātei, programmatūra simulē redzes dziļuma asuma zudumu, kustības radītu attēla izplūšanu un lēcas atspīduma efektu. Tie ir mēģinājumi vizualizēt optiskās parādības, kas radušās kameras lēcu vai cilvēka acs īpatnību dēļ un, kaut gan tikai simulētas, piešķir ainai savu devu reālisma. Šīs ir galvenās metodes, kuras izmantotas datorspēlēs, simulācijās, VRML. Straujais datu apstrādes ātruma pieaugums palielina realitātes pakāpi arī real-time renderēšanā izmantojot tādas metodes kā, piemēram, HDR kartes. Reālā laika renderēšana pārsvarā balstās tikai uz poligonu metodes un tās kvalitāte ir atkarīga no datora grafikas kartes jaudas.

"Non real-time" renderēšana[labot šo sadaļu | labot pirmkodu]

POV-Ray 3.6 renderēts attēls, kura autors ir Gilles Tran. Glāzes un pelnutrauks modelēti ar Rhino un metamais kauliņš ar Cinema 4D.

Animācijas ne-interaktīvajiem medijiem kā, piemēram, video, tiek renderētas daudz lēnāk. Non-real time renderēšana nepieprasa attēla vajadzību dotajā momentā, tādēļ katra atsevišķā kadra renderēšanai var atvēlēt nepieciešamo laiku, lai iegūtu vēlamo kvalitāti. Renderēšana var patērēt no pāris sekundēm līdz pat vairākām dienām sarežģītu ainu gadījumā. Izrenderētie attēli secīgi tiek saglabāti uz citā diska, bet pēc vajadzības var tikt saglabāti dažādos formātos. Pēcāk attēli secīgi tiek attēloti ar augstu tempu, parasti 24, 25 vai 30 kadri sekundē, lai radītu kustības ilūziju. Ja mērķis ir iegūt foto reālistisku attēlu, ieteicams izmantot tādas tehnikas kā ray tracing vai radiosity. Šie ir digitālajos medijos un pat mākslinieciskos darbos visbiežāk izmantotie pamata algoritmi. Šīs tehnikas ir radītas, lai attēlos simulētu citas dabā sastopamas optiskās parādības kā, 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 (simulē gaismas lūšanu caur nelīdzenām virsmām, radot ēnas kādas dabā var novērot, piemēram, uz baseina pamatnes) un subsurface scattering (simulē gaismas laušanu blīvu objektu iešienē, piemēram, dzintarā vai cilvēka ādā). Renderēšanas process patērē lielus procesora resursus, jo atkarībā no ainas, gaismu un materiālu sarežģītības vienlaicīgi darbojas vairāki dažādi skaitļošanas algoritmi. Datora skaitļošanas jauda ir strauji palielinājusies pēdējo gadu laikā, tā padarot iespējamu augstas kvalitātes progresīvu renderēšanu. Filmu studijas, kuras producē datoranimācijas filmas, parasti izmanto "Render Farm" programmu, lai radītu mūsdienīgu rezultātu. Toties krītošās tehnikas cenas paver to lietošanu plašam auditorijas 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, tai skaitā 3d animācijas.

Atstarošanas un ēnošanas modeļi.[labot šo sadaļu | labot pirmkodu]

Gaismas atstarošanas/kliedēšanas un ēnošanas algoritmi tiek izmantoti, lai aprakstītu virsmas īpašības. Mūsdienīga 3d datorgrafika patiesībā balstās uz vienkāršota atstarošanas modeļa, ko sauc Phong reflection model (nejaukt ar Phong shading). Gaismas laušanas izskaitļošanā nozīmīga komponente ir gaismas laušanas indekss. Vairākumā 3D programmu gaismas laušanas indekss tiek saīsināti saukts 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/kliedēšana[labot šo sadaļu | labot pirmkodu]

jeb reflection/scattering — apraksta, kā gaisma mijiedarbojās ar materiāla virsmu dotajā punktā.

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

Jūtas tējkanna

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

  • Flat shading jeb poligonu metode — tehnika, kas katru objektu sadala poligonālās plaknēs un ēno tos attiecībā pret katra poligona perpendikulu un gaismas avota atrašanās vietas un intensitātes.
  • Gouraud shading — 1971. gadā izstrādājis H. Gouraud, ātra un resursus nenoslogojoša virsotņu ēnošanas metode, kas simulē virsmas noapaļošanu.
  • Texture mapping — tehnika, kas simulē virsmas detalizāciju , piešķirot virsmai tekstūru.
  • Phong shading — izstrādāja Bui Tuong Phong, izmanto, lai simulētu atspoguļotos izgaismojumus un plūstošas, vienmērīgas ēnas.
  • Bump mapping — izstrādājis Jim Blinn, izmanto nelīdzenu virsmu simulēšanai.
  • Cel shading — tehnika, ar kuras palīdzību simulē 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 shader. Vienkāršs ēnošanas paraugs ir tekstūru attēlošana (texture mapping), kura izmanto attēlu, lai precizētu izkliedes krāsu uz virsmas, radot reālā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ā. Redzamība ir gaismas virzības galvenais nosacījums.


Projecēšana[labot šo sadaļu | labot pirmkodu]

Perspective Projection Principle.jpg

Izēnotie trīsdimensiju modeļi ir japadara plakani, lai monitors tos varētu attēlot tikai divās dimensijās, šo procesu sauc par 3D projecēšanu. Tas tiek paveikts lietojot perspektīves projecēšanu. Perspektīves galvenā ideja ir tāda, ka preikšmeti, kas ir tālāk, tiek padarīti mazāki, salīdzinot ar tiem, 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, tad tas nozīmē, ka perspektīves nav. Liela izvērsuma konstante var izsaukt "zivs acs" efektu, kad parādās attēla izkropļojumi. Ortogrāfisko projecešanu galvenokart izmanto CAD un CAM programmas, 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]

Renderēšana