Tesselaatio

polygonien pilkkominen renderöintiä varten
Tämä artikkeli käsittelee tesselaatioita tietokonegrafiikassa. Tessellaatiosta yleisempänä geometrisena ja kuvataiteellisena käsitteenä on eri artikkeli.

Tesselaatio tai tesselöinti kolmiulotteisessa tietokonegrafiikassa tarkoittaa kappaleen pinnan jakamista pienempiin renderöitäviin primitiiveihin.

Eräitä polygoneja ei teknisistä syistä sallita suoraan, mutta apukirjastoilla kuten OpenGL:n GLU (OpenGL Utility Library) kappaleet voidaan muuttaa sallittuihin muotoihin.

Renderöinti ei salli polygoneja, joissa ääriviivat leikkaavat toisiaan, ovat koveria tai joissa on reikiä. Tesselaatioalgoritmilla nämä voidaan pilkkoa pienemmiksi renderöitäviksi polygoneiksi (subdivision).

Toinen tapaus tesselaatiolle on pinnan kaarevuuden parantaminen: lisäämällä primitiivejä (jakamalla yksittäisen polygonin koko) saadaan pinta näyttämään kaarevammalta. Polygonimalliin lisätään kaarevuuden ja yksityiskohtaisuuden mukaan lisää primitiivejä.[1]

Yksinkertainen tesselaatio, joka renderöi pallon karkeasta kuutiomaisesta verteksijoukosta.

OpenGL 4.0:n määrittely kuvaa menetelmää seuraavasti: Tesselaatio on menetelmä joka lukee primitiivit ja tuottaa uusia primitiivejä liukuhihnan myöhempien vaiheiden käyttöön.[2] Vastaava menetelmä on Direct3D 11:ssä.[3] Nykyaikaiset grafiikkaprosessorit tukevat laitteistolla tehtävää tesselaatiota, jota voi ohjata ohjelmallisesti shader-ohjelmalla. Tesselaatiota voidaan käyttää avuksia animaatioissa sekä dynaamisissa yksityiskohtaisuustasoissa.[4][5][6][7] Nykyään mesh-shader voi korvata grafiikkaliukuhihnassa erillisen tesselaatiovaiheen.[8]

Lähteet muokkaa

Viitteet muokkaa

  1. OpenGL 3 & DirectX 11: The War Is Over 16.9.2008. Tom's Hardware. Viitattu 15.12.2017.
  2. Segal, Mark & Akeley, Kurt: The OpenGL Graphics System: A Specification (Version 4.0 (Core Profile) - March 11, 2010) (PDF) khronos.org. 11.3.2010. Viitattu 15.12.2017.
  3. Tessellation Stages Microsoft. Viitattu 15.12.2017.
  4. Pelaajan pensselit - Kolmen eri budjetin näytönohjaimet 2.12.2009. Pelit. Viitattu 15.12.2017.
  5. OpenGL & CUDA Tessellation (PDF) nvidia.com. Viitattu 30.1.2024. (englanniksi)
  6. Extensions for 3D Graphics Rendering Engine Used for Direct Tessellation of Spline Surfaces (PDF) graphics.berkeley.edu. Viitattu 31.1.2024. (englanniksi)
  7. History of hardware tessellation rastergrid.com. Viitattu 31.1.2024. (englanniksi)
  8. Christoph Kubisch: Mesh Shading for Vulkan khronos.org. 1.9.2022. Viitattu 7.10.2022. (englanniksi)