Datorgrafika

[thumb|[Stenfordas zaķis. Tas sastāv no daudziem maziem trijstūriem]]
**Datorgrafika** ir datorzinātņu apakšnozare, kurā tiek pētītas vizuālā satura sintezēšanas un manipulācijas metodes. Lai gan datorgrafikas termins visbiežāk tiek saistīts ar trīs dimensiju grafiku, tas ietver arī divu dimensiju grafiku un attēlu apstrādi. Ir atzīts, ka datorgrafika ir iekļauta dažādās jomās, kas nav tīri skaitļošana, piemēram, inženierzinātnēs, matemātikā, fizikā un mākslā, taču tā no datorzinātņu apakšnozarēm atšķiras ar to, ka ir vizuāla.

## Pārskats
Datorgrafika pēta vizuālās un ģeometriskās informācijas manipulācijas, izmantojot skaitļošanas metodes. Tajā galvenā uzmanība pievērsta attēla veidošanas un apstrādes matemātiskajiem un skaitļošanas pamatiem, nevis tīri estētiskiem jautājumiem. Datorgrafika bieži ir nošķirta no vizualizācijas jomas, lai gan abām jomām ir daudz līdzību.

Saistītie pētījumi ietver:
* Lietišķā matemātika;
* Skaitļošanas ģeometrija;
* Skaitļošanas topoloģija;
* Datorredze;
* Attēlu apstrāde;
* Informācijas vizualizācija;
* Zinātniskā vizualizācija.

Datorgrafikas lietojumprogrammas ietver:
* Drukas noformējums;
* Digitālā māksla;
* Specefekti;
* Videospēles;
* Vizuālie efekti.

## Vēsture
Pagājušā gadsimta septiņdesmitie un astoņdesmitie gadu desmitgade bija ļoti sekmīgs atklāšanas periods datorgrafikas jomā. Tas bija laiks, kad tika veikti jauni atveidošanas algoritmi, dažādas modelēšanas stratēģijas, gudri animācijas paņēmieni un ievērojami panākumi fotoreālismā. Papildinot šo programmatūras attīstību, aparatūras sistēmās dominēja rastra tehnoloģijas, un programmētājiem bija pieejamas spēcīgas darbstacijas, kurās izstrādāt savas grafikas sistēmas.

Deviņdesmitajos gados apbrīnojamu panākumu datorgrafikā bija daudz vairāk nekā pēdējo divdesmit gadu laikā. Iepriekšējo gadu panākumi un inovācijas datorgrafikā ir devuši ceļu virtuālajai realitātei.

## Apakšnozares
Plaša galveno apakšnozaru klasifikācija datorgrafikā varētu būt:

* Ģeometrija: pēta, kā attēlot un apstrādāt virsmas;
* Animācija: pēta kustības attēlošanas un manipulēšanas veidus;
* Renderēšana: pētījumu algoritmi vieglā transporta reproducēšanai;
* Attēla atveide: attēlu iegūšana vai attēla rediģēšana.

### Ģeometrija
Ģeometrijas apakšnozare pēta trīsdimensiju objektu attēlojumu diskrētā digitālā ainā. Tā kā objekta izskats lielā mērā ir atkarīgs no tā ārienes, visbiežāk tiek izmantotas robežas. Divdimensiju virsmas ir labs attēlojums lielākajai daļai objektu, lai gan tās var būt nekombinētas. Tā kā virsmas nav ierobežotas, tiek izmantoti diskrēti digitālie tuvinājumi.

**Ģeometrijas apakšnozares**
* Implicētu virsmu modelēšana — vecāka apakšnozare, kas pēta algebrisko virsmu izmantošanu, konstruktīvu cieto ģeometriju utt., virsmas attēlojumam.
* Digitālā ģeometrijas apstrāde — virsmas rekonstrukcija, vienkāršošana, tīkla atjaunošana, mehanizācija, mērierīce, tīkla ģenerēšana, virsmas saspiešana un virsmas rediģēšana — viss ietilpst šajā pozīcijā.
* Diskrētā diferenciālā ģeometrija — lauks, kas nosaka ģeometriskos daudzumus atsevišķajām datorgrafikā izmantotajām virsmām.
* Punktveida grafika — nesena joma, kurā galvenā uzmanība tiek pievērsta tādiem punktiem kā virsmas pamata attēlojums.
* Sadalījuma virsmas.
* Bezkodola tīkla apstrāde — vēl viens nesens lauks, kurā galvenā uzmanība pievērsta tīkla datu kopām, kas neietilpst galvenajā atmiņā.

### Animācija
Animācijas pētījumu aprakstu apakšnozare virsmām (un citām parādībām), kas laika gaitā pārvietojas vai pazūd. Vēsturiski lielākā daļa darba šajā jomā ir pievērsusies parametru un datu vadītiem modeļiem, bet pēdējā laikā fiziskā simulācija kļuvusi populārāka, jo datori kļuvuši jaudīgāki skaitļošanas jomā.

**Animācijas apakšnozares**
* Kustības tveršana;
* Teksta animācija;
* Fiziskā simulācija (piemēram, auduma modelēšana, šķidruma dinamikas animēšana utt.).

### Renderēšana
Renderēšana ģenerē attēlus no modeļa. Renderēšana var imitēt gaismas transportu, lai izveidotu reālistiskus attēlus, vai arī tā var radīt attēlus, kuriem ir īpašs mākslinieciskais stils nefotoreālistiskajā atveidojumā. Abas pamatdarbības reālistiskajā atveidojumā ir transports (cik daudz gaismas izriet no vienas vietas uz otru) un izkliedēšana (cik virsmas mijiedarbojas ar gaismu). Jo vairāk ir virsmu, kas jāapgaismo, jo vairāk laika nepieciešams renderēšanai.

**Transports**
Transports apraksta, kā izgaismojums ainā nokļūst no vienas vietas uz citu. Redzamība ir svarīga gaismas transporta sastāvdaļa.

**Izkliedēšana**
Virsmas izskata aprakstīšanai tiek izmantoti izkliedes un ēnojuma modeļi. Grafikā šīs problēmas bieži tiek pētītas renderēšanas kontekstā, jo tās var būtiski ietekmēt renderēšanas algoritmu dizainu. Ēnojumu var iedalīt divos ortogonālos jautājumos, kas bieži tiek pētīti atsevišķi:

* izkliedēšana — kā gaisma mijiedarbojas ar virsmu dotajā punktā;
* ēnojums — kā materiāla īpašības mainās pāri virsmai.

Iepriekšējā problēma attiecas uz izkliedi, t.i., saistību starp ienākošo un izejošo apgaismojumu konkrētā punktā. Izkliedes apraksti parasti tiek doti divvirzienu izkliedes sadalījuma funkcijas vai BSDF izteiksmē. Pēdējā problēma attiecas uz to, kā dažādi izkliedēšanas veidi tiek sadalīti pa virsmu (t. i., kur tiek izmantota izkliedes funkcija). Šāda veida apraksti parasti tiek izteikti ar programmu, ko sauc par ēnotāju. (Ievērojiet, ka ir zināms apjukums, jo vārds “ēnotājs” dažreiz tiek lietots programmām, kas apraksta lokālās ģeometriskās variācijas.)

### Citas apakšnozares
* Fiziski pamatota renderēšana — attiecas uz attēlu ģenerēšanu saskaņā ar ģeometriskās optikas likumiem
* Reāllaika renderēšana — uzmanības centrā ir interaktīvo lietojumprogrammu renderēšana, parasti izmantojot specializētu aparatūru, piemēram, GPUs — video kartes, kas pieejamas visiem.
* Nefotoreālistiska renderēšana
* Pārgaismošana — pēdējā laika joma, kas saistīta ar ātri atveidojamām ainām.

## Atsauces

## Ārējās saites