30.11.2012 Aufrufe

CG1-01-15.pdf

CG1-01-15.pdf

CG1-01-15.pdf

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!