Up  Home


PostScript-Ausgabe für opengl-Anwendungen

Mit Hilfe des Feedbackmodus einer OpenGl-Anwendung ist es möglich die aktuelle Szene im sogenannten feedbackbuffer zu speichern (siehe z.B. Feedback). U.a. werden hier Informationen über die dargestellten Polygone abgelegt. Mark Kilgard zeigt in seinem Artikel Achieving Quality PostScript output for OpenGL wie sich der feedbackbuffer zum Erzeugen eines PostScript-File nutzen läßt.

Das Sichtbarkeitsproblem

Die so erhaltene Polygonmenge muß allerdings zur (PostScript-) Wiedergabe sortiert werden: Der PostScript-Interpreter zeichnet die Flächen entsprechend der Reihenfolge in der PostScript-Datei. Polygone, die vom Beobachter aus durch andere Polygone verdeckt werden, müssen auch vor diesen in der PostScript-Datei gespeichert werden (hidden-surface elimination). Es ist also eine Sortierung der Polygone bzgl. ihres Abstands zum Beobachter nötig (Schwierigkeit: Wann liegt ein Polygon vor einem anderen? Was ist mit sich durchdringenden Polygonen?). Ein geeignetes Verfahren zur Sortierung der Flächen ist der BSP-Algorithmus (Binary Space Partitioning).

Links:

Ergebnisse

Die nachfolgenden (PostScript-) Bilder sind mit einer Delphi-Implementierung eines BSP-Algorithmus berechnet worden.

(teapot1.ps.zip, teapot1.pdf)
(teapot2.ps.zip, teapot2.pdf)
(teapot3.ps.zip, teapot3.pdf)

Weitere Links zum Thema:


Dr. F. Liebau
2003-04-24