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]

Lode bez bump mapping (pa kreisi). Bump map, ko pielietos lodei (pa vidu). Lodei, kurai ir pielietota bump map (pa labi), virsma izskatās nelīdzena, atgādinot apelsīnu. Bump map panāk šo efektu, izmainot to, kā izgaismotās virsmas reaģē pret gaismu, neizmainot paša objekta virsmu lielumu vai formu.

Normal mapping ir visbiežāk izmantotais bump mapping paveids.[3]

Bump mapping pamati

labot šo sadaļu

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 limitēta — šī tehnika neizmaina objekta formu. Pa kreisi, matemātiska funkcija definējot bump map, simulē nelīdzeno lodes virsmu, bet lodes kontūra un ēna paliek kā perfektai lodei. Pa labi, izmantota tā pati funkcija, lai modificētu lodes virsmu, ģenerējot isovirsmu. Šī metode izveido lodes modeli ar nelīdzenu virsmu, ar rezultātu, kas attēlo lodes kontūru un ēnu reālistiski.

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).

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:

  1. Atrast augstumu iekš augstumu kartes, kas atbilst vietai uz virsmas.
  2. Aprēķina virsmas normālvērtību augstuma kartei, parasti izmantojot galīgās atšķirības metodi.
  3. 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ā.
  4. 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

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.

  1. Akadēmiskā terminu datubāze - bump mapping
  2. Blinn, James F. "Simulation of Wrinkled Surfaces", Computer Graphics, Vol. 12 (3), pp. 286-292 SIGGRAPH-ACM (August 1978)
  3. Mikkelsen, Morten. Simulation of Wrinkled Surfaces Revisited Arhivēts 2019. gada 26. maijā, Wayback Machine vietnē., 2008 (PDF)
  4. Real-Time Bump Map Synthesis, Jan Kautz1, Wolfgang Heidrichy2 and Hans-Peter Seidel1, (1Max-Planck-Institut für Informatik, 2University of British Columbia)