Normaalikartoitus

Wikipediasta
Siirry navigaatioon Siirry hakuun

Normaalikartoitus (engl. normal mapping, myös engl. Dot3 bump mapping) on kolmiulotteisessa grafiikassa renderöintiin käytettävä tekniikka, jossa lopputuloksena tuotettavaan kuvaan saadaan lisää yksityiskohtia ja kaarevuutta ilman suurta polygonien määrän lisäystä.

Normaalikartoitus käytössä yksityiskohtien lisäämiseen yksinkertaistettuihin malleihin.

Menetelmässä normaalivektorit lasketaan ja tallennetaan etukäteen korkeamman tarkkuuden polygonimallista ja ajonaikaisesti (esimerkiksi videopelissä) tallennettua tietoa käytetään valaistukseen ja varjostukseen pienemmän polygonimäärän mallin kanssa. Menetelmällä voidaan saada todentuntuisempi ulkoasu vähemmällä laskentamäärällä.

Normaalit tallennetaan tekstuurin kaltaiseen tiedostoon, jossa arvot ovat RGB-arvojen sijaan normaalien XYZ-koordinaatteja.[1]

James F. Blinn kuvasi normaalien käyttöä pintarakenteen epätasaisuuden esittämiseen tasaiselle geometrialle artikkelissa Simulation of Wrinkled Surfaces vuonna 1978.[2][3] Blinnin tekniikkaan on viitattu termillä bump mapping ja Robert L. Cookin myöhempään tekniikkaan artikkelissa Shade trees (1984) on viitattu nimellä displacement mapping, joka esiteltiin laajennuksena bump mapping -tekniikalle.[3][4]

Normaalikartoituksen varhaisia esittelyjä on ollut SIGGRAPH '96 tapahtumassa.[5] Tekniikkaa on tämän jälkeen kehitetty eteenpäin korkean tason yksityiskohtien esittämiseksi yksinkertaistetun mallin päällä.[6][7]

Yksi varhaisista menetelmää käyttäneistä peleistä on id Softwaren Doom 3 (id Tech 4-pelimoottorissa).[8] Tekniikkaa on kehitetty edelleen pelin seuraajassa DOOM.[9]

Tekniikalle on erilaisia toteutustapoja.[10] Muita samankaltaisia tekniikoita ovat bump mapping, height mapping ja displacement mapping. Tekniikoissa on eroja ja esimerkiksi bump map sisältää vain korkeustietoa ilman kulmaa kun taas normaalikartoitus sisältää kulman.[11]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Tutorial 13 : Normal Mapping opengl-tutorial.org. Viitattu 15.12.2017.
  2. James F. Blinn: Simulation of Wrinkled Surfaces (PDF) microsoft.com. Viitattu 25.9.2022. (englanniksi)
  3. a b Morten Mikkelsen: Simulation of Wrinkled Surfaces Revisited image.diku.dk. 26.3.2008. Viitattu 25.9.2022. (englanniksi)
  4. Robert L. Cook: Shade Trees (PDF) citeseerx.ist.psu.edu. Viitattu 12.1.2021. (englanniksi)
  5. Venkat Krishnamurthy & Marc Levoy: Fitting Smooth Surfaces to Dense Polygon Meshes graphics.stanford.edu. Viitattu 15.12.2017.
  6. Jonathan Cohen & Marc Olano & Dinesh Manocha: Appearance-Preserving Simplification (PDF) cs.unc.edu. Viitattu 23.9.2022. (englanniksi)
  7. P. Cignoni & C. Montaniy & C. Rocchiniz & R. Scopigno: A general method for preserving attribute values on simplified meshes (PDF) vcg.isti.cnr.it. Viitattu 23.9.2022. (englanniksi)
  8. Fabien Sanglard: Doom3 Source Code Review: Introduction fabiensanglard.net. 8.6.2012. Viitattu 15.12.2017.
  9. Adrian Courrèges: DOOM (2016) - Graphics Study adriancourreges.com. 9.9.2016. Viitattu 29.11.2017.
  10. Robert Basler: Three Normal Mapping Techniques Explained For the Mathematically Uninclined gamedeveloper.com. 22.11.2013. Viitattu 23.9.2022. (englanniksi)
  11. Normal vs. Displacement Mapping & Why Games Use Normals cgcookie.com. 15.6.2017. Viitattu 23.9.2022. (englanniksi)

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.