OpenGL/Tietokonegrafiikan perusteita

Rasterikuva muokkaa

Tietokonegrafiikassa lopputulos näytöllä tai paperilla on aina rasterikuva eli kuva, joka koostuu shakkilaudan kaltaisesta ruudukosta pikseleitä. Pikseleiden määrää leveys- ja korkeussuunnassa kutsutaan pikseliresoluutioksi; esimerkiksi tyypillisen 19 tuuman näytön pikseliresoluutio on 1280 × 1024. Jokaisella pikselillä on väri, jonka esitysmuoto voi vaihdella. Yleisimmin käytetty muoto on 32-bittinen RGBA: 8 bittiä punaiselle, vihreälle ja siniselle värikomponentille sekä alfakanavalle, jota käytetään esimerkiksi läpikuultavuuden toteutukseen.

OpenGL on kone, jolle annetaan geometrisiä muotoja ja joka luo niistä rasterikuvia. Rasterikuvasta käytetään yleisesti myös nimitystä bittikarttakuva.

Vektorigrafiikka muokkaa

Vektorigrafiikalla tarkoitetaan kuvan esittämistä geometrisinä muotoina tietokoneen sisällä: pikselien sijaan muistissa säilytetään vaikkapa kolmioiden kärkipisteitä koordinaatistossa. Tarvittaessa nämä muodot rasteroidaan rasterikuvaksi haluttuun pikseliresoluutioon.

Kolmiulotteisessa vektorigrafiikassa geometriset muodot sijaitsevat kolmiulotteisessa koordinaatistossa. Työjärjestys on seuraava:

  1. 3d-mallinnusohjelman avulla rakennetaan 3d-malleja, geometrisistä muodoista koostuvia veistoksia.
  2. 3d-mallit, valonlähteet ja kamera asetellaan asetelmaksi.
  3. Asetelma kuvannetaan rasterikuvaksi.

Kuvantamiseen kuuluu muun muassa seuraavia vaiheita:

  1. valaistuksen laskeminen nurkkapisteille
  2. kolmiulotteisten koordinaattien projisointi kaksiulotteiselle kuvaruudulle
  3. näkymän ulkopuolelle jäävien osien leikkely
  4. rasterointi rasterikuvaksi

Rasterointi on siis osa kuvantamista.

Harjoituksia muokkaa

  • 19 tuuman näytön pikseliresoluutio on 1280 × 1024. Kuinka monta pikseliä tuumaa kohden (ppi eli pixels per inch) se on?
  • Näytön kuvaa säilytetään aina näytönohjaimen muistissa. Paljonko 1280 × 1024 pikseliresoluutio vaatii muistia näytönohjaimelta, kun värisyvyys on 32 bittiä? Yksi tavu (B) on kahdeksan bittiä (b).
  • Opettele käyttämään kaksiulotteista rasteri- ja vektorigrafiikkaa tuottavia ohjelmia ja vertaile niitä keskenään. Esimerkiksi GIMP ja Inkscape ovat ilmaisia ja avoimia.
  • Opettele jonkin 3d-mallinnusohjelman alkeet. Esimerkiksi vain Windowsille saatava Anim8or ja avoin sekä monimutkainen Blender ovat ilmaisia.