CG1-01-15.pdf
CG1-01-15.pdf
CG1-01-15.pdf
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
48<br />
Tessellatoren<br />
TTessellatoren: ll Verfahren zur Unterteilung allgemeiner Polygone in einfache konvexe Polygone<br />
Problem: OpenGL rendert nur einfache konvexe Polygone<br />
Ei Einfache f h Polygone: P l kkein i SSchneiden h id von Kanten, K t keine k i doppelten d lt Kanten, K t nur 2 Kanten K t pro Knoten K t<br />
Allgemeine Polygone: …<br />
Lösung: Überführung von Polygonen<br />
iin Kombinationen K bi ti von Dreiecken, D i k<br />
Netzen, Fächern und Linien<br />
1. Erzeugen eines Tessellations-Objektes:<br />
Tessellations Objektes:<br />
gluNewTess() liefert Pointer zu einem neuen Tessellations-Objekt<br />
2. Registrierung von Callback-Funktionen:<br />
gluTessCallback(*tessobj,type,(*fn)())<br />
tessobj: erzeugtes Tessellations-Objekt<br />
type: GLU_TESS_# oder GLU_TESS_#_DATA mit<br />
#: BEGIN, EDGE EDGE_FLAG, FLAG, VERTEX, VERTEX, END, END, COMBINE, COMBINE, ERROR, ERROR,<br />
fn: zu definierende Tessellations-Funktion<br />
Mehrfacher Aufruf erforderlich (gegebenenfalls ohne Parameter)<br />
Funktionsprototypen: begin(type), edgeFlag(flag), vertex(*vertex-data),<br />
end(), d() error(errno), ( )<br />
combine(coords[3],*vertex-data[4],weight[4],**outData)<br />
bei DATA-Version zusätzlicher Parameter *user-data