Sdílet prostřednictvím


Tessellating Polygons

OpenGL může přímo zobrazit pouze jednoduché konvexní mnohoúhelníky. Mnohoúhelník je jednoduchý, pokud:

  • Hrany se protínají pouze u vrcholů.
  • Neexistují žádné duplicitní vrcholy.
  • Přesně dvě hrany se scházejí na jakémkoli vrcholu.

Chcete-li zobrazit jednoduché nekonvexní mnohoúhelníky nebo jednoduché mnohoúhelníky obsahující otvory, je nutné nejprve triangulat polygonů (rozdělit je do konvexních mnohoúhelníků). Takové dělení se nazývá tessellation. GLU poskytuje kolekci funkcí, které provádějí tessellation. Všimněte si, že funkce glu tessellation nemohou zpracovávat nesimple polygony; neexistuje žádná standardní metoda OpenGL pro zpracování takových mnohoúhelníků.

Vzhledem k tomu, že tessellace je často požadována a může být poměrně složitá, tato část podrobně popisuje funkce glu tessellation. Tyto funkce berou jako vstup libovolné jednoduché mnohoúhelníky, které můžou obsahovat díry, a vrací některé kombinace trojúhelníků, trojúhelníkových ok a ventilátorů trojúhelníků. Pokud nechcete pracovat se sítěmi nebo ventilátory, můžete určit, že funkce tessellation vrátí pouze trojúhelníky. Informace o sítích a ventilátorech ale zvyšují výkon. Mnohoúhelníkové tesselační funkce triangulatují mnohoúhelník s jedním nebo více obrysy.

Použití mnohoúhelníku

  1. Vytvořte objekt tessellation s gluNewTess.

  2. Pomocí gluTessCallBack definujte funkce zpětného volání, které použijete ke zpracování trojúhelníků vygenerovaných tessellatorem.

  3. S gluBeginPolygon, gluTessVertex, gluNextContoura gluEndPolygon, zadejte mnohoúhelník s otvory nebo polygon konkutu, který se má tessellat.

    Po dokončení mnohoúhelníku vyvolá zařízení tessellation funkce zpětného volání podle potřeby.

    Nepotřebné tessellační objekty můžete zničit gluDeleteTess.

Další informace o ukládání dat tessellation naleznete v tématu Použití funkcí zpětného volání.