Reljefa kartēšana
Šis raksts neatbilst pieņemtajiem noformēšanas kritērijiem. Lūdzu, palīdzi uzlabot šo rakstu. Diskusijā var parādīties dažādi ieteikumi. Vairāk lasi lietošanas pamācībā. |
Šajā rakstā nav ievēroti latviešu valodā pieņemtie citvalodu īpašvārdu atveidošanas principi. Lūdzu, palīdzi uzlabot šo rakstu, atveidojot īpašvārdus pēc atveidošanas principiem. Diskusijā var parādīties dažādi ieteikumi. Vairāk lasi lietošanas pamācībā. |
Reljefa kartēšana[1] (angļu: bump mapping — ‘punu iezīmēšana’) ir datorgrafikas tehnika, lai simulētu nelīdzenumus un rievas uz objekta virsmas. Tas tiek panākts, izmainot objekta virsmas perpendikulu (normālvērtības) leņķi, un to izmanto apgaismošanas aprēķinos. Rezultātā rodas vizuāli nelīdzena virsma, par spīti tam, ka pamata objekta struktūra nav izmainīta. Bump mapping 1978. gadā izgudroja Džeimss Blinns (James Blinn).[2]
Normal mapping ir visbiežāk izmantotais bump mapping paveids.[3]
Bump mapping pamati
[labot šo sadaļu | labot pirmkodu]Bump mapping ir datorgrafikas tehnika, lai atveidotā virsma izskatītos vairāk reālistiskāka, imitējot nelielus virsmas pārvietojumus. Taču, atšķirībā no displacement mapping, virsmas ģeometrija netiek izmainīta. Tā vietā, virsmas perpendikuli tiek lokāli modificēti tā, lai izskatītos, ka virsmas ģeometrija ir izmainīta. Tālāk šie modificētie perpendikuli tiek izmantoti ēnošanas aprēķinos, piešķirot objektam sīku daļiņu detalizējumu.
Bump mapping ir daudz ātrāka un patērē mazāk resursu tādam pašam detalizējuma līmenim, kādu var iegūt ar displacement mapping, jo objekta ģeometrija paliek nemainīga.
Pastāv arī papildinājumi, kas izmaina ģeometriju, lai palielinātu dziļuma sajūtu.
Galvenais ierobežojums ir tāds, ka šī tehnika neizmaina objekta ģeometriju, līdz ar to objektu silueti un ēnas neizmainīsies, ko visvairāk var pamanīt lielākās simulācijās. Šo ierobežojumu var pārvarēt ar citām tehnikām, piemēram, displacement mapping, kur nelīdzenumi tiek pielietoti uz objekta ģeometrijas. Izmantota var tikt arī izovirsma (isosurface).
Metodes
[labot šo sadaļu | labot pirmkodu]Ir divas galvenās metodes, lai veiktu bump mapping. Pirmā ir izmantojot augstuma kartes, lai simulētu virsmas izmaiņas, izmantojot izmainītas normālvērtības. Šo metodi izgudroja Blinns, un parasti uz to atsaucas, kā uz bump mapping, ja nav norādīts citādāk. Šīs metodes soļi aprakstīti zemāk.
Pirms tiek veikti apgaismošanas aprēķini katram redzamajam punktam uz objekta virsmas:
- Atrast augstumu iekš augstumu kartes, kas atbilst vietai uz virsmas.
- Aprēķina virsmas normālvērtību augstuma kartei, parasti izmantojot galīgās atšķirības metodi.
- Apvieno virsmas normālvērtības no otrā soļa ar patiesajām virsmas normālvērtībām, lai apvienotie normālvērtību punkti vērstos citā virzienā.
- Aprēķina jaunās "nelīdzenās" virsmas mijiedarbību ar gaismām izmantojot, piemēram, Phong ēnojuma modeli.
Iznākums ir virsma, kurai izskatas, ka ir patiess dziļums. Algoritms arī nodrošina, lai virsma izskats mainītos, ja gaismas pozīcija tiek mainīta.
Otra metode ir norādot normal map, kas satur modificētu normālvērtību katram virsmas punktam. Tā kā normālvērtības tiek dotas tieši, nevis aprēķinātas no augstuma kartes, šī metode sniedz vairāk paredzamus rezultātus. Šī metode atvieglo darbu māksliniekiem, padarot to par visbiežāk lietoto bump mapping metodi.
Reāllaika reljefa kartēšanas tehnikas[4]
[labot šo sadaļu | labot pirmkodu]Reāllaika 3D grafikas programmētāji bieži izmanto dažādas tehnikas, lai simulētu bump mapping ar pēc iespējas zemākām aprēķināšanas izmaksām.
Viens tipisks veids ir izmantot fiksētu ģeometriju, kas ļauj izmantot augstuma kartes virsmas normālvērtības gandrīz tieši. Apvienojumā ar iepriekšaprēķinātu tabulu apgaismošanas aprēķiniem, šī metode var tikt ieviesta ar ļoti vienkāršu un ātru ciklu, ļaujot izveidot pilnekrāna efektu. Šī metode bija tipisks vizuālais efekts, kad bump mapping tika pirmoreiz ieviesta.
Skatīt arī
[labot šo sadaļu | labot pirmkodu]Atsauces
[labot šo sadaļu | labot pirmkodu]- ↑ Akadēmiskā terminu datubāze - bump mapping
- ↑ Blinn, James F. "Simulation of Wrinkled Surfaces", Computer Graphics, Vol. 12 (3), pp. 286-292 SIGGRAPH-ACM (August 1978)
- ↑ Mikkelsen, Morten. Simulation of Wrinkled Surfaces Revisited Arhivēts 2019. gada 26. maijā, Wayback Machine vietnē., 2008 (PDF)
- ↑ Real-Time Bump Map Synthesis, Jan Kautz1, Wolfgang Heidrichy2 and Hans-Peter Seidel1, (1Max-Planck-Institut für Informatik, 2University of British Columbia)