3D-grafiikka

tietokoneella mallinnettu kolmiulotteinen kuva
Hakusana ”3D” ohjaa tänne. 3D on myös Robert Del Najan taiteilijanimi.

3D-grafiikka eli kolmiulotteinen grafiikka (engl. three dimensional) on tietokonegrafiikkaa, joka on sisäisesti mallinnettu kolmen tilaulottuvuuden suhteen. 3D-grafiikka kuitenkin yleensä esitetään kaksiulotteiselle kuvapinnalle projisoituna.

3D-grafiikkaa.

Tyypillisiä 3D-grafiikan sovellusalueita ovat mm.

3D-grafiikka perustuu grafiikkaprimitiiveille, joka on usein polygoni ja lisäksi on matemaattisesti kuvattuja pintoja kuten NURBS-pintoja. 3D-grafiikka käyttää kolmiulotteisella mallinnuksella määriteltyjä kappaleita, joista esitettävät pinnat ja primitiivit muodostetaan (geometriset mallit, matemaattiset mallit).

Esittämistä varten kolmiulotteisen mallin kuvaus muutetaan esitettävään muotoon renderöinnillä. 3D-grafiikka käyttää myös eräitä samoja algoritmeja kuin kaksiulotteinen vektorigrafiikka (polygonimallien käsittelyssä) ja kaksiulotteinen bittikarttagrafiikka (lopullinen kuva).

Lisäksi on olemassa vokseliin perustuvaa vokseligrafiikkaa.

RenderöintitapojaMuokkaa

Pääartikkeli: Renderöinti

Kolmiulotteisen grafiikan automaattista piirtämistä esimerkiksi kaksiulotteiselle pinnalle sanotaan 3D-renderöinniksi. Tämä tarkoittaa esimerkiksi kappaleen varjostusta siten, että syntyy vaikutelma kolmiulotteisuudesta. Renderöintitekniikat vaihtelevat etenkin sen mukaan, kuinka paljon aikaa ja laitteistoresursseja yksittäisen kuvan piirtämiseen on käytettävissä.

Reaaliaikainen 3D-animaatio, jota käytetään esimerkiksi tietokonepeleissä ja demoissa, vaatii yksittäisen kuvan piirtoa sekunnin murto-osassa. Tämän vuoksi piirtomenetelmät ovat melko suoraviivaisia ja rasterointipohjaisia; rasterointipohjaisissa menetelmissä pinnan valaistus ei perustu säteenseurantamenetelmään. Näille piirtoalgoritmeille on tehokkaita laitteistotason toteutuksia nykyaikaisissa grafiikkasuorittimissa.

Sekä rasterointi- että säteenseurantamenetelmä voi käyttää geometriatietona polygonia tai vektoriformaattia, mutta suurin ero kuvan laadussa ja suorituskyvyssä tulee säteenseurannan vaatimasta laskentamäärästä valonsäteiden heijastuksien ja hajoamisen määrien vuoksi.[1][2]

Reaaliaikaisen grafiikan renderöintiin käytetään ohjelmointirajapintoja kuten Khronos Groupin OpenGL:iä, Microsoftin Direct3D:tä, Applen Metalia, AMD:n Mantlea ja uusimpana rajapintana Khronos Groupin Vulkania.[3]

Elokuvateollisuudessa ja kuvituksessa näyttävyys on piirtonopeutta tärkeämpi prioriteetti, joten niissä saatetaan käyttää laskennallisesti vaativampia menetelmiä. Pyyhkäisyviivarenderointi (engl. scanline rendering) oli suosittua kun rasterointi oli vielä uutta.[4] Pyyhkäisyviivamenetelmää käytti muun muassa RenderManin edeltäjä Reyes.[5][6]

Suunnitteluohjelmistoissa mallintamiseen käytettävät ohjelmistot vaativat pinnoilta hyvää tarkkuutta. Parhaat ohjelmistot laskevat pinnat käyrien perusteella NURBS-pintoina. Jotkut ohjelmistot kykenevät myös reaaliaikaiseen toimintojen mallintamiseen ja simulointiin.

RasterointiMuokkaa

Reaaliaikaisen 3D-grafiikan renderöinnin yleisin menetelmä on rasterointi.[1][2] Rasterointi tarkoittaa jatkuva-geometrisen esityksen (kolmion) muuntamista diskreettiin geometriaan pikselipohjaiselle näyttölaitteelle.[7]Grafiikkaliukuhihnassa rasterointi muuttaa grafiikkaprimitiivit pikseleiksi: jokainen näkyvä reuna ja kolmio jokaisessa kappaleessa esitetään näyttöavaruudessa.[8] Tekstuurit liitetään, Z-puskurin syvyystiedolla käsitellään näkyvyydet sekä tehdään muut alpha- ja stencil-tarkistukset.[8]

Toisin kuin säteenseuranta-algoritmeissa, rasteroidessa ei käytetä valonheijastuksia arvioimaan, mitkä pinnat näkyvät lopputuloksessa (suoraan tai epäsuoraan mm. heijastuksien tai läpinäkyvyyden seurauksena). Rasterointi arvioi pintojen sijaintia ja piiloon jäämistä syvyyssijainnin perusteella.

Videopeleissä säteenseurantaa käytetään rasterointimenetelmän kanssa, jossa säteenseurannalla tuotetut varjot ja valaistus yhdistetään.[9]

Katso myösMuokkaa

Suomalaisia alan ohjelmistoja WikipediassaMuokkaa

LähteetMuokkaa

  1. a b Rasterization: a Practical Implementation scratchapixel.com. Viitattu 17.1.2017.
  2. a b An Overview of the Ray-Tracing Rendering Technique scratchapixel.com. Viitattu 17.1.2017.
  3. Khronos Releases Vulkan 1.0 Specification Khronos Group. Viitattu 17.1.2017.
  4. Akeley, Feiner, Foley, Hughes, Van Dam, McGuire, Sklar: Computer Graphics Principles and Practive, s. 209. Third Edition. Addison-Wesley, 2014. ISBN 978-0-321-39952-6. (englanniksi)
  5. Ian Failes: RenderMan at 30: A Visual History vfxvoice.com. Viitattu 29.12.2020. (englanniksi)
  6. Robert L. Cook & Loren Carpenter & Edwin Catmull: The Reyes Image Rendering Architecture (PDF) graphics.pixar.com. Viitattu 31.12.2020. (englanniksi)
  7. Akeley, Feiner, Foley, Hughes, Van Dam, McGuire, Sklar: Computer Graphics Principles and Practive, s. 18. Third Edition. Addison-Wesley, 2014. ISBN 978-0-321-39952-6. (englanniksi)
  8. a b Akenine-Möller, Tomas & Haines, Eric & Hoffman, Naty: Real-Time Rendering, s. 26. Third Edition. CRC Press, 2008. ISBN 978-1-56881-424-7. (englanniksi) 
  9. Ray Tracing In Vulkan khronos.org. 17.3.2020. Viitattu 23.11.2020. (englanniksi)

Aiheesta muuallaMuokkaa

 
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta 3D-grafiikka.