Sokszögek tessellatálása
Az OpenGL közvetlenül csak egyszerű domború sokszögeket jeleníthet meg. A sokszög egyszerű, ha:
- A szélek csak csúcsokon metszenek.
- Nincsenek ismétlődő csúcsok.
- Pontosan két él találkozik bármelyik csúcspontnál.
A lyukakat tartalmazó egyszerű nem konvex sokszögek vagy egyszerű sokszögek megjelenítéséhez először háromszögelnie kell a sokszögeket (fel kell osztani őket konvex sokszögekre). Az ilyen albontás neve tessellation. A GLU függvények gyűjteménye, amelyek tessellációt végeznek. Vegye figyelembe, hogy a GLU tessellation függvények nem képesek kezelni a nem egybesimuló sokszögeket; az ilyen sokszögek kezelésére nincs standard OpenGL-módszer.
Mivel a tessellation gyakran szükséges, és meglehetősen bonyolult lehet, ez a szakasz részletesen ismerteti a GLU tessellation függvényeket. Ezek a függvények tetszőleges egyszerű sokszögeket vesznek fel bemenetként, amelyek tartalmazhatnak lyukakat, és háromszögek, háromszöghálók és háromszögventilátorok kombinációját adják vissza. Ha nem szeretne hálókkal vagy ventilátorokkal foglalkozni, megadhatja, hogy az tessellation függvények csak háromszögeket adjanak vissza. A háló- és ventilátorinformációk azonban javítják a teljesítményt. A sokszög-tessellációs függvények egy konkáv sokszöget háromszögelnek egy vagy több körvonallal.
Többszög-tessellációs használata
Hozzon létre egy tessellation objektumot gluNewTess.
A gluTessCallBack használatával megadhatja a visszahívási függvényeket, amelyekkel feldolgozhatja a tessellator által létrehozott háromszögeket.
A gluBeginPolygon, gluTessVertex, gluNextContourés gluEndPolygonadja meg a lyukas sokszöget vagy a tessellatedendő homorú poligont.
Ha a sokszög leírása befejeződött, a tessellation létesítmény szükség szerint meghívja a visszahívási függvényeket.
A felesleges tessellation objektumokat gluDeleteTess.
A tessellation-adatok mentéséről további információt a A Visszahívási függvények használatacímű témakörben talál.